Problem is likely low voltage on data line, but would like software clarification.

  • I'm using a cheap meanwell knockoff psu (5v20a) to power an RPi 4b, 5v usb fan (type A connector cutoff, wired to psu), and an SK6812 strip (5m, 60/m) from BTF Lighting (amazon). I connected a type C connector to the psu to power the RPi4b.


    I connected the psu to both ends of the SK6812 strip. Meaning, I attached male and female connectors to the psu, which match the connectors at either end of the SK6812 strip. Red wires to positive leads. Everything works but the light strip. The Pi is running HyperBian (alpha 8). I ran "apt update apt full-upgrade" successfully (over ssh). I can connect to the Hyperion web interface (port 8090) and the Hyperion android app syncs successfully (port 19444).


    I verified all my polarity is correct and the psu puts out 5.10 volts. I unplugged the far end of the LED strip (the end the data flow arrows point toward) and got a measurement of 4.96 volts. The data wire is connected to GPIO pin #12 (aka GPIO18), which is directly next to a ground wire for Pi case fan connected to pin #14. There is roughly 11.5" (29cm) of wire between pin #12 and the first LED on the strip. The GPIO is connected to the end that the data arrows point away from (indicating it is the first diode in the data line).


    I did not affix the strip to the TV, I have not cut the strip at all. I have only unrolled it from the spool it came on. Otherwise, I have done nothing to the SK6812 strip.


    I had another WS2812b strip (5m, 60/m) that I plugged into the connectors wired to the psu, again with roughly 11.5" (29cm) of wire between the GPIO18 pin (pin #12) and first LED. Same exact result. I measured 4.96v at the far end of the strip and no lights whatsoever.


    I just bought both strips and have never verified that either strip actually works.


    Obviously, my first thought is the data signal is not making it to the first LED. I can use the method where I sacrifice an LED pixel right next to the GPIO pin to boost the signal what would be the "first" (but really second) pixel.


    However—I want to make sure there is not something in the software that I am missing. I did run a "apt full-upgrade" rather than regular upgrade, so don't know if that would change anything. Also, not sure if there was something I need to run at the command line but hyperiand daemon is definitely running (and using about 11% of cpu). Is there anything I can do at the command line (or web interface / android app) to verify the data signal is weak? Or is there something I am missing or should check out???


    I am as big a noob as there is. This is first time I’ve used a multimeter and I’ve never touched a soldering iron in my life. But I’m reasonably solid with linux. I don’t know much but I can learn and want to learn more.


    I’m just a bit frustrated right now. :facepalm:


    Thanks for all the help guys. I appreciate it.


    EDIT 01 - Dr. Zzs used a much longer data wire connection to his first LED and has no problem. That makes me wonder if it is really low voltage on my data line. But I'm not sure which Pi he's using in this video. I'm using a Pi 4b with 2GB ram.


    EDIT 02 - I shortened the data wire to 11.5" (29cm) to the first LED. That should be plenty short enough, but I still have no lights whatsoever. I am more sure this is a software issue.

    • Offizieller Beitrag

    leds need 5v, data signal needs MIN vcc*0,7 -> 5v*0,7=3,5V Datasignal...pi has a 3,3V data signal....so most people have luck and it works, cause there vcc is not 5v...
    but as you measeured you have 5.10 so 5,1*0,7 = 3,67V datasignal....


    best case is to use a 3.3v to 5v level shifter


    the mentioned "trick" with a so called "dead-pixel" works sometimes..but also in this case: it is always better to use a level shifter

  • leds need 5v, data signal needs MIN vcc*0,7 -> 5v*0,7=3,5V Datasignal...pi has a 3,3V data signal....so most people have luck and it works, cause there vcc is not 5v...
    but as you measeured you have 5.10 so 5,1*0,7 = 3,67V datasignal....


    best case is to use a 3.3v to 5v level shifter


    the mentioned "trick" with a so called "dead-pixel" works sometimes..but also in this case: it is always better to use a level shifter


    Ok I understand. Thanks for your quick response.

  • Wanted to say that, although I am using sk6812 RGBWW lights, it would not work when I had sk6812spi selected as the controller type in the LED Hardware section of web configurator. ..if anyone cares, these are the exact lights I am using: https://www.amazon.com/dp/B079ZW1265/


    I changed the controller type to ws281x and now the lights suddenly work for the first time ever.


    @TPmodding I want to tag you in case this was useful info to you. Idk what "spi" is or if it makes a difference. But changing the controller type appears to have fixed my problem without the need for a logic level shifter. However, I will update with more info as I play more.


    If anyone has guidance, please share. Thanks.

  • SPI is dataoutput bitrate on 2 GPIO (or only one) pin(s) that ledstrips understand with the use of Hyperion type of controller, normally without a level shifter or such then you can use direct SPI signal to steer the lights. ( in my case works on GPIO pins directly without any extra effort)


    SPI controller has to be activated in config.text

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!