Close

Keeping Time, part 1

A project log for GPS controlled FischerTechnik Clock

Not a bomb.

jac-goudsmitJac Goudsmit 11/14/2015 at 06:400 Comments

Keeping accurate time on an electro-mechanical clock can be a challenge. There are 86400 seconds in a day, so even if the clock would run fast or slow by only 0.1%, it would still be off by almost a minute and a half per day.

Using a continuously running DC motor to drive the clock, keeping accurate time is very difficult. Friction, mechanical inaccuracies and variations, and even temperature make it as good as impossible to keep the mechanism running at a steady speed that matches actual time, so you have to use some electronics to compare the actual speed and/or position of the hands with an accurate time measurement. I may create a future FischerTechnik clock project with a continuously running mechanism, but this mechanism works differently.

A good alternative is to use an AC (synchronous) motor instead of a DC motor. What comes out of your power socket may not be exactly 50Hz or 60Hz at any time during the day because demands on the electricity grid vary all the time and the frequency depends on how fast the generators run. Nevertheless, power companies are dedicated to generating exactly 86400 times 50 or 60 cycles per day, so that clocks that use an AC motor which follows the line frequency exactly, don't have to be adjusted if day-to-day accuracy is sufficient. You may have noticed that you never have to set your alarm clock that's plugged into the wall, for the same reason: the power company gives you an extremely accurate line frequency over a long period, as long as you don't mind small variations during the day.

There is no such thing as a FischerTechnik synchronous AC motor (though it's possible to build one) but it's possible to build a clock where all the mechanical parts are FischerTechnik, and keep accurate time with the help of some electronics. The mechanical clock, as shown in the build instructions, uses a DC motor to drive an axle that advances the clock by two minutes (30:1 reduction) every time it goes around, i.e. half of one rotation per minute. There's a switch that gets closed twice per rotation, i.e. for each minute that the clock advances (during normal timekeeping) the switch opens and closes once. Instead of running the motor continuously, we run it only for a short time, once a minute, until the switch opens.

The simplest way to make the clock work is to put the switch on the minute-axis in series with the "minute motor", so that the motor stops when the minute sensor switch opens. You can then use a relay or a power transistor in parallel with the sensor switch to start a cycle. This relay or transistor needs to be active during a short time (half a second or so) every minute, and this can be implemented by connecting a digital counter to a low voltage AC source via a diode and a Schmidt-trigger, or by using an opto-coupler. The counter has to count 300 (for 50Hz) or 360 (for 60Hz) cycles, and then generate the short pulse.

The minute motor advances the clock every minute, and will keep accurate time on a day-by-day basis, but of course you need to set the clock to the correct time to be useful. The circuit on the bottom left of the schematic shows that a simple circuit with two single-pole-double-throw pushbutton switches, connected to the adjustment motor, is enough to let you adjust the time. And you will only need to do that once (unless there's a power failure or when someone decides we should all temporarily change our time zone by one hour to kid ourselves into thinking that the sun sets later or rises earlier, or vice versa).

Unfortunately I don't have the parts to build the electronics for this (It can be done with FischerTechnik parts but you will need a lot of flipflop modules; it's easier to just do it with TTL or CMOS chips), so I can't show how it's done, but I don't think it'll be too hard to figure out. If you want more details, post a comment and I'll add them.

In the next log, I'll show how to add two more sensor switches to detect that the hands are at the "12 o'clock" position, and how to add an Arduino-controlled FischerTechnik interface to track time with GPS accuracy, and adjust the clock fully automatically. Until I find time to take some more pictures and video and write the next log, check out my Github pages.

Discussions