Neopixel strip acting strange when hot

Hi,

I've been working on a RPM / Gear indicator for my racing sidecar. I realise this is a very hostile environment for an arduino.

I have a 16 LED strip to display the RPM, and an 8 Pixel strip to display the current gear. It all works nicely until the engine has been run hard for a few laps, then the wierdness starts to happen. Pixels stay on when they should be off, some of them are the wrong colour.

Also, when power is switched off, they seem to stay on for a lot longer than normal and fade to red before turning off. It seems to me like there is some extra capacitance when everything gets warm.

The Arduino is powered by a buck converter, which steps down the voltage from the battery to 5V. This 5V output is also powering the neopixel strips.

I have some onboard footage from my last race meeting that shows some of the pixels staying on when they shouldn't. Once I've edited these to short clips I will post a link to them.

Any help on where to start identify the problem would be appriciated.

Any help on where to start identify the problem would be appriciated.

I think that you've already identified the problem. The key now is finding a way to keep the LEDs from getting hot. Or the Arduino. Or the buck converter.

PS. I want to see the sidecar racing footage. Forget the neopixel crap.

I have uploaded a short video here Neopixel RPM Gear Indicator Sidecar - YouTube

Does an electrolytic capacitor increase capacitance when it gets warm? This would be the only way to explain why the lights stayed on for much longer when I cut the power, and faded to red before turning off. I have a 1000uF capacitor in the arduino enclosure, on the 5V power line going to the strips, and then another 220uF capacitor inside the led strip enclosure, at the start of each strip.

I am not sure what is making certain pixels remain on, the data line has a resistor on the DIN line, as recommended on the neopixel website. Once it cools down they seem to work fine again.

Here is a schematic of my setup.

The dotted green lines indicate that there are some longish wires between the enclosure and LED Strips. Everything else is located in the Enclosure with the Arduino, soldered on to some strip board.

Hello,

I’m going to put my neck on the block here and suggest that the 1000uF on the output of your buck converter is certainly a big capacitor and would probably power the neopixel strips (especially as you’re only sing quite short ones) for a second of so after the power is turned off.

What’s inside your buck converter? Could you get away with using something simpler like a Voltage regulator? A 7805 would do the job - I’m using one to power a speedo signal generator in a van, so it’s happily bringing approx. 14V down to 5V - you might not need such a big smoothing capacitor (or any capacitor), then.

What’s the job(s) of the 220uF’s across the neopixel strips? I’ve built a few projects with noepixel strips (I built a light-up tube for a pedal-powered generator to show how much electricity people were generating at a science fair - that had 150 pixels in it) and have never put capacitors across the supply.

I’ve had neopixels light up the wrong colour or light up unexpectedly, but it’s always been a bad earth or dodgy code for me…

Hi,

The 1000uF capacitor was added as I was following the Neopixel uberguide best practices.

Before connecting NeoPixels to any large power source (DC “wall wart” or even a large battery), add acapacitor
(1000 µF, 6.3V or higher) across the + and – terminals as shown above. The capacitor buffers sudden changes in
the current drawn by the strip

I also added the 220uF closer to the strips as the 1000uF is situated about 3m of wire away.

They go off almost immediately when the power is first turned on. After the engine as run hard for around 20 minutes, they stay on for much longer, and you can definitely notice them fading to red before they turn off. It is like there is suddenly more capacitance, or the capacitors are draining much more slowly.

I did toy with the idea of using a linear regulator, but I didn't like how hot it got dissipating the extra voltage as heat. I am already having a problem with heat, I don't need anymore.

The buck converter is a cheap eBay variety. Very similar to this: eBay Link

Maybe you can manually cool the LED assembly by spraying freeze spray.... and if there's improvement.... you could then focus on cooling the LEDs ... or get some other module that doesn't have that problem. Or maybe try a spare LED strip of the same kind... in case yours has an internal heat handling issue.

I'd maybe try it without the 220uF's and see what the effect is.

Could you temporarily mount the control circuitry in the airflow and see if that makes any difference?

What's the ground connection between the 5V side, the 12V side and the sidecar ground like?

They fade to red because the red LED has the lowest forward voltage of the 3, so it stays on longer than green and blue when the voltage collapses. (I can not explain why it would be slower when hot.)

It is all to do with the way your power source turns off and nothing to do with your LED circuit at all.

Something is causing the power to remain on / decay slower when your engine is hot. Look there for your explanation.

Grumpy_Mike:
It is all to do with the way your power source turns off and nothing to do with your LED circuit at all.

Something is causing the power to remain on / decay slower when your engine is hot. Look there for your explanation.

Do you think this could also explain why sometimes some of the pixels remain on when I have turned them off via code?

Well yes. That could be down to interference from your engine.
As in so many projects you could need more decoupling.

I will do some measurements next time I am racing. I did some reading and it appears that the resistance of metals increases with temperature. I suspect the resistance to earth is getting higher as he temperature increases. The negative terminal on the battery is connected directly to the engine and it does increase in temperature quite a lot (the engine). If this does turn out to be the problem I don't really know how to solve it, other than have a separate power supply, although I still need a common ground to read the analogue voltages.

The LEDs only stay on once it all gets warm, I don't have any caps on the data line to the strips, maybe I will add some.

rickerman:
Does an electrolytic capacitor increase capacitance when it gets warm?

Capacitor is warm ?

I did some reading and it appears that the resistance of metals increases with temperature.

It does but not by very much at the small temperature rises you are going to encounter. It is not going to be your problem.

I don't have any caps on the data line to the strips, maybe I will add some.

No it will just stop it working, it will not help.

I have been reviewing the code and I think I had a mistake that could have caused the pixel strip to be updated by a timer1 interrupt while I was writing out the next pixel strip values.

I can not test this until my next race meeting in around 2 months time. I'm not so worried about the slow decay in power if this turns out to be my issue.