WS2801 - What can kill your LEDs?

  • I've put together a Pi 3 with grabber using WS2801s and everything's worked as expected for the few weeks that it's taken me to get set up.

    So last night I decided I was ready to try it out and watch some Netflix with everything turned on, and it worked great for about 30 minutes before the LEDs just stopped dead. Rebooted, fully powercycled everything - nothing worked.

    I quickly spotted that although previously switching the system on caused the first LED the light up before Hyperion kicked-in and did the swirl, I'm now getting nothing at all when the LEDs receive power. A quick check with a multimeter shows there's 5v at the strip, so it looks like the first LED/chip is fried (or maybe more of them?)

    My next step is to cut off the first LED and attach the cables to the next one...
    But I can't understand how/why the first one got damaged - one minute everything's working and then suddenly it's not.

    So the question is: what can cause damage to the LED strip, and how can I prevent it from happening again?

    Aside from using a level shifter (which I gather isn't used by everyone) my setup is standard - WS2801 connected to the SPI pins on a Pi. I've got a 10A supply (also powering the Pi) incase that's relevant.

    I suppose last night was the longest continual time that the strip had been illuminated, and at the time of failure there was a lot of white (which pulls the most power?).

    Any ideas?

  • It's a Tesfish 10A…_asin_title?ie=UTF8&psc=1

    Though after spending time checking connections it seems I had a loose data/clock wire coming from my levelshifter, and I was able to get the first LED to light up after removing and reseating the connection a few times.... after fixing the connections and triple-checking with a multimeter I'm back to getting nothing though, so I'm wondering if the shifter somehow got fried. I've ordered a replacement to see if it makes a difference.
    I might buy a cheap LED controller box so I can double-check that the LEDs are still working in any case!

  • Not sure if relevant but I was using a power supply (15 amps) for the pi + LEDs (with 230 leds - pretty close to maxing the 15 amps), when all the LED's are white the voltage drops to around ~4.7v, I was having issues with flickering so I switched the pi to its own power supply and it's been good now for weeks. Using "CLT1070" TTL level converter.

  • Thanks for the useful info guys, I'm gonna get an Arduino on the LEDs to make sure they're fine (haven't had time yet).
    I did try bypassing the levelshifter (so directly attaching the Pi to the LEDs with minimum cable, aprox 10cm) and still nothing. So it's either the Pi, the LEDs or the cables that I crimped myself which are going from the Pi to the shifter. I checked them with a multimeter when I made the cables but I'm always supicious of anything home made!

  • So this is very weird.

    To reiterate - I've got the SPI pins of the Pi connected to a levelshifter, which is then connected to the LEDs by a few metres of cable.
    Everything runs from the same PSU so there's common 0v.
    It was all working fine then just suddenly stopped dead last week - getting nothing on the LEDs, not even the first LED lighting up in a random colour while booting (which is what I'd always seen previously).

    I've tested the SPI interface on the PI using this loopback test:
    ...and it seems to be working fine.

    I've tested the cabling with a multimeter. I've tried bypassing the level shifter (so connecting the SPI pins directly the the LEDs, without the few metres of cable - still doesn't work) and have also replaced the level shifter with a new one.

    Also bought my first Arduino and set it up to drive WS2801s - which worked perfectly (much to my surprise - this was my first time setting up an Arduino and I was exepecting to at least hit one or two hiccups).

    So everything appears to work fine individually!

    Then it occurred to me that there's one thing that hasn't been tested - the CLK pin on the SPI interface. The loopback test connects MISO to MOSI but doesn't use the CLK pin.

    So the one thing left to try is replacing the Pi, which I'm going to do this week.

    If it does indeed turn out to be a damaged CLK pin - how the hell did that happen?
    I'm positive that all connections were sound and that nothing shorted.... my levelshifter is bi-directional so I briefly wondered if it somehow fed something back to the Pi from the LEDs, but searching the forums it seems that bi-directional shifters are the norm.

    I'm just worried that I'll eventually damage the new Pi in the same way - any suggestions?

    EDIT: I've also removed and reinstalled Hyperion, which had no effect.

    It's also occurred to me that since I've bought the Audino, could I just use that (connected to the Pi via USB) to drive the LEDs? Would it be possible and/or would there be any drawbacks to doing this?

  • This just gets weirder.

    I've hooked the Arduino up via USB and uploaded the sketch below. I see the 2 flashes from the LEDs when it boots (and also when I restart Hyperion). I'm seeing rapid flashes from the onboard LED on the Arduino when Hyperion is running - presumably to indicate serial communication.
    I'm using "adalight" as the type and ttyUSB0 (the only device which shows up when the Arduino is connected, and there's nothing in Hyperion's logs to suggest anything's wrong.

    But I'm still getting nothing from my LEDs. There's clearly an issue between Hyperion and the Arduino - since I get the flashes when it starts up it proves that the Arduino is controlling the LEDs - but I can't understand what the problem is.

    Any suggestions?

    This is my config file:

  • Sure:

    Hyperion seem quite happy, and I'm assuming the flashing LED on the Arduino represents some kind of comms.

  • Yes - the LEDs just flash through the "initial RGB flash" that's defined in the sketch - once when the Arduino boots and again when Hyperion starts up (and every time I stop-and-start Hyperion from Hypercon).
    I've tried 460800, 100000 and 500000 baud.
    The USB cable is the only power source for the Arduino so it doesn't do much without it... are you thinking that it needs more power? When I rand the striptest sketch from the FastLED library it worked ok with just USB power.
    (thanks for your help by the way!)

  • Yes. To clarify - the only LED activity I see is the initial test that the sketch performs. I see it when the Arduino powers up and also whenever Hyperion starts. Specifically I've *not* been talking about Hyperion's colour swirl, just the initial double-flash that the sketch performs.
    ie. the only effect that Hyperion is having at all is that when it starts it seems to restart the sketch on the Arduino; I see no actual LED activity that's being controlled by Hyperion at all.

    I've now unplugged the Arduino from the Pi and have provided it with power only - and again I see the double-flash as soon as it starts up.

  • Please double check the hardware pin numbers for DATA_PIN (6) and CLOCK_PIN (4)

    // For 3 wire led stripes line Neopixel/Ws2812, which have a data line, ground, and power, you just need to define DATA_PIN.
    // For led chipsets that are SPI based (four wires - data, clock, ground, and power), both defines DATA_PIN and CLOCK_PIN are needed
    //#define LED_PINS 6        // 3 wire leds
    #define LED_PINS 6, 4  // 4 wire leds

    Then comment the checksum conditional statement and flash again the arduino.

    This problem seems to have nothing to do with Hyperion if the arduino does not already show the startup effect.
    In case of doubt, I would look for another sketch on the internet.

  • The pins are definitely correct - data to pin 6, clock to pin 4.

    When you've said "the startup effect" you're talking about this, right?

    If so then I must be not making myself clear. I *am* seeing this effect - once when the Arduino gets powered and again any time that Hyperion is started.

    I've edited the sketch to comment out the checksum line and have uploaded it - the behaviour is still exactly as it was before.

    I've also tried this sketch:

    ....which had it's own startup effect (red/green/blue cycle), and again I only saw that effect and then nothing from Hyperion.

  • Hi Akriss
    Thanks - I've already run this exact sketch on my Arduino - it worked like a charm (it was what I ran in post #7 above when I first bought the Arduino to test that the LEDs were still working).
    I'm 100% confident that the Arduino and the LEDs are working perfectly, the problem seems to be getting the Pi/Hyperion to talk to the Arduino.

  • Rereading top to bottom. And I'm leaning to a power supply fault.

    I've had power supply that over time the amperage output drops drastically.

    This worries me. (The cable length)

    a levelshifter, which is then connected to the LEDs by a few metres of cable.

    As voltage drop could be a issue on long runs. And could push the power supply over the limits.

    Just a thought.

  • I see the same behavior if I remove the extra cabling, and in either case I've checked the voltage at the end of the LED strip with a multimeter - it's not a voltage issue.
    Think the next step is to plug the USB output into a terminal emulator and see exactly what the Pi/Hyperion are sending down the wire.

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!