Solved my problem, but how and why did it work? Mystery!

So I put a strip of close to 1000 WS2812B LEDs in my shop and then built a cool (IMHO) demo controller for it. You can see the result here:

Anyway, the problem: it was working well when it was all temporary wire with speaker wire pigtail twisted together, but I was only getting 3.9V where I was finally injecting on the far end, as it's a long run of 16AWG wire. So for that and other reasons, I undertook to improve the wiring for the final "permanent" installation.

The more I did, the worse it got - the LED signal would get messed up, a lot of the LEDs would light white, which would push my power supply past 10A, and bad mojo.

So I moved the power supply closer so that it was 2' from the strip instead of 12', and worse still. Turned it up to 5.5V to boost it a little for the run, no change or worse. Different supply no change, different ESP32 chip no change, but no matter what I did I couldn't get it to work right like it did when it was all sloppy and hacky!

Then for some reason, I turned DOWN the voltage, which I guess wound up replicating the test setup I had. When it was poor wiring I sent 5V and got 4.0 at the project, and now I had the supply right at it and it didn't work... unless I turned the power down to 4.0V.

Running the power supply at 4V and all works great, but why???? They're a 5V strip!

I'm a software guy, so I don't have much knowledge here, but my only guess is maybe a bias or delta between the data voltage and the supply voltage helped? Maybe bringing the supply voltage down a bit made the data signal more "readable"? That's a stretch. But I'm running an ESP32 chip that MIGHT only be supplying 3.3 for the data line. I bet a level converter on that line might help?

Anyone have any guesses as to what causes the phenomena I'm seeing here? And should I have a 3.3V to 5V step-up level converter on the output from the ESP32 to the LED strip?



Not sure what you're asking by "Watts". It's a 5V strip and I peak out at 10A so around 50W?

Anyway, I added a level converter, which for whatever reason only brings the 3.2V signal up to 4.1, but that seems to solve the issue!

While it's nice the ESP32 has so many pins, interop with 5V devices can be annoying!

Hi, How are you supplying power to the 1000 LEDS? From one connection at one end of the strip?

If so measure the voltage at the end you have power applied and then measure the voltage at the end of the strip what readings do you get?

It is advisable to put a level shifter between the ESP32 and the strip.

The reason dropping the LED supply to 4V fixed your problem is because of the 3.3V logic and the 5V logic combination. While the strip was at 5V, the logic level 1 is different to the 3.3V level 1. Logic 1 on 3.3V is not as high as logic 1 on 5V.

By dropping the LED voltage to 4V, the levels in the LED strip to interpret a logic 1, is lowered to the logic 1 coming from the ESP32.

Tom... :)

I'm supplying power at both ends of the strip; if I had it to do over again, I'd also inject in the middle. Ideally, you'd inject at every meter when it's 144 per meter.

As it stands now I'm OK unless you try to make the whole strip white - the very center will "red out" a little bit. But that's actually beyond my power supply capacity of 10A anyway, so I "don't do that".

I came to the same conclusion as you on the data line relative voltage but it took me 4 hours to figure it out. Thanks for the details! Only remaining item I can't understand is why my logic level converter changes 3.3 into 4.1 instead of 5.0, when 5.0 is the supplied reference voltage.

I’m supplying power at both ends of the strip; if I had it to do over again, I’d also inject in the middle. Ideally, you’d inject at every meter when it’s 144 per meter.

Dead right! That is always how it should be done.

Only remaining item I can’t understand is why my logic level converter changes 3.3 into 4.1 instead of 5.0, when 5.0 is the supplied reference voltage.

When you say “logic level converter”, do you mean one of these?

These rely on pull-ups to give the HIGH voltage, and any current draw limits that.

You are better off using two gates in series of a 74HCT14. A 74HC14 - very readily available - will likely do just fine.