The Robotic Glockenspiel Plays “Somerset Wassail”

Yup, it plays the Somerset Wassail!

It still needs a set of pushbutton controls and a wooden case, but it’s finished enough to play tunes.

Robotic Glockenspiel so far. No case or controls yet
Robotic Glockenspiel so far. No case or controls yet

Here’s the story since my previous post:

Using the jig I made, I routed out the vertical slots for the solenoids:

Using the jig to route the vertical slots
Using the jig to route the vertical slots

Then (badly) routed the horizontal slots. the vertical slots keep the solenoids from twisting or falling over; the horizontal slots keep them from slipping down.

Here’s a test, putting one solenoid in its place and holding it with a cable tie.

horizontal supports routed out
horizontal supports routed out

I then adjusted the height of the solenoid bar so that the solenoids would have room to hit the chimes.  I tested the height and position (left-right/top-bottom) with a ruler so that the solenoids would hit the centers of the chimes.

Measuring the position of a solenoid
Measuring the position of a solenoid

I then soldered a length of speaker wire to each solenoid (with a heat-shrink cover over the solder joint)…

Speaker wire soldered to each solenoid
Speaker wire soldered to each solenoid

…then crimped on a Molex connector on the circuit end so that I could plug it into the breadboard.

Crimping on the Molex connectors
Crimping on the Molex connectors

Here’s what the chime looked like in mid-construction:

Adding the solenoids
Adding the solenoids

Once I’d added all the solenoids, I placed the chimes on the board and voila! It played Somerset Wassail.

In my next post, I’ll use the Open Source Aria Maestosa to write up a few more public-domain carols.

A router is a most wonderful power tool

In my previous post I pointed to my Open Source code for the project. In this post, I describe the mounting of the solenoids to the frame.

The conundrum of the project has been how to mount the solenoids to the glockenspiel. If I were a metalworker, I’d probably tap the solenoid holes and fasten them with 2mm screws into a metal strip. My 2017 future self says to design a 3D printable holder. Not knowing how to tap such tiny holes and not (yet) knowing how to design 3d printed parts, I’ve been thinking and thinking about how to mount the solenoids to wood.

One day I was wondering out loud how to fasten the solenoids, and Linda said “Why don’t you just buy a router? They’re perfect for that sort of thing.”  So I did.

I bought a Dewalt DWP611PK compact router set and a starter kit of router bits so I could route channels in a bar of wood, then mount those solenoids into those channels. I originally picked the DWP611 because it fits in a CNC router I have my eye on (but no money for yet).

My first attempt with a router was pretty sad. I had imagined that since I knew the basics I’d be fine. A few unintentionally-diagonal cuts later, I realized that making the solenoid channel cuts freehand wouldn’t work: I’d need a jig to let the router cut exactly the width channel I needed.

So using the router and a makeshift fence, I made a little height-adjustable jig.  The first attempt at the jig turned out badly, but I’m happy with the second try:

Top of router jig for cutting channels
Router jig for cutting channels (top)
jig (bottom)
jig (bottom)

If I were to make jig revision 3, I’d change a few things:

  1. use wider wood to give the router more base to glide on
  2. make the gap large enough so I can clamp the wood to be worked to the jig.
  3. use a plunge router so that the ends of the jig are solid rather than open. Doing that will make the end less likely to warp and bend apart over time.

At any rate, I made a test slot using this jig, and it turned out great!

a solenoid pressed into a routed channel
a solenoid pressed into a routed channel

Now I’ve marked the real solenoid bar, and am ready to route the 19 solenoid slots.

marking the solenoid bar
marking the solenoid bar

In my next post, I describe the last steps to a functional robotic glockenspiel.

Robotic Glockenspiel and Arduino Midi File Reader library on GitHub

In my previous post I pointed to some sources of information about how to read Midi music files. I’ve now Open Sourced my working code.

I’m a total newbie at Git, but even so I’ve managed to create repositories for the Robotic Glockenspiel and the Arduino Midi File Reader library it uses.  See My GitHub  repositories for the current state of things.

The repos are far from ready for prime time, but they have the essentials for this project-in-progress:

  • The Arduino Midi File Reader library I wrote to deliver Midi events from the file in sequence. I’m hoping others will find this library useful. It currently has no documentation at all, other than the comments in the code.
  • The Fritzing circuit diagram for the glockenspiel controller so far (no physical user interface)
  • A Bill of Materials (parts list) for the electronics and a few other things. I still need to add the wood and work out e.g., the number of conduit pipes I needed to build the 19 chimes.
  • The Robotic Glockenspiel Arduino program, as-is. It currently will play a hard-coded list of Midi files that reside on the MicroSD card, with what seems to be the correct timing (although I know it will end each song abruptly).  There’s much left to add, such as using a network card to read the playlist and the Midi files from the net, and code to control the player using a set of pushbuttons.

As an added benefit, all this is now under a real revision control system rather than being backed up nightly to my USB fob.

In my next post, I show how I mounted the solenoids to the frame.

Party On!