Pixelblaze Output Expander
Designed to expand output options for the Pixelblaze, this driver board can also be driven by just about any micro over serial UART.
Drive 8 to 64 channels of addressable LEDs over a serial port from Pixelblaze or an Arduino/Pi with 600/800 pixels per channel.
These LEDs (and compatibles) are supported:
- WS2811 / WS2812 / WS2813 / WS2815 / SK6812 / NeoPixel
- APA102 / SK9822 / DotStar
It can be used with just about any microcontroller's serial (UART) port(s), Raspberry Pi, USB serial adapters, and even software serial implementations.
All outputs are level-shifted to 5V with 100 ohm resistors to limit current and match impedance for twisted pair like CAT 5/CAT 6. 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 or LED types, and any mix of length, up to 800 RGB pixels or 600 RGBW pixels per channel for the WS2812 / NeoPixel types, and 600 LEDs for the APA102 / DotStar types. Thats up to 6,400 pixels per board, or 51,200 with eight!
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.
For APA102 / SK9822 / DotStar, at least one channel is dedicated to clock output. This can be shared to multiple LEDs clock inputs, so you can drive up to 7 channels of APA102.
You can mix and match APA102 with WS2812 on the same board by specifying each channels type.
The input serial protocol runs at 2Mbps. This allows up to 66k pixels/sec to be drawn per serial line, about twice the speed of typical WS2812.
Power and GND connections are also available per channel, and works great for lower powered applications (up to 3 A).
In this kit you get the driver board (pictured), 5mm screw terminals, and 0.1" pin headers. It's sold as a kit, and some easy soldering is involved to attach the optional screw terminals and headers.
Using with Pixelblaze
To use with Pixelblaze, change the LED type to "Pixelblaze Output Expander" - then click on "Add Board" for each connected expander board. The interface will let you set up each channel's type, start index, pixel count, and color order. A count of zero effectively disables that channel.
Using with Arduino, Raspberry Pi, and more
Originally designed to expand output options for the Pixelblaze, this driver board can be driven by just about any micro. There's a growing community of folks working on using these in their projects!
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.
- Mix and match the most common LED types side by side, and draw simultaneously.
- 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.3 V or 5 V, and level shifts for 5V LEDs.
- Doubles the pixels/second possible from a single output (WS2812 type)
Drivers, Libraries, and Apps
- Arduino ESP8266 Driver
- https://github.com/zranger1/expander-universe Lets you drive addressable LEDs with your computer, a USB->Serial adapter in Processing
- https://github.com/bosporos/libpbx A C library for controlling the Output Expander / Serial to 8x LED Drivers
- https://github.com/derwentx/js-pixelblaze-expander A NodeJS Library for controlling the Output Expander / Serial to 8x LED Drivers