Somewhere in the middle of rural Germany, there is an old mansion with a front clock, which used to chime the hours once upon a time. It's an old and tired mechanical clock, which was probably never very accurate and which now sometimes stops. As it's not possible to set it to time manually (it doesn't have a free wheel system), it was condemned to a standstill. Until last week, when, with the help of a few Yoctopuce modules, we built a pacemaker for it...
A clock which chimed the hours 250 years ago...
This clock uses a pendulum escapement primitive mechanism, quite close to that described in
this article from a 1886 American journal on primitive clocks. There is no wheel for a minute hand: in the 18th century, in the countryside, it didn't seem necessary to be accurate to the minute when telling the time...
This mechanism is much less refined, and much less accurate than those found today in a parlor clock. We started by equipping our clock with some monitoring instruments in order to measure how it was working.
The hidden side of the clock
With a Yocto-Knob and a retro-reflective photo sensor set behind the pendulum, we obtained an autonomous beat counter. Indeed, the Yocto-Knob can count measured pulses on its own. Thanks to an accurate measure of the beginning and end of the latest beat, we obtain a rather good estimate of the instant frequency.
The retro reflexive photo sensor detects the pendulum beat
We added a Yocto-4-20mA-Rx and an angle sensor on one of the accessible wheel axel, to have an absolute measure of the progression of the clock. This measure is not sensitive to beat irregularities which may not show on the pendulum swing.
The angle sensor set at the end of the axel
As the clock is situated at the very top of the attic, very far from any computer, we connected these sensors to a YoctoHub-Wireless, with a 3m antenna extension and a 8dBi antenna located in a favorable spot to reach the Wifi access point located two floors below. To ease settings, we also added a Yocto-Display enabling us to display measures near the clock. Everything is controlled by a short PHP script that the YoctoHub-Wireless triggers every few second with an HTTP callback.
Yoctopuce modules are put at the bottom of the mechanism, with the means at hand...
After two days of measures, we could set the clock so that it works quite regularly and gains about two short minutes per hour. We made this choice because, as we cannot set the clock forward manually, the only way to maintain the clock on time is to make it go very slightly faster, and to make it stop for a few seconds every hour to apply a potential correction. As this clock doesn't have a minute hand, these 2 minutes ahead of time at the end of each hour do not show at all if they are regularly compensated.
Then, we could set the "pacemaker" function. We used a Yocto-Servo and a sub micro servomotor to push the pendulum a little and to start it again when it stops unexpectedly. Thus, when the hub signals to the PHP script that no beat was measured in the period and that the angle sensor didn't record movement, we gently trigger a pulse on the Yocto-Servo and the clock starts again on its own. Have a look:
By setting the servomotor arm diagonally, we even manage to gently stop the pendulum in its idle position, in order to launch it again when we want. Thus, we can maintain the clock perfectly on time, by stopping it if it is early and by starting it again a few moments later. To detect the time when it is about to chime, we used a simple supple contact on the metal rod freeing the chiming mechanism.
A supple contact (left) detects when the metal rod freeing the chiming mechanism is rised
And this is how our venerable old clock now generates a time stamped log file on a server 700km away. Here is a short extract:
14:00:12 Clock has announced 2h 14:15:02 776 tics (25.7/m) 155.5deg (18.8/m) 14:30:00 762 tics (25.2/m) 73.5deg (18.4/m) 14:45:06 788 tics (26/m) 354.1deg (18.5/m) 14:50:55 Bell bar is high 14:51:20 The bell is about to ring 14:51:20 Hold clock until 14:53:00 14:53:05 Clock can now be released 14:53:05 Wake-up needed ! 14:59:58 Bell bar is low 15:00:04 658 tics (21.8/m) 244.7deg (16.6/m) 15:00:11 Clock has announced 3h
We even added an extra: as no one cares for this clock to chime during the night, our control system stops the clock at the end of the day and frees it 12 hours later in the morning. We thus double the clock autonomy which now needs to be rewound only every two days. High score for a smart watch :-)