fadecandy
Fadecandy is firmware for the Teensy 3.0, a tiny and inexpensive ARM microcontroller board.
Fadecandy drives addressable LED strips with the WS2811 and WS2812 controllers. These LED strips are common and inexpensive, available from many suppliers for around $0.25 per pixel.
This firmware is based on Stoffregen's excellent OctoWS2811 library, which pumps out serial data for these LED strips entirely using DMA. This firmware builds on Paul's work by adding:
- A high performance USB protocol
- Double-buffering
- Interpolation between keyframes
- Gamma correction
- Temporal dithering
These features add up to give very smooth fades and high dynamic range. Ever notice that annoying stair-stepping effect when fading LEDs from off to dim? Fadecandy avoids that using a form of delta-sigma modulation. It rapidly wiggles each pixel's value up or down by one 8-bit step, in order to achieve 16-bit resolution for fades.
TBD
This is a work in progress! Things I don't know yet:
- How many LEDs will be supported per Teensy board
- Maximum frame rates
- Specific documentation for the USB protocol
Prerequisites
- The recommended ARM toolchain, from https://code.launchpad.net/gcc-arm-embedded
- The Teensy Loader: http://www.pjrc.com/teensy/loader.html