This is the documentation page for the USB_WS2812 board. That you can buy in the BitWizard shop.
- 1 Overview
- 2 Assembly instructions
- 3 External resources
- 4 Additional software
- 5 Pinout
- 6 Jumper settings
- 7 Protocol
- 8 The software
- 9 Default operation
- 10 Future hardware enhancements
- 11 Future software enhancements
- 12 Changelog
This board enables you to drive up to 600 WS2812 fullcolor RGB leds. These leds are sometimes called "neopixels". The board can drive up to 75 leds in in 8 strings. Due to the way things are implemented it is not possible to drive a single string of say 600 leds. Furthermore you would not want that: for each led on a string there is a fixed amount of time necessary for sending its data. Too many leds and the refresh rate has to drop!
None: the board comes fully assembled.
The USB connector is a standard micro USB connector.
Pinout of the 16-pin header:
|GND||1||2||D7||Data for led-chain 7.|
|GND||3||4||D6||Data for led-chain 6.|
|GND||5||6||D5||Data for led-chain 5.|
|GND||7||8||D4||Data for led-chain 4.|
|GND||9||10||D3||Data for led-chain 3.|
|GND||11||12||D2||Data for led-chain 2.|
|GND||13||14||D1||Data for led-chain 1.|
|GND||15||16||D0||Data for led-chain 0.|
Please ignore the other connectors on the board.
Each pin controls 75 leds:
There are two leds. One is the power led. It should be lit whenever the USB is connected. The other should blink every two seconds (one second on, one second off).
This board has no jumpers.
When you connect the board to your PC or raspberry PI, you will get a virtual com port. You can use your favorite communications program to talk to the device. (I personally use "kermit" because I've been using that for 30 years. "Minicom" is also a good option)
The board supports the following commands:
Print a list of supported commands, and also the compilation time of the firmware. You might see a few commands that are there for debugging purposes. Consider those not described here as "do not use".
pix <num> <color>
Set pixel "num" to color "color". Color is specified in 6 hexadecimal digits specifying the color in RGB order. Specifying 102030 will set the red component to 0x10, or about 1/16th of full intensity, the green component to 0x20/0xff or aobut 1/8th of full intensity and blue to about 3/16th.
Shift each chain one pixel towards the controller board.
Create a rainbow color effect.
rainbow [start] [nleds]
will create a rainbow starting at the led "start" and extend over "nleds" leds. The rainbow starts with red, fades via yellow, green, cyan, blue, violet back to red, so it is cyclic.
will set all leds to white.
will set all leds off (black).
sets a fixed color.
color <color> [start] [nleds]
Sets "nleds" starting at "start" to the color specified by "color".
creates a fade from one color to another color.
fade <start> <nleds> <color1> <color2>
print the uuniq identifier for this board.
Some chips have an
Future hardware enhancements
Future software enhancements
- Initial public release