Once upon a time I transformed a boring candelabra wall sconce from Target into a delightful LED remote controlled art piece with 3d printed candle holders and rainbow LED tea lights. Because I am far too lazy to bother to actually light candles.
I loved it, and delighted in its glow it every evening for seven nights. On the eight night, all the coin cell batteries flickered and died. Turns out, this beauty would cost me around $30 every week in batteries.
Batteries are Out. Fadecandy Is the Answer
Not to fear! I know all about building LED stuff. I’d wire it up and plug it in, and even write up a project for the Adafruit Learning Center in the process. I’d even dust off that Raspberry Pi and Fadecandy board to get extra fancy.
I grabbed some Neopixels and started soldering. A couple hours later the wiring was done. There was a little bit of flicker, not sure why, but surely I could fix it later.
Then I got out my Raspberry Pi B+. I went over to Phil B’s LED Curtain guide. I followed his directions carefully, then went to reboot the Pi and see the pretty lights come on and twinkle at me. I waited, then waited some more, then realized I’d killed it. My Pi wasn’t booting up at all.
Not one to give up easily, I reloaded the OS and tried again. And again. After the third failure, it was time to re-think things.
Fadecandy Is Overkill. Teensy Is the Answer.
The Fadecandy is an amazing product that is meant for running lots of Neopixels in a big LED matrix. This candelabra has just seven pixels laid out in a fairly random, non-matrix pattern. Really, the Fadecandy would be wasted on this lamp.
I decided a Teensy 3.2 and the FastLED library would give me just as impressive results, with a little less heartache. I could use an IR remote control and have lots of pretty modes. Yes!
Then I remembered that neopixels don’t play well with infrared. The timing just doesn’t work out — neopixels like to talk but they sure don’t know how to listen.
I disassembled the whole project and started from scratch, rewiring with Dotstar LEDs. I carefully soldered and glued and coded and prototyped.
When I at last plugged it in, the flickering problem was still there, and in fact had gotten much worse. I determined that the problem was the wire I was using. I’d used skinny ribbon cable, in order to hide nicely behind the metal frame, and it wasn’t carrying enough current to keep the lights fully on.
The Flickering Continues
I took the whole thing apart again. I unsoldered every LED and replaced every wire with fancy silicone stranded 26awg wire for the power & ground wires, and skinny-but-sturdy 30awg wire for the clock and data lines.
The flickering continued.
I changed out the power barrel jack connector. The flickering continued.
I changed out the flickering Dotstar LEDs with other LEDs. Still, the flickering continued.
I found a loose power connection on one of the lights and gleefully went after it with my soldering iron.
The Teensy 3.2 died in a puff of Magic Blue Smoke.
I Will Survive
No project is a failure until you give up on it. I got out another Teensy 3.2 and gritted my teeth.
I simplified the wiring run by creating straight shots to each candle cup instead of hiding the wiring behind the metal with long runs. I put a fabric backing on to hide the wires. At this point I was 15 hours into this seemingly simple project, on the 4th complete rebuild. This had better be worth it.
Success At Last
It works. OMG it works. There is no more flickering, the remote plays nicely with the lights, and I can plug it in and leave it on all night if I want. HOORAY!!
Except.. I’m rather tired of looking at this thing. Well, I imagine that will fade with time. My very first LED lamp project is a success.