I’ve been a long time fan of FastLED. So much so that I’ve used it in an LED driver board that I just launched a Kickstarter for. The board can handle 8 different LED strip protocols and without FastLED, the firmware development would have taken so very much longer! I had already frozen the firmware code for testing before FastLED v3 came out or it would support even more… but I’m sure I’ll get that in a firmware update in the future!
It’s called the AllPixel. It runs on an ATMega32u4 sporting a customized version of the Teensy core and provides a fast USB bridge to your LED strips. It is compatible with Linux, Mac, and Windows platforms and is capable of driving up to 680 LEDs at high frame rates.
It is designed to be controlled from a Python library, called BiblioPixel, I have been working on for a year that I hope will be for Linux/Mac/Windows what FastLED is for the Arduino platform. Aside from just controlling the AllPixel, it can control nearly any LED or display device. So, like FastLED, you can code your animations once and run them on anything. While hacking the AllPixel with alternate firmware is possible, it is designed to just silently respond to BiblioPixel and handle all the details of protocols, pixel count, SPI speeds, etc.
But, bridging the gap from Linux/Mac/Windows to so many different LED strip types might not have been possible without FastLED. Again, thank you so much for the amazing library!
Thanks! @Mark_Kriegsman - Always check that your ground planes are actually connected to one another! Lost a few protos to that
I did learn how to change LED type in FastLED at runtime… much to @Daniel_Garcia 's dismay at the time if I remember correctly But, without that, the AllPixel wouldn’t be what it is… we consider it a “gray box”. You can look inside, but you don’t really need to. It just handles everything. No need to reflash firmware. If anyone is curious, check out setupFastLED() in https://github.com/ManiacalLabs/AllPixel/blob/master/Firmware/Firmware.ino
I learned a really awesome way to self reboot an ATMega with just a PNP transistor and resistor that is totally foolproof. Check out the schematic and doReboot() in the code for that one. This was also critical since we didn’t wanted to only setup the LED types and allocate buffer memory at boot time and we didn’t want people to have to do anything. The reboot just happens.
This is nothing new to you guys, but the ability to read from Serial directly into the FastLED pixel buffer was a life saver. It’s the only reason we can do so many LEDs.
Not to my dismay at all - don’t worry! It’s why the raw addLeds interface is public :). If I wanted to keep you from doing that I would’ve made it private