[ntp:questions] How to determin hardware latency for PPS offset given simple tools.

David Woolley david at ex.djwhome.demon.invalid
Sat Jun 22 10:57:41 UTC 2013

Paul G wrote:
> I have four GPS receivers into four different computers.  I've assumed that I
> should be able to get small offsets between them but to do so I need

Basically, if this is important to you, you will need special hardware 
instrumentation.  You will need a time standard that it known to be a 
lot better than any of the normal sources, and which generates something 
like a pulse per second output, probably a portable atomic clock.  You 
will need an output pin on the PC that can be controlled directly from 
the PCI bus (no USB in between, even internally).  You will need 
software on the PC that has direct access the I/O port controlling the 
pin (there must be no kernel code virtualising the device - you must 
have IO permissions at the hardware level.  The software also needs to 
be able to read the interpolated time as quickly as possible, which 
probably means running in the kernel.

Externally, you will need a gated counter and and a frequency source of 
period several times less than the desired measurement accuracy and 
accurate to better than one cycle over a second, possibly a 10MHz output 
from the atomic clock.

Arrange the atomic clock to start the counter, on the second, and the 
output from the PC to stop it.  Either side of setting the output from 
the PC read the interpolated software clock, and after the complete 
cycle, output the fractional seconds part of the time.  Repeat this 
every second.

You should then have enough information to calculate the actual PC 
software clock offset, from which you can decide which of your ntpd 
sources is best.

Note, if you want to work to better than about 100ns, you will need to 
look up the data the data sheets for some of the logic used, to correct 
for the logic propagation delays.

Alternatively you can just accept that there will always be some 
uncertainty in the measurements.

> to set time1.  If that's the correct approach how do I pick the "right"
> system to be the benchmark.  So far I've just been assuming that
> the purpose built M. Tharp server should have the lowest latency but I'm not sure -- in any case, at present, I can't adjust it.
> Each machine in the truncated table below (except 210) has a time1
> value derived in an ad hoc fashion.
> l     r    refid       st   delay   offset  jitter
> ==================================================
> 1   o22.0  .PPS.        0   0.000   -0.001   0.001
> 2   +244   .PPS.        1   0.068    0.000   0.006
> 2   *210   .GPS.        1   0.514   -0.008   0.136
> 2   +192   .PPS.        1   0.455    0.008   0.032
> I feel as if this topic should be clearly explained somewhere but I've been
> unable to find it.

More information about the questions mailing list