One of the things I’ve been least impressed with for the DIYC community is the “playback” mechanism of sequenced data. The existing software for sequencing and playback of sequenced data is all Windows software. As you may or may not know, I stay as far from Windows as possible. Even if it weren’t solely my Windows hatred, the fact that I need a standard computer, laptop or desktop capable of running Windows (and more?), dedicated to playing back my “show” for Christmas was a huge turn off for me.
There seems to be something called a Helix controller which can drive a show as a stand-alone, networkable device, but it seems very purpose-driven and expensive. I have a few Chumbies (I’m a hoarder, and I love the hardware) and when I first delved into the world of sequenced lights, I knew I wanted the Chumby to drive my show.
I paid $79.99 for a “Chumby One” from Costco.com. I have a couple Chumbies I acquired for less, but that was an easy to get deal as an example cost. The “Chumby One” has a 454MHz arm processor, built in wifi, 64Mb ram, a 2Gb root filesystem which I can easily modify, and a touch screen! It runs a standard linux kernel and root filesystem from Chumby. They have a great support forum and publish a complete toolchain for hackers such as myself.
The project is only in it’s infancy, but what I’ve done so far (in a nutshell) is parse the vixen sequence file format, send it out a serial port in the Renard protocol. Strange thing about that is that the hardest part was finding a library that had an easy-to-use base 64 decode I could use without having to implement it myself.
The code still needs MANY improvements (including, but not limited to):
* Support for more than 8 channels (I currently only send 8-byte packets to address 0x80) (see Renard protocol for more information)
* MP3 Playback of music (alsa?, but will that be available cross-platform?)
* Option parsing for things like filenames, serial ports, baud rate, etc.
* Support for Vixen profiles
* Implement timing based on the sequence file (I’m running a test sequence that has 50ms updates and at my 8-byte packet writes, I sleep for 50ms)
* Lots of general code cleanup
* Build system to support cross compilation on Linux/Mac/Other(beagle board?/c1/cc/c8)
* Add 100-byte pad bytes to output (per Renard vixen plugin)
* Support for more outputs besides Renard (DMX? olsen? grinch?)
Thanks to the DoItYourselfChristmas.com community for the tips, information, etc. Once I complete some of the things in the list above, I will publish my code will be on github and release it with the GPLv2 license.
For your viewing pleasure: