I am trying too hook up a WS2812B LED strip to an Arduino Nano. The current strip consists of 6 pixels, and the whole thing is powered by a 5.26 V PC power supply.
The problem is that the first pixel keeps dying after about 1 minute. This means I have to cut the strip and re-solder the connections. Before the failure, the strip runs the correct examples from the FastLED package.
As this happened I looked for solutions. Adafruit's neopixel guide suggested:
- adding a 1000 µF capacitor between ground and +5 V to cancel power peaks
- adding a 300-500 Ω resistor between the strip_Data_in and D5
I had no 1000 µF+ Capacitor, so I used what I had, 470 µF, and installed it with the resistor.
This did not solve the problem. Another recommendation was to place a diode between the data and +5 V. I think this is to remove any power spikes in the data connection. With a good power supply this should not be necessary I guess, but it couldn't hurt. Another tip was to add a 100 kΩ resistor between data and ground.
Putting all mentioned above together gives something like this:
But in the end nothing changed. I tried alot of variations of solutions:
With and without condensator between ground and Vin.
With and without resistor between data and Arduino, and varied it between 220 Ω to 1 kΩ.
With and without the diodes. I tried connecting data with a diode to ground, +5 V, to both, and to none.
I have tried using a 3.7 V power source to see whether I could avoid burning the pixel. The LEDs had too little power to light up.
I have tried powering via the USB->Arduino->Arduino +5 V pin -> strip +5 V
Any idea where I might be fucking up?
I have burnt 30 pixels so far, with all the same result: blinking, tripping, and eventually failure. Removing the first LED always fixed the problem. This brand of LED strip did work on some other premade controller.
Some of my own ideas, of causes:
- There really needs to be a 1000 µF capacitor. (I have never had trouble with voltage peaks with this powersupply, and this does not explain why the system fails after some time, instead of at plugin.)
EDIT 1: I did some additional tests.
Raised the resistor before the data pin, from the recommended 470 Ω, as high as possible. I reached 8 kΩ (higher did not work). -> Same result, burned pixel
Lowered the voltage on the data input pin, with two resistances, one connected to ground. The LED strip only recognised data input when the 'Din_High' was above 3.5 V. Running at a bit lower voltage stopped the LEDs from recognising data. Yet still, same result -> burned pixel.
Changing the power supply: I changed the PC power supply to a 5 V power bank for loading celphones. The voltage this device was regulated to was between 5.2 and 4.8 V. The behaviour was the same -> burned pixel.
I would guess that IF:
the 5 V is stable and within 5.5 and 4.5 V and
The Din is within 0 and 5 V
The cable should be unable to break itself, right?