The choreography for the lighting was planned out using a program called Vixen 2. There is one newer version of the software, but [Paul] needed to translate the output file for use with a microcontroller and version 2 makes this a bit easier than version 3. Speaking of conversion, he didn’t want to start from square one and a bit of searching led to a tutorial which [Bill Porter] posted last year on converting Vixen files for use with Arduino. It wasn’t exactly what he had in mind, but most of the ground work was there.

A few code tweaks bent the script to [Paul’s] will. He changed the XML parsing function to ignore all but the main channels in the file. He also had it output a text file which can be stored on the SD card. Because the output is not being flashed to a chip this greatly increases the storage available paving the way for much longer and more complex shows.

I’m a big fan of Vixen and it’s creator, K.C. Oaks. Last year he wrote a raw data export add-in for me that I use with Propeller boards in embedded DMX projects. The export file has a header with channel count, frame timing, and total number of frames. The raw data for the channels follows that. Easy-peasy and very popular with friends and customers that use my code.

The exported file starts with a 6-byte header that is three, 16-bit values: channel count, frame timing (ms), and number of frames in project. The raw frame data follows. It’s super easy to use and works like a champ. Having the header makes the application code doesn’t have to change project-to-project.