Electronic – Random SPI Signals on LPD8806 LED Strip

raspberry pispi

I've got a long run of some LPD8806 driver-based LED strips (which use an SPI connection) that I am controlling via a Raspberry Pi. It controls it just great, but when I have the LEDs all off (not powered down completely, just having told the driver chips to clear the LED) a few of the lights will eventually turn on. It's really weird, just a few will turn on to random colors after they've been sitting for several hours. Usually 4 or 5 in a row and often somewhere in the middle of the strip.

What I can't figure out is how they are they are getting these random signals. Could it be something with my connection to the SPI pins on the Raspberry Pi? I have the SPI Data out and Clock pins running through a level converter from Adafruit to bring the signal level from 3.3V up to the 5V of the strips.

I'm more of a software guy, so I'm probably just missing something silly. Do the signal lines need some sort of filtering cap maybe?

Update: I've got 2 rolls, 5 meters each, connected in one long run. I am injecting power at the very beginning of the run and where the second roll connects to the first (otherwise the very last pixels were browning out).

What I've noticed now is that it's only ever pixels at the very beginning of the second roll that are turning on. Not sure why, but maybe this will give a clue to what's happening?

I'm up for trying a cap across the power lines… but have no idea what value to use. The highest rated 10uF cap I have on hand is rated for 100V but it's still tiny. Can't imagine that could handle 10A (since I'd have to wire in one cap for each separate power run).

Best Answer

Here is my interpretation of what I think is happening: -

The chips used in this product require clocked serial data and each chip has outputs that can feed more chips thus, you can create a large array of LEDs and each LED can be controlled individually. That seems to be the idea but, the general problem with controlling LEDs through an array of shift registers is that the guy writing the code to control the LEDs has to keep tabs on what the state of the LEDs are.

No easy feat and say, because of the size of the array a rogue clock occured, the "controller" (aka MCU) wouldn't necessarily be aware that the "system" is now out of sync. I'm half assuming that the chips are distributed through the product so that LED wiring is made simpler - this can aggrevate the problem if there is interference from some external source - I can envisage random LEDs turning on and maybe this is the problem.

The chip does not appear to be 100% adequately documented and of course there is no guarantee that adequate supply decoupling is used in the produce purchased so it's a bit of a lottery as to what is really happening but, given the "antenna"-like nature of the product and also the lack of adequate grounding throughout the strip of LEDs, external influences could have an effect.

enter image description here

Maybe the problem comes from a local wifi router or someone using a drill nearby; maybe someone using an electric arc welder or maybe just a faulty product.