I’ve designed and written tutorials for several different LED spin and flow props on the Adafruit Learning Center. My dance troupe uses these props all the time doing professional LED light dance shows in the San Francisco Bay Area.
Lately our Fire Pixie LED light dance show has been getting complicated.
Problem 1: Dancers
When I’m onstage dancing, my focus is in my body. I feel the flow of the props, feel the music, and feel the audience. It’s a wonderful state to be in. It does not lend itself to thinking.
For a 20 minute corporate or private party performance, my dance partners and I go through four or five different LED props. Each prop can have multiple scripts running programmed lights choreographed to different songs, which need to be triggered at specific moments in the show. Sometimes the clients also want ambient strolling dancers after the show, and in that case we need our props to automatically scroll through different images forever.
I need each dancer to be able to effortlessly switch between props and understand how to start and control them. Dancers are great with their arms and legs and faces. With technology…. not so much. I need to make it tactile, obvious, and easy.
Problem 2: IR Controlled Props
My Supernova Poi and Morningstar Doublestaff props are ones I made myself, so I have a lot of control over their UI. The hula hoops I use are made by SpinFX, and so I have a lot less control.
I like the SpinFX Phoenix hula hoops because they are scriptable, and I can customize which buttons do what on the remote control, but I am still stuck using their remote since I can’t control what IR codes the hoop listens for.
For the poi and the double staff I use Adafruit’s IR remote control. This remote has lots of tasty buttons, but unfortunately some of them conflict with the SpinFX hula hoop receiver — and not in a “hey that’s handy, I can consolidate remotes” kind of way. Four of the buttons on the Adafruit remote sneakily overwrite the SpinFX hoop’s config file, instantly erasing my scripts and any custom remote commands. Poof. Gone.
This is rather catastrophic. A stray button press will completely disable my hoop right before I go onstage. (And let me tell you, I had a devil of a time figuring out what was going on here!)
Solution 1: Convert All Props to use the SpinFX Remote
Since I can’t change the hoop’s IR codes, I figured I’d just go with the flow and change the poi and double staff to use the other buttons on the hoop remote. There aren’t quite enough buttons, but using one to start the show on all props shouldn’t be too hard.
I hooked up an IR sensor and uploaded the serial IR remote code finder code from the IRremote library. This prints any IR code received to the Serial monitor. I pressed the buttons on the SpinFX remote and wrote down all the codes.
This remote did something strange. Instead of just sending one code per button press, it alternates between two different codes each time a button is pressed. I did some research and discovered this may be a toggle bit R5 or R6 remote.. but I’m just not sure. I added modes for both codes, just in case.
After punching it into shape to work with the poi, I repeated my work with the double staffs and realized that the Pro Trinket (running the double staffs) interprets IR codes completely differently than the Teensy (running the poi). The codes it reads from the Adafruit remote are different, and it wouldn’t read the codes I’d discovered for the SpinFX remote at all.
I can’t easily query the double staffs themselves since the Pro Trinket doesn’t have a serial port, so I can’t just ask it what codes it is receiving without messing about with FTDI (impossible since the board is already built into my props). Arrgh.
At this point I decided to just give up and try something else.
Solution 2: New Label Template for my Adafruit Remote
I’m stuck with using two remotes, so at least I can make my life easier with a lovely colorful label template. Here’s the .psd file:
The Adafruit remote is laid out in a rather video-gamey style, which didn’t quite work for me considering I had to avoid five of the buttons in the middle so as not to kill my hula hoops. I started from scratch and reassigned the buttons in a way that make the most sense for my particular application. I color coded the buttons and x’ed out all the buttons that need to be avoided at all costs.
I updated my poi and double staff code to map to the new button layout.
Then I found some large Avery shipping labels and printed the new design out right on the label. It fit just perfectly once I trimmed it down. I’ve now got an adorable custom remote that even a dancer in the middle of a show can figure out.
Here’s hoping this solution smooths out a few more of the edges on our light show.