Hi, welcome to my site! Here I share ideas, projects, and ramblings. I hope you enjoy them!
Note: There's an updated version of this board that supports APA102 (DotStar) LEDs and 3x more LEDs.
The information on this page is an archive of the specs for people who are still running these V1 output expanders (produced 2018-2019.)
This is a serial to WS2812/WS2811/SK6812/NeoPixel driver board. It can be used with just about any microcontroller, and level-shifts to 5 V with 100 ohm impedance matching resistors for the best signal quality. The protocol allows for up to 8 driver boards to run from the same serial line, with cuttable jumpers to set the address. Pixel data is buffered, and displayed simultaneously across all channels, and includes CRC error checking to prevent glitches.
Each channel can have its own color ordering, and can support a mix of RGB and RGBW across channels, and any mix of length, up to 240 RGB pixels or 180 RGBW pixels per channel.
Since data is buffered on this board and the protocol doesn't have any timing requirements, you can calculate pixel data on the fly and there's no need to buffer anything on your micro, freeing up memory. Up to 1920 pixels per board, and up to 8 boards means you can drive up to 15360 pixels from a single serial port using almost no memory!
The serial protocol runs at 2 Mbps. This allows up to 66 k pixels/sec to be drawn per output, about twice the speed of typical WS2812.
Originally designed to expand output options for the Pixelblaze, this driver board can be driven by just about any micro.
This solves many issues that are tough to accomplish with existing hardware/libraries:
Handles all of the WS2812 timing requirements. No need to lock up your CPU, disable interrupts, etc.
Buffers data, so you don't have to dedicate memory for each pixel!
Outputs all channels simultaneously (up to 64 with 8 boards).
CRC error checking to avoid glitches in noisy environments.
Handles all of the color re-ordering, and accepts RGB or RGBW ordered data.
Works on a single data line!
Input can be either 3.3V or 5V, and level shifts for 5V LEDs.
Doubles the pixels/second possible from a single output.
See this write-up in the source repo.
The board can also deliver up to 3A.