Help diagnosing flickering

I’m setting up some DIY icicles and I’m seeing some odd flickering in the first 90ish pixels. The rest seem fine. It’s running from an ESP32 with WLED version 0.13.0-b4. There are a total of 432 ws2811 pixels, 12v. If I run an effect, the pixel colors seem fine, but create a flicker (almost like a subtle strobe). When I run solid white at 100% brightness, the first pixels blink on/off and change various colors. If I put the brightness down to about 50% at solid white, the flicker seems to stop and it all looks normal. Anyone know what the issue might be?

Solid White

Candy Cane Effect

Most likely loosed ground(negative) connection.

Thanks for the reply @srg74

I’ll definitely check the ground wires to confirm, but wouldn’t the entire run of lights ALL flicker if that was the case? It seems that only the first chunk (90ish or so pixels) have the problem, then the rest are all fine after that.

Is it possible that first part have a loose wire somewhere?

This would largely depend on your power injection. For example, if your ground wire running to the first strip was compromised, but your power injections were not, it could cause erratic behavior from the beginning of the string to nearby the first injection point.

I’d bet no level shifter.

1 Like

I would not exclude bad PSU. Have seen noisy output affecting LEDs.

Thanks for all the replies/suggestions. I haven’t had a chance yet to out there and play with things yet, but hopefully I will at some point today. I’ll post back when I find out for sure what the issue is.

I’ve been messing with this for the past couple days. I tried a new power supply, much shorter cable run (less than 3 ft), cutting out the first chunk of pixels. None of that seemed to make a difference. Then I swapped out the esp32 with an esp8266 chip and the flickering went away. I also tried a spare esp32 that I had and it caused the same flickering effect. For whatever reason, the esp8266 doesn’t have an issue, but the esp32 (2 different chips) do.

Can anyone think of why that might be the case?

Perhaps a dead pixel. Had those.

What pin are you using on the 32? Have you tried other pins? Does the “skip first LED” setting change the behavior? Does disabling the automatic brightness limiter change the behavior?

I thought I had solved it by putting in a new eps8266 chip. Turns out that it was just a quick/temporary fix. It’s back to flickering. I’ve tried different power supplies, different pins on the chips. I’ve tried with the brightness limiter both on and off. Tried with a null pixel and skipping the first LED. Even ordered brand new 12v LEDs. All seems to have flickering no matter what I do.

A couple other things I’ve noticed:

  1. If I turn down the brightness to ~40%, the flickering stops.
  2. I have a mix of 5v and 12v pixels. The 12v pixels are the only ones that flicker. All 5v pixels work perfectly at ANY brightness.

To me, that’s the typical sign of a power supply issue.
I would suggest:
Set the strip to full white at 40% brightness.
Physically measure the voltage on the strip at your injection point AND at the furthest distance from the injection point (for me that’s always 2 furthest points as I inject in the middle of a strip). You definitely want to do the 12V strip but you may do the 5V as well.
Turn the brightness up to 100% full white and measure again. That should narrow down the power issues to this problem.

I’ll be out of town for the next few days, but I’ll definitely check into this when I get back. Thanks for the advice.

Here’s what I have so far. Once I can figure out this 12 volt flickering issue, it’ll be much better! I still have a few hundred more lights to go. But looking great besides that.

I am having the same exact issue, to a lesser degree. I am running both 5V and 12V setups (completely isolated from each other), and I only experience my flickering data issues with the 12V setups. I have three strings (174, 198, and 294 pixels with 5’, 8’, 12’ data cables respectively), each running off its own ESP32 with the latest version of WLED. Two 30amp PSUs, one at either end (left and right side of my home). The pixel strings and ESPs share the same ground on the power supply. Each line has a null pixel for data boost (these significantly improved the original level of flickering, confirming that it’s a data issue). After installing the null pixels, the problem seemed to have disappeared, but it returns after about two minutes of the lights being powered on, and increases in frequency as time goes on. It is worse with more complex effects, but still occurs on solid color settings.

I have tested all strings on only one power supply (no power injection on the opposite end) and experience the same flickering consistently whether supplemental power is injected or removed. Null pixels improved the issue, but far from solved it. I’m really at a loss, considering I have 5V pixels with 25’ data cables directly from the same model/batch ESP32 with no issues. The issue only happens with my 12V system. All three ESP32s are tied to the same 12V to 5V buck converter, could that possibly be the issue (despite the fact that I never had issues with my ESP8266s on the same converter?). I’ve also read that adding a resistor can help with interference when using braided wire without a shielded data cable; is there any validity to that in this situation?

Example Video

Any and all help is greatly appreciated.

I’m going to do more testing with voltages at various points along the pixel strings when I get back into town. I don’t believe mine to be a data issue, as I’ve taken my icicles down and plugged it in with only a 3 or 4 foot cable length from the controller and still saw the flickering. I’m hoping that it’s a power issue, otherwise I’m really not sure what else to do. I’m in the same boat as you, my 5v strings are much longer cable runs and the is no issue with them.

Do you have multiple segments? I’ve experienced weird flickering if the segment definitions overlap and some LEDs are assigned to more than one segment.

1 Like

Alrighty, took two steps forward, but a new step back today; however, I think this might lead us closer to a diagnosis:

I added 33ohm resistors in the data line between the ESP32 and the sacrificial pixel. Knock on wood, but this seems to have completely solved the flickering issue in my strings that have the 5’ and 8’ data cords. The 12’ now flickers once every 5-10 minutes, whereas it WAS flickering every 5-10 seconds. I don’t understand WHY this helped, but it did.

Fast forward to my pixel trees: each tree is 800 pixels and has a 90 pixel star on top, with its own ESP32 controller and a 9’ data run from the controller to the top of the tree (the same braided 18/3 wire; bad, I know). I was getting a lot of the same flickering in the stars and assumed this issue could ALSO be fixed with a sacrificial pixel and 33ohm resistor. However, after installing those in the same exact fashion as those aforementioned, I still had the same bad flickering. I then turned the pixel tree off and noticed that the star functioned perfectly. After more testing, the stars ONLY start flickering when the tree beneath them has a dynamic effect playing (I.e. lots of data flowing). When the trees are off, the stars do not flicker at all. Consequently, I double checked to make sure that the grounds were all shared—> same flickering. The only thing I can think of is that there is somehow interference occurring between the two ESP32s. They are running from the same buck converter (12v to 5V) off of the same power supply, thus the grounds are tied for the tree’s strings, star’s strings, and both ESP32s. Do I maybe need to have each ESP32 on a separate buck converter so that each can have its own ground tied with its own respective strings? I imagine the interference is occurring through the common ground, but am unsure.

In the event that I can sort this interference issue out, I can probably narrow down the other 12V strings as well, because those three ESP32s are also on a shared buck converter.

The small series resistance is called a Series Termination Resistor. It’s role is to reduce the impact of the wire’s capacitance and inductance, which can cause oscillations in the signal. Here is a pretty good stackexchange post discussing series termination resistors. There’s even has a quick simulation to show the effects of the added resistor.

If adding a series termination resistor fixed your issue, what you learned was that oscillations caused by the length of your data path were responsible for your flickering. It stands to reason that this is a likely contributor to your tree/star problem as well. It is possible that splitting your esps to separate bucks could help, but IMO you will want to strongly consider adding level shifters to your outputs, and switching away from the 18/3 that have data, GND, and power all side by side.

If it’s feasible, I have seen a lot of positive stuff about the MAX485 modules - These will convert your data signal to RS485, which is substantially more robust against noise, especially on longer runs. RS485 is a 2-wire protocol, so you will need an an extra data wire. Also, unlike other level shifters, you will need 2 of these per pin - one to convert to RS485 as close to your ESP as possible, and a second to convert back as close to your LEDs as possible.

1 Like

Segments are not supposed to overlap. LEDs should only be assigned to a single segment.