How to Control the Led Matrix
Hey there backers! I have gotten a number of inquiries on how the leds are actually controlled. The short answer is that an embedded microcontoller (uController) of some sort is needed to handle the timing control of the WS2812Bs. Through Open Source Hardware (OSHW) and Software the code to control the leds is readily available for several popular development platforms.
The three main platforms are:
- Arduino – http://arduino.cc/
- Teensy 3 – http://www.pjrc.com/store/teensy3.html
- mBed – https://mbed.org/
Using the Arduino there are some great libraries, specifically Adafruit’s Neopixel Library- https://github.com/adafruit/Adafruit_NeoPixel that allow for easy control of the WS2812 pixels. I used Adafruit’s Neomatrix Library to do the scrolling matrix seen in the project video – https://github.com/adafruit/Adafruit_NeoMatrix. A simple 3-wire connection is made between 5V, GND, and D6 of the Arduino to the input of the matrix. This can be seen in the photo below.
The Teensy 3 can be used to control a large number of matrices using some pretty need tricks developed by Paul Stoffregen – http://www.pjrc.com/teensy/td_libs_OctoWS2811.html#videodisplay.
The mBed is a pretty handy little development platform that can uses an online IDE and compiler and has a small form factor with a very powerful processor with a lot of memory. A simple 3 wire connection like the Arduino is all that is needed to talk to the led matrices. The mBed was used to program the Conway Game of Life Example for my childrens table. The code for this can be found at http://mbed.org/users/ohararp/code/WS2811_RY_32x48_ConwayA/.
Code Repository: I am working on a formal code repository for both software and hardware at www.rgb-123.com and GitHub. I am waiting to finalize the hardware design before finalizing the repository.
Matrix Backpack:I have been entertaining a simple Arduino Backpack as a possible reward at at $25. This backpack would be a plug and play board that would affix to the matrix using the 75 mm spaced 3 pin headers on the back of the board. Please comment if you think you might be interested in something like this!