ESP8266 and WS2812B

Hello!

I am fairly new to all of this so any input is greatly appreciated!

Last winter I had attempted a project using an ESP8266 to do some lighting around the ridge line of a building with WS2812B LED strips. I was using the software from Aircookie called wLED installed on the ESP8266 to control the lights, which works extremely well. My project worked very well for quite a few months. Once summer time came around the lights were not working any longer. I investigated the problem and found some of the wires had started to melt, and the ground wire completely was gone; nothing was receiving power any longer.

I am using about 8 Meters of the strips which accounts for around 200 LED pixels. Doing some research I had decided I would need a 5v 15A power supply to power the strips. I am afraid that I am pushing too much current through the wires and into the board. Looking back my choice of wire was not ideal either. I wanted to make the ESP easy to swap out incase of problems being outside in an enclosed box. I soldered in some jumper wires from the main line which then extended into the Arduino. I now realize that the wire gauge was extremely thin for the current that I had been sending through the wires.

My big question is what can I do to modify this in order to make it work again and to be safe where I don't have to worry about starting any fires. I had contemplated trying to put a Resistor between the power supply ground into the Arduino but I am not entirely sure if that would help or fix my issue. I have attached a rough paint sketch of my current basic wiring diagram.

Thanks for your help!

Please clarify where, what value, and why, you propose to put this resistor?

Your circuit might work, but there is no guarantee that the ws2812 leds (strictly speaking, the first led in the strip) will receive the data signal correctly from the NodeMCU. Ws2812 expect a 5V data signal, you should have a voltage level shifter in there. Don't bother trying those voltage shifter modules designed for i2c circuits, they don't work fast enough to guarantee ws2812 signals will not be corrupted. I suggest a 74hc14 or 74hct14 chip.

This is a good buffer part
https://www.ti.com/lit/ds/symlink/sn74ahct125.pdf?
Only needs 2V as a high input with Vcc = 5V, vs 74HC, which needs somewhere between 3.15V (Vcc 4.5V) and 4.2V (Vcc 6V).

The 74HCT14 with the same logic levels and a Schmitt input may be more readily available than the 74AHCT125, that is why we “Pauls” favour it. :grinning: You use two inverters in cascade to provide a non-inverting buffer.

I have four WS2812-based 8x8's running from a ESP8266 /NodeMCU, without a level-shifter (doing message scrolling).
Works great for me.
( I have a 2kΩ resistor between the WS2812 output and the data input of the assembly. )

runaway_pancake:
Works great for me

It often does work, but there's no guarantee. You can be lucky with the batch that your LEDs were manufactured in, and the exact voltages your power supply gives out. Or not lucky. I have one project that worked fine on breadboard for months, without a level shifter, but after final soldering it now shows intermittent problems and I wish I had used one.

PaulRB:
... but there is no guarantee that the ws2812 leds (strictly speaking, the first led in the strip) will receive the data signal correctly from the NodeMCU. Ws2812 expect a 5V data signal, you should have a voltage level shifter in there.

I drive 5V (and 12V) LED strings with a data pin from the Wemos D1 Mini all the time. Never an issue with the data level at 3V. Typically in a 5V logic gate, 2.5V is plenty to be seen as a logic high.

Use this wire:

LED Wire.jpg

LED Wire.jpg

I drive 5V (and 12V) LED strings with a data pin from the Wemos D1 Mini all the time. Never an issue with the data level at 3V. Typically in a 5V logic gate, 2.5V is plenty to be seen as a logic high.

And how many have you tried this with?
And how long has it been working?
And what temperature range are you running it over.

Sure we have all used a 3V3 system on addressable LEDs, and it works but only sometimes because " 2.5V is NOT plenty to be seen as a logic high". In fact it is below the limit according to the specification sheet. And sometimes it simply does not work. I suggest I might have used addressable strips in more projects than you. Threads on this forum show that people with problems report they are fixed by having a proper 5V signal drive.

I had contemplated trying to put a Resistor between the power supply ground into the Arduino but I am not entirely sure if that would help or fix my issue.

I am entirely sure it would have no effect on your issue whatsoever.

What you appear to have is a mechanical issue. At a guess I think it might be due to thermal fluctuations causing problems by expansion and contraction weakening joints either on the wiring or inside the chips themselves.