flipflipclock¶
a self-calibrating GNSS powered mechanical split-flap display clock
Ingredients & Facts¶
- ancient split-flap display flip clock from a radio alarm
- with custom «calibration sensors» (micro switches)
- ATmega328p (8bit, 32kb flash, 2kb RAM, 16 MHz)
- Atomthreads OS
- http://www.nongnu.org/avr-libc/ AVR libc
- battery-backed u-blox NEO-M8N GNSS module (configured for GPS + ГЛОНАСС operation, with «AssistNow Autonomous» enabled)
- stepper motor
- home-made GPS helix antenna à la http://home.iae.nl/users/plundahl/antenne/helical.htm (dead link, archive.org and local copies)
- multi-function 6 bit LED display (status, seconds)
- …
Source Code¶
- This is part of my Arduino Uno Stuff.
Pictures¶
Video¶
What happens is (mm:ss
):
00:12
power on (the GNSS receivers is battery-backed and has been on before, hence it does a warm-start)00:13
the status display shows the configured UTC offset (+2, i.e. 0b00010) for a few seconds00:17
the status display blinks (start of calibration)00:18
the split-flap display moves a bit slowly (for show, and to assert none of the triggers are active)00:20
the stepper moves the display quickly to the trigger on the hours wheel (~12.00) and to the trigger in the minutes wheel (~xx.26)00:43
it moves the display just beyond the the minutes wheel trigger (12.26), this is the «calibrated zero position»00:44
some status display blinking (again for show, and to indicate the end of the calibration process)00.45
since the system doesn’t know the time yet (the GNSS has not yet acquired a fix) it will move the clock to 00:0001:05
the GNSS receiver has a position fix and it’s status (time pulse) LED starts blinking (barely visibly) at 1 Hz, the clock/system doesn’t care and continues heading for 00:0001:30
the clock display «arrives» at the «minutes zero» (~xx:26) just before the target time (00:00), re-calibrates itself (by slowly moving just beyond the trigger, and then continues «slowly» to the target01:35
the clock arrives at the targeted 00:00, now the system checks again for the GNSS time (which is now available) and sets for a new target (18:49)02:52
again the clock arrives at the «minutes zero» just before the target time (18:49), re-calibrates and then slowly approaches the current time (which is by now 18:51)02:56
the target time is reached and the display stops moving, the LED status display now displays seconds (in binary, compare the time with the DCF77 clock)03:41
it’s now 00:52 and the display advances a minute accordingly04:41
again.. :-)
Attic¶
Old stuff. A very old video of a first attempt at driving the display.
created: 2008-11-20, updated: 2020-07-12