I’m driving a panel of WS2812b’s from an ESP32. I decided to add a “sacrificial pixel” to my controller box as described here: Cheating At 5V WS2812 Control To Use 3.3V Data | Hackaday so that a) I can extend the wire to the first “real” pixel as needed, and b) the sacrifical pixel will double as a WiFi indicator.
Once I had the new LED wired in, the panel stopped working. I checked everything and couldn’t find a problem. After some head scratching I realized that the panel’s WS2812bs were a few years older and from a different manufacturer than the LED I added to the box. So I soldered a connector onto a strip from the same roll as the sacrifical pixel, and everything immediately began working perfectly.
Has anyone else seen this? My guess is that the data conditioning done by the first LED is somehow incompatible with the LEDs in the panel - even though they are all WS2812b…
The “cheating” sacrificial trick makes some assumptions about the pixel used to boost the signal.
The pixel needs to be able to reliably run at ~4.3V and it needs to output a signal at almost all of the supply voltage.
While reasonable assumptions, there’s no guarantee they’ll be true for any given pixel. You may simply have a device that doesn’t work within those assumptions.
It’s also possible the pixel you chose was damaged, have you tried connecting normal power to it and try to drive it with WLED?
Also make sure you wired the pixel in the right direction. Data only flows 1 way.
Thanks, yes the sacrificial led is working because once I had it driving leds from the same package (a strip cut from the same roll) all the subsequent pixels began working perfectly. The only difference is what leds were being driven by the sacrificial pixel’s DOUT.
And yeah, one of the things I tried was shorting the diode so that the pixel received 5 volts. Didn’t make any difference. And both the panel and the new strip I made worked fine when I bypassed the sacrificial pixel (connected them directly to the gpio pin).
The ESP32 gpio voltage is supposed to be 3.3v, which shouldn’t be able to drive WS2812b powered at 5v, but it does. Maybe this can all be chalked up to unreliable Chinese data sheets…
That’s a kludge a level-shifter. Just get the real thing.
Try adding a resistor anything between 22 ohm to 68 ohms should be fine connected between the esp and 1st pixel.
I am sure this would solve your issue.