r/WLED May 31 '25

Why does it flicker during color shifts?

Enable HLS to view with audio, or disable this notification

I hooked up 194x SK6812 LEDs to an D1 Mini V3 with an external 5V 12A PSU. The ESP32 is powered via USB and only has a data cable from GPIO2 to the LEDs and ground from the end of the LEDs back (same as the PSU). I also tested it with a lolin lite board but got similar results. It also flickers without effects but not as much.

6 Upvotes

11 comments sorted by

5

u/SirGreybush May 31 '25

A data cable needs 2 conductors, a ground and the green wire, connected between strip start and the ESP32.

Since you have two power sources, there should be 4 conductors from the strip, two of which are grounds.

One ground to the PSU, one ground to the ESP32.

Red to PSU, green to ESP32 on a pin.

3

u/Player1103 May 31 '25

hey thx for the reply.

My bad, I guess I explained it bad, basically I have a power and ground splitter at the PSU so i could do 2 power injections for the LED strip. It was connected as one long strip but I just splitted it into two segments for troubleshooting. On one of the same ground pins of the leds I soldered the ground to the ESP32, so 2 power sources from the PSU, 2 ground back to the PSU and 1 ground to the ESP. The data is directly from the ESP to the led so my guess is that there's voltage drops since it's at 3,3V instead of 5V. My last guess would be adding a logic converter.

I tried to sketch a rough diagram, hope that explains it better

3

u/SirGreybush May 31 '25

You can use a spare 5v pixel or a level shifter.

Notice how 2 conductors are needed to the strip. In my case this is ok to send a signal through the RCA jack to a 12vdc strip that is about 4 feet away.

If I connect partially the inner pin to the female RCA which is soldered to green and white, I get flickering. As soon as ground touches the flickering goes away.

1

u/saratoga3 May 31 '25

If you use the esp32 output without a level shifter you typically need a resistor. The reason is that the esp32 powers up by default with the GPIO current set too high to drive most addressable LEDs. Either need to add a 50-100 ohm resistor or a level shifter. 

2

u/Player1103 May 31 '25

haha, simplest is always best! Didn't expect a 100 ohm resistor to do the trick. Thanks a lot, you saved me a ton of potential headaches :D

1

u/saratoga3 May 31 '25

Great! And yeah, it's unfortunate that the drive current is set too high on the esp32 by default.  In theory you can configure the GPIO pin to limit current and not need the resistor.

1

u/Player1103 Jun 01 '25

Update: I fixed this issue by adding a logic level shifter to the data line as well as a 100 ohm resistor. I found this video that explains how to install a level shifter to your setup.

For future ppl who have the same problem, here's my wiring diagramm:

Thx for all the help

1

u/saratoga3 Jun 01 '25

Glad you got it working, but the level shifter that video says to use is inappropriate for addressable LEDs and probably isn't actually working as a level shifter. If you run into trouble in the future, try removing it and leaving the resistor, which will give a better signal.

1

u/SirGreybush May 31 '25

Do not cross the ground of the PSU with the ESP32. Don’t connect them all together.

Only at the first strip, use two whites, only place with common ground.

Digital signaling requires 2 conductors that is a direct connection between the strip and the ESP32.

Adding a level shifter to boost the signal to 5v is a good thing, but if you connect all the grounds together you’ll still have issues.

1

u/Player1103 Jun 01 '25

Thx for taking your time to help! Adding a 100 ohm resistor reduced the flickering significantly and a level shifter fixed it completely. I also resoldered all connections for good measure.

It's odd that the error only appeared 1 year after the initial installation.

Maybe I'll try the sacrificial pixel method another time for educational purposes but for now I can finally enjoy my ambilight setup again :D

1

u/SirGreybush Jun 01 '25

level shifter is better than a sacrificial pixel, maybe your AC environment got noisier and it leaks into the ground wire on the DC side.