I've written before about controlling a GrandMA2 console, Figure 53's QLab V3, Weigl's ProCommander, and Stage Research's SFX all using ASCII commands over IP. I had a little time today (we're on winter break and don't have classes) so we set up our ETC Ion lighting console to see how to control it over the network. I'm a noob on the Ion, but I worked with my colleague Sue Brandt who can find her way around the board, and this blog assumes you know the basics of the console as well.
In most of the stuff I'm doing these days, I'm trying to move away from legacy protocols like MIDI, serial, and DMX and into IP everything. (Although, implementing my "simpler is always better" design principle, for an upcoming show we will be firing old school, hardware-based MIDI Show Control out of the Ion to control Dataton Watchout).
ETC has implemented into the Ion (and the Eos family) a simple ASCII-based "String Interface" control protocol that can be sent via a serial port or via IP. The commands are detailed on page 23 of the EOS Family Show Control User Guide.
Here's a couple typical cue messages:
• Go 1 – fire playback 1
• Cue 1 2 – run cue 2 from list 1, on the appropriate fader
• Cue 1 – fire pending cue from list 2
The manual is very clear that, "All text will be queued up until either a carriage return (hex 0D), a “\r”, or a “#”, is encountered to show the end of the command".
There's just a couple things you need to need to establish communications. Of course, the computer/device you are using for control must have an IP address in the subnet of the console. Our console had a Class A, non-routeable IP address. You can get to this screen by going to the "Shell" and selecting "Settings" to bring up the EOS Configuration Utility ("ECU" in ETC Parlance).
While you're in this configuration screen, you also have to turn on the "UDP Strings" feature to get it to accept the string commands (I learned this the hard way by not turning it on at first and finding a port rejected command in Wireshark; you can learn from my mistake):
(Sorry about the crappy camera phone pictures--if you want to see my better (unrelated) photography go to my Facebook page).
Go back into the main console software, and there under the Show Settings page you need to enable "String RX" (RX means Receive), and then pick some port for the board to receive on. I picked 56789 for this test (just make sure to pick something not on the assigned list).
That's the extent of the configuration on the Ion side.
For a basic test, I used the Essential Net Tools utility running on a PC. Essential Net Tools has a "Raw Socket" mode that is great for this kind of testing (socket just means IP address and port number combination).
Here's the ETC syntax to fire a Cue on List 1, Cue 5.5 out from Essential Net Tools:
That was it, that's all it took! Once configured, it worked just fine and was very responsive.
I then decided to fire the ETC Console from the Dataton Watchout multidisplay software system. To send ASCII commands out over the network from Watchout, you first setup a String Output (screen capture from the manual since I forgot to capture my screen).
With that in place, writing a cue was a simple matter of filling in a box and dragging it onto the Watchout timeline (as indicated, the $0D indicates a Carriage Return ASCII symbol:)
And that was it, it worked great! I've been doing this a while, but for me I find controlling anything over a network like this to be the most straightforward and powerful method.