Segment flicker issue (Arduino Nano ESP32)

I have a Nano ESP32 using 3 GPIO’s to run 3 segments of WS2811 12v LEDs.

Segment 1 “Green”: 133 LEDs
Segment 2 “Blue”: 100 LEDs
Segment 3 “White”: 250 LEDs

Currently just the Green and Blue segments are physically installed and configured in WLED and the White segment has wiring provisioned for it on the controller side.

I’m using a well rated Meanwell power supply. The wire is tin plated copper (M22759). The connections are JWPF sealed connectors. Each segment connector has it’s own power and ground back to the supply and they are terminated together with glue-lined heat-shrinked ring terminals. The Nano has wires soldered to the board, terminated to a 6-Way DTM connector and is encased in a custom 3D printed enclosed with strain relief for the wires. The Nano is running 0.15.0-b7.

I’m getting a flicker on the “Blue” segment. Swapped the connections so the Blue segment was using the Green segment supply connector, the flicker followed. I figure there’s a crimp issue on the Blue supply connector but before I de-pin and check, I set Segment 2’s GPIO to the White connection and plugged the Blue segment into the White supply connector. This also exhibits the same flicker.

Now I’m prepared to accept I’ve made a mistake on 1 connector but 2 is very unlikely for me (it’s part of my day job).

I’ve tried skipping the first LED, turned off the brightness limiter - seemed to make it better but the flicker remains. It’s not constant either. For example, if I have a solid soft white glow running, that segment will briefly flicker to blue and back to the soft white at random.

Can anyone think of anything non-hardware related which could be causing this?

I would try a level shifter Other Hardware - WLED Project

I’ve never had to used one before (previously ran the same segments on 2 Nodemcu’s) and with the Nano, the problem is only with whatever is connected to the GPIO that is assigned to Segment 2 in WLED.

The segment that is assigned to Segment 1 is a good 1.5-2m away from the controller and has no issues. The segment that is assigned to Segment 2 is maybe 0.5m from the controller and has the random flicker but if I swap the physical connections, the problem moves and if I change the GPIO for Segment 2 to my 3rd connector, the problem follows to that connector.

Your description does not make sense.

GPIO’s and Segments are 2 totally different things.

GPIO’s are where your LEDs are physically connected and segments are how you have chosen to divide up ALL of your LEDs regardless of what GPIO they are connected to.

If the problem follows that string of LEDs then there is either something wrong with that string or they do not like data voltage that is out of spec. Thus the need for a level shifter and/or a resistor.

You might want to try the QCCAN TO TTL TO RS485. They have cleaned up a lot of my ghost issues as yours sounds. It takes two of them and threee a wire diagram on this sit under advance. But theses things work so much more reliable

Think you’ve misunderstood me, the problem follows whatever is attached to whichever GPIO is assigned to Segment 2 in WLED:

Physical Segment WLED Segment GPIO (Nano) Issue
1 1 5 (D2) No
2 2 6 (D3) Yes
1 2 6 (D3) Yes
2 1 5 (D2) No
1 2 7 (D4) Yes
2 2 7 (D4) Yes

Are you sure your segment 2 is assigned correctly then? Does it have overlapping LEDs that are assigned to other segments?

*If you have 2 segments active that contain the same LEDs they will act crazy.

If you can post a pic of your segments page we might see the issue.

I read about overlapping but it must have been something in earlier versions because it doesn’t appear possible now?

I can’t put two imgs in one post but here’s my segment setup:

I think you have a small misunderstanding of terminology in WLED.

When you connect one or more sets of LEDs to a WLED controller (on 1 GPIO or more) you create a “Strip” of LEDs (my term).

A Strip will appear as a single long string whose length is just the sum of all the individual pieces. In your case, you’ve created a single Strip of 233 LEDs.

Segments are WLEDs way of deciding what part of the Strip you want to change/light up/etc.

The simplest case is what you show as “Segment 0”, it starts at the beginning of the Strip (LED #0) and ends after a total of 233 LEDs (LED #232).

But you are not limited to Segments that address the whole Strip.
You can just as easily create a new Segment that starts at 40 and goes for a count of 25.
That would address LEDs #40-#64 and let you change the colour/brightness/etc of just that section in the Strip.

You can of course save those Segment definition in your presets along with their effects.

I think what @jinx was alluding to with “overlapping segments” is the case where you have 2 different segment definitions that have only part of the strip defined, but overlap each other.

That’s a logical/software issue that is largely independent of the underlying hardware.

1 Like

This is getting very confusing. I will stand by with adding a level shifter.

You are talking about ‘segments’ in like 3 different ways. Your images show me you have:

2 ‘Outputs’ (physical connections)
1 ‘Segment’ (how you choose to divide up your total number of LEDs for control)


If you are having an issue with ‘Outputs’ flickering, you likely need a level shifter.
If you are having flickering when you create more than 1 ‘segment’, it may be due to channel overlap.

Based on your image of only 1 segment (segment 0) I am assuming all this crossed nomenclature is referring to a flickering issue with LED Output # 2 and the best chance of fixing such an issue would be with a proper level shifter. :melting_face:

1 Like