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:12power on (the GNSS receivers is battery-backed and has been on before, hence it does a warm-start)00:13the status display shows the configured UTC offset (+2, i.e. 0b00010) for a few seconds00:17the status display blinks (start of calibration)00:18the split-flap display moves a bit slowly (for show, and to assert none of the triggers are active)00:20the 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:43it moves the display just beyond the the minutes wheel trigger (12.26), this is the «calibrated zero position»00:44some status display blinking (again for show, and to indicate the end of the calibration process)00.45since the system doesn’t know the time yet (the GNSS has not yet acquired a fix) it will move the clock to 00:0001:05the 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:30the 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:35the 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:52again 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:56the 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:41it’s now 00:52 and the display advances a minute accordingly04:41again.. :-)
Attic¶
Old stuff. A very old video of a first attempt at driving the display.
created: 2008-11-20, updated: 2020-07-12