I would vote for a accurate hardware fix rather than a less accurate software fix.
Best posts made by ib134866
RE: Clock runs too fast
While we wait for a hardware fix. I have developed an Arduino sketch that utilizes the inexpensive ESP-12F 8266 self contained MCU.
The Arduino sketch has the following features:
1.) Utilizes WiFiManager to setup an Access Point the first time the program is run.
2.) Displays the Access Point IP address on the clock display and waits for the user to connect to the AP and add an SSID to the configuration.
3.) Automatically determines your time zone based on your internet IP address.
4.) Uses the time zone information to determine your offset from UTC.
5.) Uses the time zone information to determine DST details - DST start, DST end and current DST status - either on or off. Uitilizes this information to automatically switch DST offset from UTC when DST changes occur.
6.) Utilizes OTA (Over The Air) update capabilities of the ESP 8266 module to allow sketch updates after the module is installed in the belly of the clock.
Only four wires are required from the EleksTube serial interface to the ESP-12F module. Power (+ and -) connected to the micro-usb input of the ESP-12F and serial transmit and receive.
The first time the sketch boots the WiFiManager requires a SSID to connect to a valid WiFi network. The EleksTube will display the IP address of the temporary access point that is setup to allow you to connect to the ESP-12F to set your WiFi SSID and password required to connect to your network.
The default IP address is 192.168.4.1. Utilizing your smartphone or Wifi capable computer, connect to the open "EleksTube" AP.
Then navigate with your browser to the AP ip address
Configure the Wifi appropriately and save your setting. The temporary access point will be turned off and not be re-enabled until the SSID you configured is not found.
The sketch will now connect to your Wifi with the credentials provided and determine your IP address. The IP address is used to determine your location and subsequent UTC offset and DST requirements. The NTP server will be contacted every 10 minutes to maintain an accurate time reference. The EleksTube will be updated every 1 second. The RTC in the EleksTube is update on power up and on DST changes.
Before using the sketch you must obtain a free API key from timezonedb.com and also generate a MD5 hash of a password to be used for OTA updates to the ESP-12F.
The sketch for the this project is located at GitHub - EleksTube - Wifi NTP clock update