Engineering Open House

A project log for DMX-84: Calculator-Controlled Lights

Control DMX equipment, such as lights, from a TI-84

Alex Cordonnier 08/09/2014 at 19:250 Comments

In March 2014, I presented the project at Engineering Open House at the University of Illinois at Urbana-Champaign. Mine was one of the few individually presented projects at the event because most were presented by student organizations.

With the hardware done, I needed to fix the memory issue with the Arduino firmware. I was running into a lot of strange bugs, so I took a hard look at where my memory was being used. It turns out that over 75% of the memory was being used by three arrays - a 512 byte DMX storage area used by DmxSimple, a 512 byte copy of the DmxSimple array so that my firmware could read back DMX values, and a 519 byte buffer used for communicating with the calculator. I only had 2048 bytes to work with, so this was excessive.

With not much time before the open house, I needed to fix this quickly. I took my basic working firmware from when I tested it in January and added only the calculator commands that I needed for the demo. This way, I could eliminate the 512 byte copy of the DMX universe that I was keeping. I knew this solution was only temporary, but it worked until I had time to implement the fix on the entire firmware.

Next, I had to write the calculator driver and a control program. The driver took a few days of looking up Z80 assembly opcodes and TI-OS system calls so I could reuse the built-in TI linking functionality. With the driver written, the control program was fairly simple. I made a simple program that could control up to 32 channels individually and also store 16 cues for the demo. (If you're wondering, I chose 32 channels partly because I only needed 21 and partly because 32 is the most I could fit on the screen at one time.)

After asking around, I was able to borrow five motorized DJ lights from Zach McGinty for the demo. Two of them were only partly functional, so I was left with three nice working Trackspots. I read up on the documentation to figure out how to control them over DMX, and I eventually got them working with the project. I programmed some neat cues that took advantage of the pan/tilt, colors, patterns, and strobes.

Transporting the lights between buildings was a bit stressful considering they cost several thousand dollars new, but overall the demo was a success. I had a nice mixture of grade school students and adults who seemed interested in seeing how a TI-84 could possibly control complicated, motorized lights.