DPRG Events Shoptalk

Website design and hosting by NCC

Building An Autonomous Glockenspiel

August 2009, by Ed Paradis and Steve Rainwater



  • Ed Paradis
  • Steve Rainwater


In late July, a meeting between Steve Rainwater of the DPRG and Sarah Jane Semrad of La Reunion TX, the Dallas Art Residency, resulted in the idea of the DPRG creating a robot music ensemble of mechatronic instruments that composed and played their own music. The robot music ensemble was named Noise Boundary and a long term plan was hatched to include both modified traditional instruments and homebrew instruments, all instruments would be autonomous but also capable of cooperative composition and improvisation via MIDI communication.

The first instrument project selected was a Glockenspiel. Informally, everyone calls it a Xylophone but technically, a Xylophone has wooden or composite bars, while a Glockenspiel has a smaller number of metal bells. Between August and December of 2009, the DPRG robot Glockenspiel was constructed. While many groups have constructed automated Glockenspiels and Xylophones, ours is unusual in that it is a fully autonomous version of the instrument that can compose and play its own music.


The Glockenspiel

A few weeks of searching eBay and Craigslist resulted in a Pearl PK-600 2.5 Octave, 30 note (G5-C8) student bell set. This is a discontinued product but is similar to Pearl's current PK-800 bell sets. It consists of a wooden frame with plastic end caps on which 30 aluminium bells are mounted. It's a student kit, so each bell has the associated note value engraved in it, a handy feature for semi-music-literate robot geeks.


Hardware Design

Our approach was to create automated strikers, mounted beneath each bell. We selected a push-type 12V solenoid. Solenoids were mounted in two rows, each in a frame constructed from off-the-shelf extruded aluminium angle pieces from Lowes. The frames were machined with holes for the solenoid strikers on top and smaller holes for a set screw below each solenoid. The set screw is used to adjust the height of each striker.

Mounting the solenoids proved challenging and required some modifications to the solenoid cases. A 1/2" metal axle cap was attached to the bottom of each solenoid with heat-shrink tubing. The cap covered the striker shaft which extended out the bottom of the solenoid in the un-energized position. The set screw pushed directly against the bottom of the axle cap, pushing the entire solenoid up when tightened. A tension spring was added at the top of each solenoid to push the solenoid back down as the set screw was loosened.

The aluminium solenoid frames were loaded with solenoids and mounted on the underside of the wooden Glockenspiel frame. Integrating the solenoid frames into the existing wooden frame required one compromise; the first and last bells were too close to the edges of the frame to allow room for a corresponding solenoid. So the highest note and lowest note on the instrument are not used.

Becase the new hardware extended down several inches, the instrument's wooden frame no longer worked as designed, necessitating the construction of a new support frame to hold the entire instrument. This new frame was constructed from 3/4" CPVC pipe. Four risers on the CPVC frame interfaced with the original frame's support feet, allowing for a reasonably stable mounting system.

Electronic Design

The 30 12 VDC solenoids are controlled by a series of ULN2803 octal darlington arrays. Each driver output is rated at 600ma peak, 500ma continuous, more than enough for our 350ma solenoids. The ULN2803 drivers were controlled by digital outputs on an Arduino Mega microcontroller, obtained from Liquidware open source electronics.

To connect the Glockenspiel solenoids to the driver board, we selected a 40 pin ribbon cable of the time used for PC IDE hard drives. These are easy to find at no cost. We got the appropriate 40 pin connectors from Mouser Electronics and put one connector on the Glockenspiel and one on the driver board. The number of wiring connections made it impractical to worry too much about the exact pinouts on a one of a kind device. We decided the best plan was to simply wire it up and then produce a map of Arduino outputs to bells that could be consulted by the software.

MIDI ports were added to the Arduino to allow a remote computer to control or query the instrument. The ports were based on MIDI in and MIDI out port kits sold by Curious Inventor. The MIDI in port design proved problematic and was partially redesigned by Ed Paradis to work in our application.

Software Design

We used the standard Arduino software environment, which is a slightly modified version of the C programming language. The initial version of the software reads MIDI commands from the MIDI in port, filters MIDI messages it needs to act on, such as note on commands, maps each MIDI note to an appropriate digital IO port and triggers the associated solenoid for about 10ms.

At the other end of the MIDI connection, we are currently using a GNU/Linux laptop running Princeton's ChucK, a strongly-timed, concurrent audio programming lanuage. ChucK allows us to quickly write music oriented programs that output to MIDI. The use of ChucK to create programmatically generated music may makes this instrument unusual in that it is a fully autonomous computer controlled Glockenspiel.

NOTE: Once the electronic and software design is finalized, we will be releasing specifications, schematics, and source code under free licenses. Stay tuned.



Article Copyright © 2009 by Dallas Personal Robotics Group, all rights reserved.