I have questions regarding the use of a GPS receiver as an external clock source for realization of a time server with NTP daemon (client version 3), on a local network with no connection to external time servers.

I tried using three different GPS devices:

  • u-blox - NEO-M8N-0-10,
  • Adafruit Ultimate GPS breakout v3 module PA8H,
  • Digilent PmodGPS,

and two different driver types: 20 (NMEA) and 28 (SHM - Shared Memory type). For backup I have an undisciplined local clock (driver type 1) for the instances when the GPS is not available.

When the driver type 28 is used and the GPS signal is gone or has failed sanity check, the system starts using its local clock, however in this case there is too much dispersion. If a remote server exists, the system continues to work properly and uses the remote (spare) server for synchronization. The system will be/is operating in the circumstances where there is only local network connection. When the driver type 20 is used, I get tally “*” instead of “o” and it seems that PPS signal is not used for the synchronization, although ppstest passed.

  1. Is there a possibility to configure NTP to have stable clock using only GPS signal if it's available and local clock if not?
  2. Is it better to use driver type 20 or type 28?

Remove the undisciplined local clock source, it is not useful. Disciplined clock with zero peers but known drift will perform better than forcing it to follow undisciplined clock.

Determine if running with no reference gives sufficient performance for you. If not, consider bringing in more redundancies: a receiver for a different satnav constellation, an appliance with a good oscillator.

| improve this answer | |
  • Thank you for the prompt reply. I have another question regarding your answer - about the disciplined clock. What would be the exact implementation of this clock? Isn't the local clock as well as it's frequency (drift) adjusted to the GPS/PPS time when it is working, by the NTPD? So in the case when GPS signal is not proper (in short time periods) I assume that the local clock can take over the role of a time server with satisfying parameter values. Where am I wrong? – waldemar May 27 '19 at 14:55
  • Undisciplined local clock trusts the operating system clock as a reference. Problem is, common cheap clocks may drift more than your tolerance. Remove the type 1 and ntpd will adjust for drift. Even better, add a good oscillator not dependent on GPS. – John Mahowald May 27 '19 at 15:13

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.