Neopixel Strip Pixels dying (?)

EL Wire/Tape/Panels, LEDs, pixels and strips, LCDs and TFTs, etc products from Adafruit

Moderators: adafruit_support_bill, adafruit

Please be positive and constructive with your questions and comments.
rbutani
 
Posts: 10
Joined: Sat Feb 15, 2014 4:08 am

Neopixel Strip Pixels dying (?)

Post by rbutani »

So this is my story:

A few days ago I received a two 2 meters long strand of Neopixels from Adafruit. It took me about a day to wire the Neopixels correctly and actually get them to do something, because (being the idiot I am) I didn't realize that the data in side was not on the side of the connector. After I finally got the strip to work, I noticed that the first pixel in the strip wasn't working. It would turn a color when the strip was plugged in, but it would ignore any data the Arduino sent. I don't know if the strip shipped this way or if I broke something while trying to get the strip to work. At the other end of the strip (the data in side) there are several dead pixels (the number keeps increasing). At first there was only one dead pixel (it was the second pixel in the strip, so I had to get rid of two pixels even though the first pixel worked), but a day later another two pixels died. Yesterday I cut five pixels off the end of the strip (three dead, two working but isolated) and soldered wires to the data and ground pins and the end of the strip. I thought that the pixels that had died thus far died because I fiddled with the connections a bit and may have shorted out the pixels or their respective controllers. But then the led pixel which I soldered the wires to died.

This is how I have the strip wired: The Led Strip has cables on both ends: On one end I have data, power and ground cables soldered, but only the power and ground cables are connected. These cables are connected to a battery. One the other end of the strip (data side), I have the data and ground cables soldered with the data connected to an Arduino. The Arduino's ground is also connected to the battery. I have a resistor between the arduino and the data pin, but I omitted the capacitor as I'm powering the pixels from a battery.

So my question is: why are the pixels dying? And why is it always the pixels on the data side of the strip? This suggests that the issue has something to do with the data pin and the way I connected it to the Arduino. If the issue had to do with power and ground, then wouldn't the pixels on the power/ground side of the strip die? Or could not having the capacitor be the issue? What I think is happening with the dead pixels, is that the controller for the LEDs is dying for some reason.

And another question: Is there any specific way I'm supposed to solder the LED Strips?

Thanks in advance.

rbutani
 
Posts: 10
Joined: Sat Feb 15, 2014 4:08 am

Re: Neopixel Strip Pixels dying (?)

Post by rbutani »

To try to be more clear, I'll rephrase the question: Based on what's happening, I'm pretty sure that the LED Drivers are dying for some reason. Does anyone have any possible explanation as to why this is happening? (my wiring setup is explained in the first post)

Thanks in advance.

kaiphas
 
Posts: 18
Joined: Sat Jun 30, 2012 9:19 am

Re: Neopixel Strip Pixels dying (?)

Post by kaiphas »

What is the voltage of the battery that you are using?

kaiphas
 
Posts: 18
Joined: Sat Jun 30, 2012 9:19 am

Re: Neopixel Strip Pixels dying (?)

Post by kaiphas »

Also, what kind of Arduino are you using? Uno, Fio, ProMini... etc. Is it 3.3V or 5V? Why are you powering the strip from one end and sending data from the other? Why not from the same end... then you don't have a long connection from ground on your Arduino to the battery... In any case, you could just connect the Arduino ground to the ground pin on the DataIn end of the strip.

If you want to know if the Pixels are blown... take a 10x microscope and look at the NeoPixel window... if it looks like the top is blown out, it is probably fried. Not a sure thing but most likely. I had a problem once with a NeoPixel ring and I was able to find the problem NeoPixel like that.

rbutani
 
Posts: 10
Joined: Sat Feb 15, 2014 4:08 am

Re: Neopixel Strip Pixels dying (?)

Post by rbutani »

I'm powering the strip from 3 1.5V batteries. The Arduino (it's an Uno, so 5V) is powered separately (USB). The reason I'm connecting ground and power at separate ends is because, eventually, I plan to mount the strip on a robot which has it's battery and power distribution unit on one side, and the Arduino on the other.

I have the exact same issue as the one described here: http://forums.adafruit.com/viewtopic.php?f=47&t=49610
But I don't get why I am having this problem, as I'm using an Arduino Uno (5V instead of 3.3).

kaiphas
 
Posts: 18
Joined: Sat Jun 30, 2012 9:19 am

Re: Neopixel Strip Pixels dying (?)

Post by kaiphas »

I think to run 2 meters of NeoPixels, you would need a heftier power supply than three 1.5 batteries... what kind of batteries? AA, AAA? Depends on your code I suppose but that doesn't seem like enough power for two meters... are they 60 NeoPixel per meter... 144?

If you have a wall outlet that can handle about 2 amps or more, try that with a 1000 microFahrad capacitor across power and ground at the point where the power goes into the NeoPixel strip. Or use setBrightness() to turn down the power of the NeoPixels in your code to see if that makes a difference... i.e. strip.setBrightness(20); in setup of your code.

I have had 4 meters of Neopixel strip running now for months and have had absolutely no problem... my setup...

Wall wart rated for 10 amps
4 meters of neopixels
ATmega328p on a breadboard powered by 3AA batteries
connections as follows
power and ground from wall wart to NeoPixel strip
data and ground from ATmega328p to NeoPixel strip
1000 microFahrad capacitor across power and ground of the NeoPixel strip and point of entry of power
470ohm resistor between ATmega328p data pin and DataIn of the strip at the point of entry to the strip

I know you need to run off of batteries since it's a robot, but I think you will have to find either a stronger battery source or use fewer NeoPixels

User avatar
adafruit_support_mike
 
Posts: 67454
Joined: Thu Feb 11, 2010 2:51 pm

Re: Neopixel Strip Pixels dying (?)

Post by adafruit_support_mike »

If I understand your description of the wiring correctly, you only have one wire connected between the 'data' end of the strip and the Arduino: the data line. Is that correct?

rbutani
 
Posts: 10
Joined: Sat Feb 15, 2014 4:08 am

Re: Neopixel Strip Pixels dying (?)

Post by rbutani »

I'm using 60 pixel Strips. When I was powering the Neopixel Strips one the robot, I was using a 12V to 5V converter that provided 5 Amps (it's actually an FRC robot). I had the same problems. I switched to the batteries because I don't have access to the robot at home. If the power source is the issue, wouldn't the pixels on the power in side of the strip be dying?

Just for clarification, I have gotten the strip to work off of the batteries. My issue is that a little bit later the pixel wired to the Arduino dies. I strongly doubt lack of power is my issue.

adafruit_support_mike: That is correct. As of now the ground of the Arduino is connected directly to the batteries.

Thanks for your help!

User avatar
adafruit_support_mike
 
Posts: 67454
Joined: Thu Feb 11, 2010 2:51 pm

Re: Neopixel Strip Pixels dying (?)

Post by adafruit_support_mike »

The trouble may be the length of your ground loop.

All voltages have to be measured between two points. As you have things connected now, the signal that goes to the DI pin is measured between your Arduino's data pin and its GND pin.

The path from the data pin to the first pixel's DI pin is probably quite short. The path from the Arduino's GND pin to the first pixel's GND pin has to go to the battery, then to the far end of the LED strip, and all the way up the strip's GND rail.

There are three problems with that:

First, electrical signals travel at about 9" per nanosecond in copper. The difference in the lengths of your paths will probably inject 3-5ns of delay into the signals as the first pixel's GND pin catches up to the DI pin. By itself that isn't so bad, but it allows for lots of complications when you add the next two factors.

Second, PWM injects a lot of noise into the supply rails. Copper's resistance is low, but it's not zero, and a few amps of current bouncing up and down along a meter of strip will cause voltage spikes. All those spikes get added to the "0v reference" voltage trying to reach the first pixel's GND pin.

Third, every loop that can conduct current is an inductor, and we live in a world saturated with electrical noise. I've done some work with high impedance circuits, and it was normal to see as much as 2v of 60Hz noise generated by the wires in the walls and picked up by the 4" ground strap on my oscilloscope probe. The current involved was negligible, but it only takes 100 nanoamps to generate 1v across a resistance of 10 megohms. It wouldn't surprise me to see enough induced EMF in a 2-meter loop to blow out a NeoPixel's input.

Run a GND line in parallel with your data line and see if that makes things work better.

jaculpiii
 
Posts: 6
Joined: Wed Jul 10, 2013 11:29 pm

Re: Neopixel Strip Pixels dying (?)

Post by jaculpiii »

I am mentoring an FRC team and we have been having very similar woes as the OP however our strips are just losing the first pixel.

Our setup is 12v/5v (5a) converter -> arduino and +/- busses (for led strips). Then from the arduino (signal) and busses we power 2 1.5m long strips (45 LEDs each) and 1 16 LED ring. Each strip has a 16v 1000uF capacitor across +v and ground as per the tutorial, and the signal lines have a 300ohm resistor. We are not overpowering the 12v/5v converter as we are not going full brightness at any given time for all 3 LEDs.

The first time we got things running everything was great until we used the robot for it's intended purpose (the FRC game) and then after a few cycles the lights died. Further examination found that both strips had lost the first pixel, and one of the strips had lost a pixel at a cut point where wire had been inserted to extend it. The ring had no issues. We assumed this was due to electrostatic discharge as our robot has a spinning wheel with rubber tread that seems to create alot of static (like a vandergraaf generator) since the ends weren't isolated with insulator we assumed they had caught an arc.

Removed dead pixels, covered entire strips with heat shrink tubing made sure there were no exposed contact points and tried again today, things were working great, then I plugged my (battery powered) laptop into the Arduino to update the code while it was still connected and powered by the robot power and suddenly the lights just lit with random colors, after power cycling the robot and arduino none of the lights work again, I'm assuming more bad pixels however the robot is now bagged and cannot be accessed until the competition in 6 weeks.

I have the arduino and bus that were being used and tested with an LED strip here at my house and the arduino is putting out the correct signals. So my question is ... what keeps frying these LEDs, is it because the signal wires are running parallel to the DC power lines like the OP, should we be using shielded cable for our power, ground and signal to the strips? We are permitted to modify motors for the competition by adding capacitors but some motors this is very hard to do properly so is not likely to happen.

Thanks for any help, I'm tired of looking like an idiot for suggesting we use the LED strips to make the robot look nifty for the competition, I'm a laughing stock at this point because of the whole fiasco.

James

User avatar
adafruit_support_mike
 
Posts: 67454
Joined: Thu Feb 11, 2010 2:51 pm

Re: Neopixel Strip Pixels dying (?)

Post by adafruit_support_mike »

As mentioned above, running signal lines in the same bundle with power lines can cause trouble.. especially motor power, and even more especially PWM'd motor power. ESD is also a good way to kill any sensitive electronics.

Try putting a large capacitor between VCC and GND at the LED strip to absorb voltage spikes in the power, and try adding a 10k resistor between the strip's DI and GND connections. If you're getting induced EMF in the signal lines, the extremely high resistance of the NeoPixel's input circuit will make the spikes as bad as they can get. A moderate resistance will give induced current somewhere to go before it blows the input.

rbutani
 
Posts: 10
Joined: Sat Feb 15, 2014 4:08 am

Re: Neopixel Strip Pixels dying (?)

Post by rbutani »

I made the ground and signal cables the same length. So far no more pixel have died, but I noticed something strange. The last pixel of the strip is becomes really hot. Even when no LEDs on the strip are lit. The moment I unplug the strip from the batteries, the last pixel cools down. No other pixels are even warm. Is this something to worry about? Or is this supposed to happen and if so, why?

Thanks for your help!

User avatar
adafruit_support_mike
 
Posts: 67454
Joined: Thu Feb 11, 2010 2:51 pm

Re: Neopixel Strip Pixels dying (?)

Post by adafruit_support_mike »

That's not supposed to happen.

When parts get hot it usually means there's a short circuit. Does the pixel still light when you give it control data?

rbutani
 
Posts: 10
Joined: Sat Feb 15, 2014 4:08 am

Re: Neopixel Strip Pixels dying (?)

Post by rbutani »

The pixel still lights. If there is a short circuit, wouldn't the pixel die immediately?

I don't know what this means, but it's always the last working pixel that gets hot. I noticed this with some of the other pixels on the strip before they died, and they too would get very hot.

Thanks for your help!

User avatar
adafruit_support_mike
 
Posts: 67454
Joined: Thu Feb 11, 2010 2:51 pm

Re: Neopixel Strip Pixels dying (?)

Post by adafruit_support_mike »

rbutani wrote:The pixel still lights. If there is a short circuit, wouldn't the pixel die immediately?

That's what I'd expect, but hardware debugging is the realm of the unexpected.
rbutani wrote:I don't know what this means, but it's always the last working pixel that gets hot. I noticed this with some of the other pixels on the strip before they died, and they too would get very hot.
I've never heard of that happening before.

The 'last pixel in the sequence' part sounds like some kind of problem in the data channel. Try telling the software you have one more pixel than actually exists in the strip. See if the last one still gets hot. Also try it with the code thinking there's one less pixel than actually exists in the strip.

Locked
Please be positive and constructive with your questions and comments.

Return to “Glowy things (LCD, LED, TFT, EL) purchased at Adafruit”