This clock has now been in my possession for close to 10 years, it is a Siemens master clock with 3/4 invar pendulum. It is a nice clock, but also needs some repairs at times, especially, the contact wear out or get dirty over time so every two or three year it needs adjustment, cleaning and so on. Another issue is the noise every minute, which is caused by an electromagnet driving the winding mechanism.
There are many contacts and all these need to work, also the main gear of the second hand is triggering a contact, which is known to have an adverse effect on the clock stability, by putting extra load (losses) on the pendulum.
So, we have to re-configure the winding mechanism, and I decided to use a maintenance-free stepper driver. Like those used in old floppy disk drivers.
Only needed to fabricate a metal bracket to mount it to the clockworks. Needless to say, no modification of the clock has been made, I just made use of the existing holes and screws.
To indicate the fully-wound position of the clock, there is normally another set of two contacts that stop the magnet from further winding up the clock. However, also these need some cleaning and adjustment at times, so I replaced them with a inductive proximity sensor.
The sensor has a M8x1 thread, so a mounting bracket can be easily fabricated from some brass.
To control the stepper motor, the winding mechanism, and the second’s pick up (a simple light gate with some comparator circuit), a electronics board is in place, using an ESP32 microcontroller that include a WLAN interface.
The circuit is fairly straightforward. The stepper is driven by a 4-phase uni-polar driver, which has some resistors and diodes, and current switched by darlington transistors. The current per phase is roughly 120 mA, and only one phase active per step, operating in full-step mode with 200 steps/rev. Timing is roughly 10 ms per step.
Power is obtained from 9 VAC power, but the circuit will accept DC or AC, any polarity. A DS18B20 is used for temperature sensing. I am thinking about adding a BMP180 barometric sensor to the circuit, but now that everything is running nicely, I don’t want to disturb the clock. In any case, the circuit is connected to the clock by a 15-pin SUB-D plug, so it can be removed from the clock without removing the dials or anything else.
So I can run a small web interface which is polled every 10 minutes by my main server, to get the current time deviation of the clock, and its temperature.
The adjustments were very easy, and it only took a day to get the clock working to within 1 sec/day deviation. Let’s see if there is some drift developing over time.
The software gave me quite a hard time initially, because the motor control is interacting with the pick up of the pendulum (the light gate signal wire and the motor wires with inductive currents all installed parallel and powered from the same supply, so there were some false counts. Now the timing is such that the winding happens in the dead time, i.e., after a “tick” of the pendulum, and well within the time to the next “tick” (tick-tock-tick-tock spaced 0.75 seconds, so it is 40 ticks per minute for the 3/4 pendulum). That solved the false-count issues altogether, and still I am using a filter algorithm to reconstruct the action pendulum motions perfectly fine, even if one tick would be missed, etc.