Pro Output Expander
Pro 5-12V 8x WS2812/APA102 LED Driver

What is it?
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.
Take your lighting project to the next level with this pro version of our Serial to 8x WS2812/APA102 Driver. This is the Pro Mini version, with 8 outputs condensed into 4 pluggable output terminals.
The ElectroMage Pro 8x WS2812/APA102 LED Driver, also known as a Pixelblaze Pro Output Expander, drives up to 8 independent sets of addressable LEDs, while providing up to 15A power distribution with fuse protection. Up to 8 driver boards can be used together for up to 64 independent output channels.
This LED driver was designed for Pixelblaze, but can be used with just about any microcontroller's serial (UART) port(s), Raspberry Pi, USB serial adapters, and even software serial implementations. The input serial protocol runs at 2Mbps which allows up to 66k pixels/sec to be drawn per serial line, about twice the speed of typical WS2812.
Power Distribution & Protection
Up to 15 A total can be distribted through this board. Each output is also rated up to this max, so you can drive 12A on one channel and 1A on each of the rest. Assuming full white at 50% max power (still very bright), that's enough for 500 typical 5V LEDs or 2,000 typical 12V LEDs.
An input main fuse + 4 independently fuse-protected power outputs provide protection against accidental shorts and other problems that can damage equipment or cause fires. Blown fuse indicators make it easy to troubleshoot any issues. Fuses are replaceable with common automotive mini blade type fuses.
Power support is available for both 12V and 5V power supplies and LEDs. The 12V version includes a DC-DC converter, which generates 5V for the on board electronics and up to 500mA for an attached Pixelblaze or other controller.
Addressable LED Support
The 4 output ports have 2 independent output channels each, for a total of 8 output channels.
Supported LEDs (and compatibles):
- WS2811 / WS2812 / WS2813 / WS2815 / GS8208 / SK6812 / NeoPixel
- APA102 / SK9822 / DotStar
For WS2812 types, you can drive up to 8 independent outputs.
For APA102 types, 4 outputs are easily driven by using a clock + data pair on each output. Clock signals are sharable, so it is possible to share a single clock output and have 7 APA102 data outputs.
You can mix and match APA102 with WS2812 on the same board by specifying each channel's type. The output channels are level-shifted to 5v with 100 ohm impedance matching resistors for twisted pair like found in CAT 5/CAT 6.
Driving Pixels
The protocol allows for up to 8 driver boards to run from the same serial line, with on board switches to set the address. Pixel data is buffered, and displayed simultaneously across all channels, and includes CRC error checking to prevent glitches.
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.
Each channel can have its own LED color ordering setting, 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. That's up to 6,400 pixels per board, or 51,200 with eight!
Status LEDs and Troubleshooting
There are 7 status LEDs that help narrow down any problems during troubleshooting:
- Main power blow fuse indicator.
- Four output blown fuse indicators.
- The orange power/status LED - pulses if there is power but no data, or solid when valid data is detected.
- The green draw LED - this lights up when the address is set correctly and data is sent for one of it's outputs.
Parts Included & Options
In this kit you get the driver board (assembled) and fixed or pluggable screw terminal options, along with fuses to get you started. It's sold as a kit, only requiring soldering of the the Pixelblaze / data port screw terminal. Pixelblaze can be mounted directly as well.
- Voltage options: 5V, or 12V with an installed DC-DC converter.
- Connector options: Pluggable "Phoenix" style screw terminals, or fixed screw terminals.
- Fuse Options: A variety of input and output fuse options are available. We toss in a few spares, just in case.
Setup
Each board can be set up with a unique address by toggling the address micro switches. Up to 8 boards with addresses 0-7 are supported. If data is detected with the set address, the status LED will light.
Address | SW1 = 1 | SW2 = 2 | SW3 = 4 |
---|---|---|---|
0 | ON | ON | ON |
1 | OFF | ON | ON |
2 | ON | OFF | ON |
3 | OFF | OFF | ON |
4 | ON | ON | OFF |
5 | OFF | ON | OFF |
6 | ON | OFF | OFF |
7 | OFF | OFF | OFF |
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)
Protocol
See this writeup in the source repo.
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