I have an unhealthy obsession with LEDs. I also have an unhealthy obsession with frugality…
Total Control Lighting is a system of individually-addressible full-color LED “pixels” that can be shaped into any display imaginable. It’s a new offering from Funhouse Productions, who’ve been marketing their Cool Neon electroluminescent wire to creative types for years now, practically defining the after-dark aesthetic of the Burning Man arts festival.
The appeal of the Total Control Lighting system is that it scales linearly…just chain one strand of LEDs after the next, like Christmas lights. One end plugs into a controller box, which can issue preprogrammed color sequences, or others can load animation data from an SD card. In more sophisticated setups, the controller in turn connects to a computer, which can then command every LED individually and in real time. That’s where this project comes in…
These controller boxes offer some fine features, and come as a tidy, pre-packaged solution. They can run unattended, without any computer attached, streaming data from an SD card. Or they can be situated remotely on a network, far away from the computer actually generating the display. They also cost money, which I’d rather pour into buying more LEDs! Fortunately, for the technically-minded, we can cobble together our own home-built alternative for about fifteen bucks.
Some folks are already using an Arduino as a PC-to-LED bridge, and that works great up to a point. But when you start getting into larger displays and faster frame rates (such as video and persistence-of-vision displays), it’s like trying to funnel the traffic from an eight lane highway down a narrow gravel path. This alternate controller uses an FTDI USB-to-serial adapter, along with a C library to run it using “bitbang mode,” which is explained in this article at Hack a Day. The bitbang FTDI route can provide significantly higher throughput.
That’s the good news. The bad news, perhaps, is that this is just a low-level C library. You’ll still need to write the code to make it actually do anything. If the existing controllers already handle everything you need, be it pleasing color patterns or playing back animation sequences from an SD card, that extra investment might save you a lot of headache. But if hacking a Kinect controller for an interactive POV display is more your style, or anything else weird and unexpected, this might be just the thing you need. The code is open-source, and works on Mac, Linux and Windows.
Some outwardly identical-looking LED pixels are offered from other sources such as Bliptronics and Adafruit. Without getting into the all the geeky details, while these other types work fantastically well with a microcontroller, they just can’t be driven by the FTDI adapter without unsightly flicker. What distinguishes the Total Control Lighting pixels is the use of a newer LED driver chip — the P9813 — that’s essentially immune to the small timing issues of the FTDI approach. The code unfortunately will not work with those other pixels.
The library is available for download from this GitHub repository. Until I can get around to providing better documentation here, the README file included with the code explains its use and depicts the hardware setup with awful ASCII art. Any significant progress will also be posted on this YouTube channel.