2

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.

The initial setup.

As this happened I looked for solutions. Adafruit's neopixel guide suggested:

  1. adding a 1000 µF capacitor between ground and +5 V to cancel power peaks
  2. 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.

The 470µF capacitor between Ground and +5 V

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:

Variations on this setup i experimented with

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

My soldering work, for checking

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?

6
  • Powering via the usb cable is the safest. What was the result with just one rgb led and all the power from the usb 5v? You need another rgb led to compare, can you buy a normal rgb led? Some led controller chips (inside the rgb led) operate at 3.3v and a trick is used to make them work at 5v, perhaps the premade controller did something special to avoid to damage them. Can you show your power supply? If it is cheap and not allowed in your country, then you should not use it. For now, I think the combination of a non-standard led strip together with a cheap power supply might be the problem.
    – Jot
    Dec 8, 2018 at 16:59
  • USB 2.0 only allows for 500mA. It can be more, but that's the (assumed / agreed upon) limit if you are plugging into, for example, a lap top. I would try a new / better 5 volt USB power supply. One that can provide several Amps of power. Guessing, those types of LED can take tens of mA. Perhaps 60mA. So 6 x 60mA is 360mA. So I would at least get a supply that is double that.
    – st2000
    Dec 8, 2018 at 17:53
  • In the third picture, take out the bridging jumper on 40. (last before the input pin of the led) Put another series resistor in place of the wire, from the input to the diodes. Also take a short wire and connect the ground track at the module (41) and connect it directly to 51 at the bottom of the Nano, duplicating the ground connection. Keep the wire short, not using premade jumper wires. This is in case you have a point on the breadboard that is not making adequate connections. Your wiring technique is as good as can be expected using a breadboard. A scope would be handy at this point.
    – Rudy
    Dec 8, 2018 at 18:20
  • does the first pixel flash green before it dies?
    – dandavis
    Dec 11, 2018 at 20:31
  • first pixel failure seems to indicate a problem with the data line .... the second pixel is buffered by the first pixel ..... you could also try inserting a diode in series with the 5.26V power supply just to knock 0.6V off the voltage
    – jsotola
    Dec 12, 2018 at 5:07

4 Answers 4

2

I found (a part of) the problem:

The soldered pin connections at start of the ribbon had leaking current. This was due to the soldering flux remaining around the pins. Rinsing the connection with water carefully solved the problem.

In earlier runs I soldered with flux and simply wiped it off afterwards. Also note that I am generous in flux usage. I do not know how people can make neat solderingwork without it. Just scraping, and wiping with tissues between the connections is apparently unreliable. The flux is water solutable, said the package, so I used tap water for cleaning, but I also tried alcohol at times. Of course by taking care not to make anything wet besides the connection, and drying careful afterwards.

Obviously I checked the look of my soldering earlier as well, and it looked quite neat in my opinion. Yet measuring resistance between pins gave varying results, also compared with unsoldered, which made me wonder why. Cleaning the area around the soldered pins seemed to remove this, which indicates that this may be due to the soldering flux that was remaining. I also heard that flux tends to start flowing again as it heats up under operation, which indicates why the connection seemed good right after soldering, but changed trough time. Perhaps this is why people use these ultrasonic cleaning baths or something.

About the led strips: They were one of the cheapest ones available.

About the power supplies: The first power supply is the 5v line from a PC power supply, which should be able to give quite some amps. ( i forgot how much exactly, but way more than I needed) The second power supply was a Lithion battery with regulator. The thing says it is able to supply 2 amps, but I stayed far away from this limit.

Thank you for your tips. You help me keep improving myself.

Any more tips on cleaning soldered connections are welcome.

EDIT:

Oh boi! If it isn't the consequences of my own actions!

So this is what SN39 flux does to soldered wires in 2 years. This is a different object, soldered with the same acid based flux thats intended for copper piping, and not for electricals. I have quite some wonky soldering work to replace at my job. Don't be me lads, and only use flux thats intended for electricals.

This wire got rekt

1
  • Very late note on this project, but nonetheless: I found out that I used a soldering flux which was not suitable for electronics. (S39, which is an acid based flux, which should have been a resin based one) It solders great but creates corrosion pretty quick, so hence is to be avoided. Too bad that I never found replacing flux that solders so nice. I am unsure if this is the cause of the pixels dying ,though.
    – Bart B
    Jun 20, 2023 at 13:39
1

To my understanding, anything connected to the data line (resistors, diodes, etc) is there to protect to data pin from either sourcing too much current to the LEDs or receive a too high voltage.

The capacitor, on the other hand, is there to provide a buffer and maintain the voltage at the right value when current absorption increases with a spike.

If your LEDS burn up and it's always the first one, assuming they are all programmed to lit up of the same color, the most reasonable reason IMHO is you are feeding too much current, in particular in the form of higher voltage through the resistors on the strip.

I suggest you double check the source voltage with no load and with a light load, then try a different power supply and, as last resort, try to lower the brightness intensity of the LEDS: set brightness to 50% and check if it takes like 3 or 4 times longer to burn the LED, which will be a confirmation about my statement.

The first LED is the one receiving the highest voltage in the strip as the strip itself has a non trivial resistance, especially the cheap ones. Lowering the brightness you are actually lowering the amount of time the LED is on and it should prolong the LED life in a non linear way.

If my assumption is correct, this also means you have already partially damaged all the LEDS on the strip, the closer to the power, the more damaged they are.

1
  • I HIGHLY doubt that there would be any significant voltage drop between adjacent LED modules on the strip. If there was that kind of loss then a strip of lights would never work as they do. The most likely point of damage would be to the control input. And there is a reason that Adafruit recommends adding series resistance to the input. It is known to be the weak point.
    – Rudy
    Dec 11, 2018 at 5:27
1

https://www.kitronik.co.uk/pdf/WS2812B-LED-datasheet.pdf

Check the power supply. It is likely too high a voltage. 5.3V is the absolute max. The resistor is only to prevent signal reflections on long wire runs. Neither it or the diodes are needed for your setup.

For comparison, here are 4 rings of 43 WS2812B each, with only a 0.1uF cap per chip, each ring driven from a different data pin on an Uno, which is off screen, and a 10A power supply (4 rings x 43 LEDs/ring * 60mA/LED = 10.3A max current). https://www.youtube.com/watch?v=CGOxbehyoM4 You can see the wires are much longer than yours. Unfortunately the camera doesn't self adjust to the brightness changes too well, so the video can be a bit glary at times.

0

While you've tried a 470µF capacitor, it might be worth getting a 1000µF capacitor, as recommended. Capacitors help stabilize the power supply, especially during sudden current spikes.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.