Benji Meatball Logo  Metallophone Door Chime Project

This is a project that has been on my mind for several years. After several false starts, I decided it was time to get serious and make this thing. Here's the final result:

Installed chime

The metallophone is the Woodstock Chimes Pipedream. I needed to mount the instrument at an angle so that gravity would hold the tubes in place; I used square wood dowels to make legs, which I stained to match the frame of the instrument. Nail-on felt feet protect the wall while picture hanging wire holds it up.

linear induction solenoids

The solenoids came from inexpensive door chimes which I bought at a home improvement store. The hardwired, front/back chimes have two solenoids in a paired assembly which I removed and mounted to the frame of the metallophone; it was not easy because the copper wire is very thin and breaks easily. Wood shims keep the strikers from falling out and some foam padding dampens the sound of the returning strikers. I had to reduce the size of the return springs on the strikers by snipping them in order to let them protrude further to strike the tubes.

back of the metallophone

The instrument is played by an Arduino Uno. The Arduino is powered by a 9-volt adapter. To play a note, the Arduino triggers a transistor, which allows power to flow to the solenoid from a separate 12V source.

Arduino and breadboard

I installed the chime in place of my old chime, using the existing mains power and doorbell button wires. I cut off the top of the wall box so that the Arduino and breadboard would fit. The wires are little messy behind the instrument, if I did this again I would put a little more thought into making it look cleaner from below.

installation location

I connected the doorbell button to the 5V supply pin on the Arduino and to an analog input pin. The Arduino waits for the voltage jump on the pin that occurs when someone presses the button and then it randomly plays one of four tunes that I programmed. My doorbell button was lit with an incandescent bulb, but the 5V from the Arduino did not create enough resistance and so the Arduino thought the button was being constantly pressed. I installed a LED and resistor, which was difficult in the small space of the doorbell button, but worked.

Here are some views of the solenoids playing two of the tunes (you can hear the 'thunks' as the tunes play, I hadn't yet added the foam padding to dampen that):

I diagrammed the circuit in the free Fritzing tool. You can open the fzz file in Fritzing or view it as an image:
circuit diagram

You can find my Arduino sketch at

You can contact me at, please let me know if you make a similar project, I'd love to hear about it!

Special thanks to Stephe Trumbull for wiring assistance, Jimmy Hanson for circuit building assistance, Nick Atchley for carpentry assistance, Will Jordan for rhythm assistance, the folks on the Arduino forums for doorbell button assistance, various websites for publishing circuit reference material, and my lovely wife for her patience.

Update 20 April 2021: Jonas Vibell wrote to point out an error in the circuit digram, which I corrected.

All text and material copyright Benjamin Schwartz, offered under a CC BY-SA 3.0 license.