Along with its security capabilities and accelerometer, Zymkey has a high accuracy Real Time Clock (RTC). This capability can be useful for platforms which do not have a built-in RTC, such as Raspberry Pi, but rather depend on NTP for time-keeping.
Dependence on NTP may cause problems due to unscheduled power outages or unreliable WiFi connections. For example, if a deployed application that periodically collects sensor data experiences a power outage and is not able to restore a connection to any available networks upon boot up, the timestamps associated with any collected data would be incorrect. On Raspberry Pi, this will be approximate to the last valid timestamp when things were last running normally.
We can simulate this by disabling
ntp.service comparing the system date to the
time.nist.gov server. After only 12 hours, the system clock has drifted nearly 40 minutes!
Zymkey's Real Time Clock is battery backed and temperature compensated for high accuracy (+/- 0.6ppm), which could be very valuable for significant power or network outages. Prior to starting NTP in the boot sequence, the zymkey provides the current UTC timestamp to the host computer (e.g. Raspberry Pi). This means that, if access to a reliable network isn't available, a reliable timestamp will be available for use by any running applications.
With a bound Zymkey installed and running
zkbootrtc.service on the same system as above (ntp disabled), we can see the clock restored based on the Zymkey RTC. You will notice this message at boot:
Feb 8 19:22:26 raspberrypi systemd: Starting Restore System Clock from Zymkey...
Feb 9 18:58:48 raspberrypi systemd: Started Restore System Clock from Zymkey.
And we can validate using the same test as above.
Zymkey's time value is not settable directly from the Raspberry Pi. Instead RTC accuracy is monitored and maintained from the Zymbit cloud. An optional OEM time reference appliance is also available. Contact Zymbit sales for more details.