[ntp:questions] PPS from an external OCXO source. Correcting drift is it possible?

Kevin Oberman oberman at es.net
Fri May 1 15:17:42 UTC 2009

> From: Kat <Schwar3Kat at gmail.com>
> Date: Fri, 1 May 2009 04:09:04 -0700 (PDT)
> Sender: questions-bounces+oberman=es.net at lists.ntp.org
> To try and maintain better accuracy on the ntp server that feeds my
> small network and increase the maxtime for server polling, I thought
> that I would dig into my scrap box and build a PPS with a home built
> OCXO as a spare time project.  The NTP documentation stated that e a
> PPS source could be used with an NTP server as the reference clock, so
> I built the PPS source.
> My homebrew PPS source that is vastly more stable than my servers
> internal clock, but it has a slight constant drift that I can't easily
> correct.  Also I can expect the drift to change slowly with time due
> to crystal aging.
> I hooked it up to my FreeBSD servers serial port and tweeked it for
> minimum drift relative to another internal NTP server referencing
> three external NTP servers. (NTP 4.2.5p5-a).  Unfortunately this setup
> doesn't appear to work as I would have expected it to.
> I have two problems with it.  1. It starts off with a random offset.
> 2. The offset drifts at about 20 milliseconds a day.
> If this was the internal PC clock then  NTP would take care of the
> drift with by calculating the drift constant with respect to other
> external NTP servers and correcting for it whilst reducing the offset
> to zero. Does the PPS clock not have a similar mechanism?
> Is there any way to do this or is the NTP documentation misleading me?


While the idea of building a stable clock for NTP PPS use seems like a
reasonable idea, it really dose not work. Here is a quick look at why it

The PPS driver is designed to "train" the time from some other source
for better accuracy. With an accurate PPS source, 1 microsecond is
probably not unreasonable. But PPS assumes that the pulse is EXACTLY on
the second and it adjusts the system time to match this. The assumption
is that the PPS is sourced from a device, such as a GPS clock, that is
very accurate internally and that the pulse is tightly linked to this

This means that the PPS time must not only be stable, but must be
tightly synchronized to the "real" time. If it drifts, the system time
will drift, as well, since ntp starts with the assumption that the pulse
is the first order truth of when a second begins. the rest of the time
is only used to make sure that it is the correct second.

With GPS sources being so inexpensive, about $70 for someone who is
handy with a soldering iron, this is really the way to go. A PPS source
that is not tied to some real time reference is simply not going to
R. Kevin Oberman, Network Engineer
Energy Sciences Network (ESnet)
Ernest O. Lawrence Berkeley National Laboratory (Berkeley Lab)
E-mail: oberman at es.net			Phone: +1 510 486-8634
Key fingerprint:059B 2DDF 031C 9BA3 14A4  EADA 927D EBB3 987B 3751

More information about the questions mailing list