Top view of the PCB
I managed to find some time to change the Glockenspiel controller from using ULN2803 darlington drivers to a whole bunch of discrete darlington pair transistors (BCX38C). It seemed an ideal way of coping with the huge switch-on surges and spreading the current over a whole load of different devices.
The board is single sided which makes it easy enough to etch and solder up. The power is taken directly into the bottom of the board and the open collectors on the transistors do the switching.
The diodes are 1N4001’s which should help to kill the transient produced when the motor is switched off. It was quite nervewracking to see the spark produced when testing the motors across a power supply, so I guess these motors are really capable of packing a punch. At the bottom, I’ve allowed a space for a polyswitch resettable fuse, although in my version it’s not actually being used.
If I knew a little more, I suppose I should use MOSFETs for the switching, but I don’t and I didn’t. Sorry about that.
An example of the basic circuit used. 1 channel shown.
One thing that occurred to me was this little board could be applied to lots of different 12v switching situations. Perhaps a large lighting display using Superflux LEDs wired in bunches.
The board layouts are available for those who may wish to copy it:
This glockenspiel has been converted to play automatically.
I found a glockenspiel in the local recycling centre and decided to have a go at automating it after seeing details on the Raspberry Pi forum and also on the PICAXE website.
It’s quite a straightforward design, using motors to rotate the hammers downwards and then using a rubber band to lift the hammer upwards one the chime has been struck.
Programming this in Python is relatively straightforward – just allocate most of the GPIO outputs to controlling the motors and then trigger them sequentially. The motors are connected to the GPIO outputs using a pair of ULN2803 darlington driver IC’s. It’s quick but as we’ll see, not the best solution.
I haven’t yet found out how to make the software do a clean exit when CTRL-C is pressed – something to do with creating an exception and then using this to shut down the GPIO outputs. Without this, it’s possible to exit while the motors are energised meaning that the peak stall current is passed through the darlington drivers. I’ve had to replace a couple already.
When I design a PCB for this, I think I’ll use a bunch of discrete darlington transistors (BCX38C) along with a current limiting device.
Overall, the sound is pleasant to listen to. I’d like to refine the software and also include the possibility of using RTTTL ringtones. I’ll probably need to filter out sharps/flats and add some kind of a transpose function. Probably a challenge for later!