As is often the case, customers and designers who find our corner of the Web are working against nearly impossible deadlines. This most recent request, late on a Thursday afternoon, was a fun one to fulfill. Their project included DMX lighting in four discrete zones, and they required two separate operating modes:
“We need an untrained operator to trigger a specific sequence of cues using a large pushbutton” & “We need a specific complicated DMX sequence (specifically, a rolling color scroll across about a dozen fixtures) to loop indefinitely.” Naturally, the drop-dead delivery date was in two business days.
Prior to our phone call, they were prepared to spend about $8k on several ‘standalone’ DMX consoles. We were thrilled to offer a more economical and flexible solution.
In the past, we’ve shipped several different versions of a circuit board containing DMX in, through & out jacks, along with an assortment of dry-contact-closure inputs. This card, when loaded with the correct firmware, could record DMX snapshots (a single frame of data) or capture in real time (44 frames per second). Then various snapshots and dynamic scenes can be replayed based on external triggering. Unfortunately, the shop shelves were empty of these cards, and there wasn’t enough time to make new ones.
As an aside, there’s a full service circuit board manufacturer right here in town. We use them for quick-turn work and sensitive designs. Over the years, we’ve occasionally requested four hour (!) turnaround, from email CAD file receipt to courier pickup at their shop. This service isn’t cheap, but it’s remarkable that such things are even possible these days.
So moving to Plan B: Our shelves are packed with a new batch of DecaBox chassis sets, assembled and ready to be loaded with firmware. How to quickly add rugged, reliable, remote pushbutton input without changing any existing hardware, drilling holes in chassis sets, or making a huge mess?
The answer, after some pondering, was a riff on how industrial automation systems communicate with external sensors: a current loop. The most popular version is called 4-20mA, representing logic low and high values respectively. If 4 mA is flowing in the wires, the logic level is zero. If 20 mA, logic is one. And in the industrial world, if ZERO mA are flowing, or if 20+ mA are flowing, a fault with the cable or sensor is assumed, the system squawks and repairs can be made.
In alarm systems, window and door sensors work in a similar way. ‘Open’ is one current value, ‘closed’ is a second. No current flowing at all means a cut wire, so phone the (now overseas) mothership and complain.
Now, the DecaBox doesn’t normally communicate with industrial sensors, but it does contain a rugged, buffered, industry-standard, short-tolerant, high voltage RS-232 interface. Our quick & dirty solution was to transmit a repeating, pre-defined data stream on DB-9 pin 3, the usual TX pin and then listen for its presence on the receive pin.
A handful of standard shielded M-F DB-9 cables, 6′, were sacrificed for the cause. On the chopped-off female end, wires corresponding to pins 2 & 3 were connected to the normally closed terminals of rugged arcade pushbutton switches. These switches are nearly indestructible and would mount perfectly on the wall of the booth / installation.
During regular operation, the DecaBox transmits serial data and listens for loopback. If they match, the wiring is correct, the button is undisturbed, and nothing happens. But once loopback breaks and no data is received, the DecaBox knows it’s time to read the pre-stored DMX cue sequence from the internal memory card, send it to the outside world, then resume waiting for a new contact event.
Simple & elegant & shippable within about six business hours, including testing and verifying new snippets of source code.
Oh, and scenario #2? Perpetually looping DMX scene playback? Trivial to accomplish using our stock recording and playback firmware. A complicated scene can replay until power is lost or the cows come back, whichever comes first.
We ended up shipping 4 separate DecaBoxes, one for each lighting zone. Two were pushbutton triggered and two set up to loop their internal scenes. Of course, the firmware is user-selectable to run in either mode, based on settings made using the panel LCD and pushbuttons.
Need something similar? We’d love to hear from you.