Open Pixel Control (OPC) is a protocol for driving arrays of RGB lights. Unlike DMX, which is tied to specific cabling, voltages and topology, OPC leverages existing interconnects like Ethernet or even WiFi. OPC is particularly well-suited to LED art installations!
Creating mobile, self-contained OPC displays — processor, wireless networking, LEDs and battery in a single robust unit that one can carry — has been an ongoing challenge. In this guide we’ll create one such device, using the Adafruit Feather M0 WiFi to replace multiple elements with a single small package.
In the past, this might’ve been handled with a combination of parts, such as a Raspberry Pi computer with a USB WiFi adapter and Fadecandy controller (a USB-based OPC device for NeoPixels). This works, but the Pi board uses more power, the long delay for Linux to boot is an annoyance, and the multitude of separate parts raises durability concerns…USB cables can pop out, SD cards are easily jostled and corrupted in such mobile environments. Still other approaches have relied on custom firmware for portable WiFi routers.
There are quite a few hardware and software components in this project, and some prior programming experience is assumed…please read through the whole guide first to understand all the pieces before committing.
So is this like a replacement for Fadecandy?
Far from it! We implemented some FadeCandy-like ideas, such as dithering and interpolation, and it is can use the same FadeCandy software, but the nature of the hardware may require dialing back the frame rate or number of LEDs. Ours is, at best, a modest approximation. It’s fun-size 'Candy.
High-end installations will still benefit from the Raspberry Pi + Fadecandy duo. The Pi keeps up with fast datastreams, while the Fadecandy hardware fully exploits its potent M4 processor, with firmware written by two of the brightest minds in embedded development: Micah Scott and Paul Stoffregen.
You’re using DotStar LEDs. Can I use NeoPixels instead?
No. We found the Feather M0’s processor better equipped to handle a single long DotStar strand over high-speed SPI using DMA…we effectively get that time “free.” That’s not an option with NeoPixels on this particular board - while you can DMA a strand of NeoPixels you can't do 8 in parallel. Perhaps we’ll revisit this idea with various hardware in the future.