[time-nuts] 1PPS for the beginner

Poul-Henning Kamp phk at phk.freebsd.dk
Tue Aug 14 09:34:00 EDT 2018

In message <CADHrwpew_K=WJX58wdRGmjbANkjRNA5i2VSqnWSkOwC6-b0kGQ at mail.gmail.com>, Dana Whitlow writes:

> Could someone please define and explain the term 'hanging bridge' in this context?

Look first at this illustrative plot from Toms site:


The situation is the following:

The gps receiver has a clock running at some frequency, lets say
30MHz in this case.

The gps receiver uses a programmable digital circuit to emit the
1PPS pulse as close to the point in time the GPS signals resolve
to, but it has to choose either clockcycle N or N+1, it cannot do

The next 1PPS will be somewhere near N+30000000, then near N+60000000 etc.

Since the clock in the GPS is not perfectly on frequency, and because
it changes frequency due to temperature and all the other usual effects,
there will not be exactly 30000000 clock cycles between the 1PPS pulses
it generates, sometimes there will be 29999999 and sometimes there
will be 30000001.

That is what you see on Toms plot.

In this case, the GPS Xtal is really moving, so the hanging bridges
are only half a minute long.

Counter to anything you would expect, putting the GPS receiver in
a nice a stable temperature makes the problem worse, because the
hanging bridges get longer, I've seen them up to about 3000 seconds.

In that cae, for almost an hour, you get 1PPS signals that told
you that the frequency was 30ns/3000 seconds = 1e-11 wrong, and
then it suddenly steps 30 ns on you...

On good receiver the serial datastream contains a cure for this, a
field called "negative sawtooth correction" or something similarly
obscure, and it would look something like this around the "pillar"
of the bridge:

	"The next 1PPS will be 14ns early"
	"The next 1PPS will be 14ns early"
	"The next 1PPS will be 15ns early"
	"The next 1PPS will be 15ns late"
	"The next 1PPS will be 15ns late"
	"The next 1PPS will be 14ns late"
	"The next 1PPS will be 14ns late"

Only if you measure the 1PPS, and apply this correction, then you get
the theoretical performance of your GPS, (subject to a 1ns/s jitter
from the resolution of the data field)

Poul-Henning Kamp       | UNIX since Zilog Zeus 3.20
phk at FreeBSD.ORG         | TCP/IP since RFC 956
FreeBSD committer       | BSD since 4.3-tahoe    
Never attribute to malice what can adequately be explained by incompetence.

More information about the time-nuts mailing list