Pages

9.2.14

Hacked Wall Clock (after Lord Vetinari)

This clock ticks erratically but still keeps accurate time. Its mechanism has been replaced by a programmable chip that emits 64 randomly spaced ticks every 64 seconds.

Concept

While running an errand I got distracted in the hardware store and came home with the cheapest wall clock that I could find. My plan was to emulate an original project by Bart Basile. The idea of a clock that ticks erratically while nevertheless keeping accurate time derives from Terry Pratchett's Discworld novels.

Firmware

The original code was adapted to target the MSP430G2231 microcontroller instead of the larger and more expensive MSP430G2553. The length of the random tick sequence can be adjusted using a single preset value. In order to allow longer sequences, the tick times are compactly stored in a bit array. The particular clock that I used required a longer energizing pulse than the value originally specified.

Hardware

I started out with a blank Launchpad v1.4 PCB chopped to size with a paper guillotine. Surface mount passives and a 12.5 pF watch crystal completed the board. The stripboard H bridge used 2x BC546 and 2x BC557 transistors with 1 KΩ resistors to limit the gate current (see the schematic in the Github repository). These components were just the closest ones I had to hand: later I replaced them with higher spec ZTX650/ZTX751 transistors and 470 Ω resistors which gave noticeably stronger ticks.

Mechanics

The hack began disastrously when I smashed the box holding the clock mechanism trying to access the motor that advances the second hand. Replacing the mechanism was a matter of simply soldering the H bridge outputs to the ends of the motor coil. It all seemed to just about hold together after I slathered nasty plastic weld glue fore and aft, with hot melt glue to hold everything in place. All I can say is that it's a good job this side faces the wall.

It looks uncomfortably like a bomb detonator, but if I can get it past customs then my nephew might get a present for his 11th birthday.