Customer Application and Testimonial Written by Richard Ryniker-MIT
Early in 2008, the Discovery Museum in Bridgeport, Connecticut, approved a proposal by Kurt Coble, to create the Air Drum exhibit: a group of percussion instruments driven by mechanical actuators controlled by Sharp infra-red distance sensors. The purpose of the exhibit was to give children who visit the museum an opportunity to have fun while they move their hands in the air above a strip of ten sensors to operate the drums, bells, cymbal, and other instruments in the exhibit. No stick, button, or touch required -- the Air Drum translates hand position to mechanical, audible activity -- and the users learn through experience how to achieve various effects by different movements.
Kurt is a musician and had previous experience with automated instruments, but asked me to design and build the sensor array and the electronic parts of the exhibit. An Internet search informed me about the LabJack U3, which seemed particularly well suited to this application because it could support the required ten analog inputs and 10 digital outputs. Price was also a consideration, given our typically meager museum budget.
A simple design using Darlington power transistors connected the LabJack outputs to the instrument actuator solenoids. The real challenge was to develop the software that would translate sensor data to output signals. I wanted to implement the software using Python: this would allow easy deployment on Linux, Windows, or MacOS platforms; supported a multi-thread design that made it easy to manage ten output channels plus an input channel; and made software changes easy (we started with little idea about exactly how input values should translate to output signals, or what adjustments would be needed for different instruments.)
Unlike today, when LabJack provides robust software for use with Python, in 2008 there was only support for the Windows C environment. I did not want to use Windows. While very experienced with C programming, it seemed such an implementation would require additional, licensed software, and a run-time environment that I could not expect to find on every computer I might use to control the Air Drum. Fortunately, LabJack published the low-level, USB interface for the U3. I wrote Python code to use this interface, discovered the documentation was not clear in a few cases, and twice wrote to LabJack to ask for additional details. Both times, I very promptly received a reply (from Steve, a LabJack employee) that gave me the exact information I needed to proceed. Steve is probably an author of the LabJack firmware, or at least someone who maintains that code.
Outstanding support from LabJack, that allowed me to focus on my application instead of problems with enabling software.
I have returned to the Discovery Museum several times in the intervening years to address problems in the Air Drum. Once I added a dedicated power supply for the sensors, to remedy some noise problems. I replaced the computer at the request of the museum: the original, cheapest available machine worked well, but the Museum worried it might fail after several years), and twice repaired wires in the sensor strip that had broken. It seems children, despite reading or hearing they do not need to touch the sensors, somehow feel they have to hit something in order to make a drum sound. With an adjacent exhibit where they handle sand, an amazing amount of fine grit accumulates under the sensor strip and these hits eventually sever wires. After almost 15 years (except more than a year when Covid forced the museum to close), the original LabJack U3 continues in daily service. The Air Drum is one of only two exhibits still installed from 2008, and museum staff have told me it is one of their most popular exhibits.