EBB icon indicating copy to clipboard operation
EBB copied to clipboard

EBB SB2209 rp2040 - NEOPIXEL DOESNT WORK

Open bugalaws opened this issue 2 years ago • 6 comments
trafficstars

Hello, i have e ebb sb2240 rp2040 …all things work well , extruder, thermistor, fans etc.. only the neopixel doesnt work. I allready have tested the neopixel directly in my mks robin nano and works well..

Some times when start de printer at de first time the leds comes green but if i change the color or the intensity it powering off the leds and stay off until reboot the printer

I am using this setup:

[neopixel sb_leds] pin: EBBCan:gpio16 chain_count: 3 color_order: GRBW

bugalaws avatar Oct 03 '23 03:10 bugalaws

Maybe try setting the initial colors:

#initial_RED: 0.0 #initial_GREEN: 0.0 #initial_BLUE: 0.0 #initial_WHITE: 0.0

It's been working fine for me.

JKtech3D avatar Nov 11 '23 16:11 JKtech3D

Did oyu ever solve this. I'm having a similar issue of colors not working right and if I try to go pure white, everything just turns off.

jasonmacdonald avatar Feb 19 '24 18:02 jasonmacdonald

same issue here.

rgbs turn on with a bluish default color, but the entire config does not work. no control possible. this is fucked up hardly in my opinion...

Gardosen avatar Feb 25 '24 00:02 Gardosen

same issue here.

rgbs turn on with a bluish default color, but the entire config does not work. no control possible. this is fucked up hardly in my opinion...

post your neopixel config

JKtech3D avatar Feb 25 '24 01:02 JKtech3D

same issue here. rgbs turn on with a bluish default color, but the entire config does not work. no control possible. this is fucked up hardly in my opinion...

post your neopixel config

[neopixel sb_leds]
pin: EBBCan:gpio16
chain_count: 3
color_order: GRB

[gcode_macro _sb_vars]
variable_colors: {
        'logo': { # Colors for logo states
            'busy': {'r': 0.4, 'g': 0.0, 'b': 0.0, 'w': 0.0},
            'cleaning': {'r': 0.0, 'g': 0.02, 'b': 0.5, 'w': 0.0},
            'calibrating_z': {'r': 0.8, 'g': 0., 'b': 0.35, 'w': 0.0},
            'heating': {'r': 0.3, 'g': 0.18, 'b': 0.0, 'w': 0.0},
            'homing': {'r': 0.0, 'g': 0.6, 'b': 0.2, 'w': 0.0},
            'leveling': {'r': 0.5, 'g': 0.1, 'b': 0.4, 'w': 0.0},
            'meshing': {'r': 0.2, 'g': 1.0, 'b': 0.0, 'w': 0.0},
            'off': {'r': 0.0, 'g': 0.0, 'b': 0.0, 'w': 0.0},
            'printing': {'r': 0.0, 'g': 0.0, 'b': 1.0, 'w': 1.0},
            'standby': {'r': 0.1, 'g': 0.0, 'b': 0.1, 'w': 0.1},
        },
        'nozzle': { # Colors for nozzle states
            'heating': {'r': 0.8, 'g': 0.35, 'b': 0.0, 'w':0.0},
            'off': {'r': 0.0, 'g': 0.0, 'b': 0.0, 'w': 0.0},
            'on': {'r': 1.0, 'g': 1.0, 'b': 1.0, 'w':1.0},
            'standby': {'r': 0.1, 'g': 0.0, 'b': 0.1, 'w':0.0},
        },
        'thermal': {
            'hot': {'r': 1.0, 'g': 0.0, 'b': 0.0, 'w': 0.0},
            'cold': {'r': 0.3, 'g': 0.0, 'b': 0.3, 'w': 0.0}
        }
    }
variable_logo_led_name:         "sb_leds" 
variable_logo_idx:              "1" 
variable_nozzle_led_name:       "sb_leds"
variable_nozzle_idx:            "2,3"
gcode:
    # This section is required.  Do Not Delete.


[gcode_macro _set_sb_leds]
gcode:
    {% set red = params.RED|default(0)|float %}
    {% set green = params.GREEN|default(0)|float %}
    {% set blue = params.BLUE|default(0)|float %}
    {% set white = params.WHITE|default(0)|float %}
    {% set led = params.LED|string %}
    {% set idx = (params.IDX|string).split(',') %}
    {% set transmit_last = params.TRANSMIT|default(1) %}

    {% for led_index in idx %}
        {% set transmit=transmit_last if loop.last else 0 %}
        set_led led={led} red={red} green={green} blue={blue} white={white} index={led_index} transmit={transmit}
    {% endfor %}

[gcode_macro _set_sb_leds_by_name]
gcode:
    {% set leds_name = params.LEDS %}
    {% set color_name = params.COLOR %}
    {% set color = printer["gcode_macro _sb_vars"].colors[leds_name][color_name] %}
    {% set led = printer["gcode_macro _sb_vars"][leds_name + "_led_name"] %}
    {% set idx = printer["gcode_macro _sb_vars"][leds_name + "_idx"] %}
    {% set transmit = params.TRANSMIT|default(1) %}

    _set_sb_leds led={led} red={color.r} green={color.g} blue={color.b} white={color.w} idx="{idx}" transmit={transmit}

[gcode_macro _set_logo_leds]
gcode:
    {% set red = params.RED|default(0)|float %}
    {% set green = params.GREEN|default(0)|float %}
    {% set blue = params.BLUE|default(0)|float %}
    {% set white = params.WHITE|default(0)|float %}
    {% set led = printer["gcode_macro _sb_vars"].logo_led_name %}
    {% set idx = printer["gcode_macro _sb_vars"].logo_idx %}
    {% set transmit=params.TRANSMIT|default(1) %}

    _set_sb_leds led={led} red={red} green={green} blue={blue} white={white} idx="{idx}" transmit={transmit}

[gcode_macro _set_nozzle_leds]
gcode:
    {% set red = params.RED|default(0)|float %}
    {% set green = params.GREEN|default(0)|float %}
    {% set blue = params.BLUE|default(0)|float %}
    {% set white = params.WHITE|default(0)|float %}
    {% set led = printer["gcode_macro _sb_vars"].nozzle_led_name %}
    {% set idx = printer["gcode_macro _sb_vars"].nozzle_idx %}
    {% set transmit=params.TRANSMIT|default(1) %}

    _set_sb_leds led={led} red={red} green={green} blue={blue} white={white} idx="{idx}" transmit={transmit}

[gcode_macro set_logo_leds_off]
gcode:
    {% set transmit=params.TRANSMIT|default(1) %}
    _set_logo_leds red=0 blue=0 green=0 white=0 transmit={transmit}

[gcode_macro set_nozzle_leds_on]
gcode:
    {% set transmit=params.TRANSMIT|default(1) %}
    _set_sb_leds_by_name leds="nozzle" color="on" transmit={transmit}

[gcode_macro set_nozzle_leds_off]
gcode:
    {% set transmit=params.TRANSMIT|default(1) %}
    _set_sb_leds_by_name leds="nozzle" color="off" transmit={transmit}

[gcode_macro status_off]
gcode:
    set_logo_leds_off transmit=0
    set_nozzle_leds_off

[gcode_macro status_ready]
gcode:
    _set_sb_leds_by_name leds="logo" color="standby" transmit=0
    _set_sb_leds_by_name leds="nozzle" color="standby" transmit=1

[gcode_macro status_busy]
gcode:
    _set_sb_leds_by_name leds="logo" color="busy" transmit=0
    set_nozzle_leds_on

[gcode_macro status_heating]
gcode:
    _set_sb_leds_by_name leds="logo" color="heating" transmit=0
    _set_sb_leds_by_name leds="nozzle" color="heating" transmit=1

[gcode_macro status_leveling]
gcode:
    _set_sb_leds_by_name leds="logo" color="leveling" transmit=0
    set_nozzle_leds_on

[gcode_macro status_homing]
gcode:
    _set_sb_leds_by_name leds="logo" color="homing" transmit=0
    set_nozzle_leds_on

[gcode_macro status_cleaning]
gcode:
    _set_sb_leds_by_name leds="logo" color="cleaning" transmit=0
    set_nozzle_leds_on

[gcode_macro status_meshing]
gcode:
    _set_sb_leds_by_name leds="logo" color="meshing" transmit=0
    set_nozzle_leds_on

[gcode_macro status_calibrating_z]
gcode:
    _set_sb_leds_by_name leds="logo" color="calibrating_z" transmit=0
    set_nozzle_leds_on

[gcode_macro status_printing]
gcode:
    _set_sb_leds_by_name leds="logo" color="printing" transmit=0
    set_nozzle_leds_on

Gardosen avatar Feb 25 '24 21:02 Gardosen

Anyone figure this out? I've tried connecting the signal line to the 4w fan pwm as well but no matter what I've tried can't get mine to work

Pitufo123 avatar Jun 30 '24 00:06 Pitufo123

Same problem...

@bigtreetech could you help here?

mateusdemboski avatar Aug 01 '24 21:08 mateusdemboski

In my case the problem ended up being faulty neopixels in my siboor kit. Ordered a new string and they worked just fine

Pitufo123 avatar Aug 01 '24 22:08 Pitufo123

I found a workaround on Reddit that resumes in use fan PWM pin instead of RGB pin (GPIO15). It worked for me.

mateusdemboski avatar Aug 01 '24 22:08 mateusdemboski

The RGB pin is protected via a 100ohm resistor at the output. This ensures that the pin is not damaged if it is shorted to something that it should not be. If you have problems with a particular RGB strip then it could be that the strip has an input resistance that is too low on the signal line (it should be incredibly high so that there is no volt drop on a proper RGB strip). You could try to remove and short this resistor out if it is affecting you but it is important to know that you lose protection on that pin so don't short the pin to anything. The resistor is R55

image

bigtreetech avatar Aug 02 '24 07:08 bigtreetech

@bigtreetech I can't find a document that tells you which resistor is R55, nor is there anything on the screen print of the SB0000 that indicates which is R55. The SMD components/board layout are tight enough that I'm having difficulty measuring the impedance of the resistors to determine which is the 10k and which is the 100 ohm.

The only references I can find of the SB0000 are in the build guide and the 3D PDF model. Can you post a picture with R55 labelled?

skyguy94 avatar Sep 01 '24 16:09 skyguy94

The only references I can find of the SB0000 are in the build guide and the 3D PDF model. Can you post a picture with R55 labelled?

Here it is. Please let me know if it works out for you. It will be interesting if some RGB LED variants have been manufactured with very low input impedance.

image

bigtreetech avatar Sep 03 '24 06:09 bigtreetech

Ok, I removed the resistor and soldered a small piece of wire in its place and the neopixels did not turn on. Its fair to say that I could have damaged the pads, traces, or components and introduced a different problem, but I don't have a way of probing something this tightly packed to test. However, I did switch to my spare EBB2209 and EBB SB0000 those worked without an issue.

skyguy94 avatar Sep 06 '24 07:09 skyguy94