The very first program I wrote for my first Arduino was a clock. I had no components at hand, so it used the embedded led on pin 13 to display the time, with series of pulses. And of course it drifted a lot, as the Nano's resonator is not intended to be neither precise nor accurate.
This was somewhere around 2013, and since then I've often came back to clocks,, trying to make them more reliable. This PCB is first time I obtain something I consider usable.
More details are available about specific parts of the project in the logs above.
Code is available on github (see link on the left), as well as PCB files.
A big thank you for a few persons and their projects :
SpenceKonde and his MegaTinyCore, which made this project easy by porting the Attiny Series 1 to Arduino, and exposing how a UPDI programmer can be made.
yakwsx and his Kikit Kicad plugin, which make panelizing a snap. Without this program I probably wouldn't have made this project. Several PCB would have been several Kicad files, several order to JLCPCB, and as much trouble.
Jiří Praus and Mohit Bhoite, and others, both for the inspiration their creativity brings, but also for their youtube tutorials, videos, interview at Hackaday, Hackster.io, where they share their knowledge, tips and tricks.
A very interesting project, definitely from a programming point of view. Time keeping is indeed a very complex issue, and keeping things accurate, is a challenge. I definitely like the logic way that you handled the problem, and your solution using GPS is quite brilliant :)