In an ideal world, all clocks should synchronize with the network and deal with daylight saving hell automatically. Not only that, they should run for at least a year on a single AA battery and cost around the same price as current clocks.
In this project, I try to NTP-enable a cheap $2 Ikea RUSCH wall clock using a ESP-12E dev module. This project was inspired by another blog post that explores controlling the Lavet motor in a typical analog quartz clock using an Arduino.
Most NTP clock projects make use of digital displays of one form or another. The only analog one I can find is this one by Jim Loos. I think my contribution here is the setup. It automatically captures your location using the HTML5 Geolocation API. It then use the Google Maps Timezone API to automatically convert the UTC time returned by NTP to the local time with DST offset.
Hence setup is extremely simple. Connect to the device configuration access portal and enter 1) Wi-Fi credentials 2) clock face time. Hit "Save" and the device should take care of the rest.
Of the 3 goals stated, 2 of them have been met. The clock will sync within a few seconds of NTP time, take care of DST automatically and only cost a few dollars more due to the low cost of ESP12/ESP8266. The only problem that remains is the practical need to run this clock from the mains. Even when connected to a 10,000mha battery pack, it will only last for about 6 to 7 days.
I hope this will be solved eventually...