GPS Pulse Per Seccond accuracy

Posted by fmadio | 100G Ethernet

The accuracy of 1PPS otherwise known as 1 Pulse per second is quite an interesting topic. We discussed how our 40G packet sniffer system calculated extreme nano accuracy time before, whats missing is how accurate our 10G packet sniffer can synchronize UTC world time using the onboard GPS PPS signal thats included with every system.


  • GPS PPS accuracy

For a quick background, the GPS system requires extreme time accuracy to calculate a full 3D position. Infact the primary limitation on location resolution is the accuracy of the local clock. This time accuracy must take into account the gravitational distortion of time from the satellites above aka general relativity. Thus its a good bet GPS PPS time is pretty safe bet.

Analysis of GPS 1PPS

Within our 10G packet sniffer system there`s a range of options for time synchronization, either PTPv2, PTPv2 + PSS, or GPS. To setup the GPS you need to connect an Antenna to the system and also wire the GPS PPS out signal to the PPS In connector as shown below.


GPS PPS connector setup

and on the device it looks like

GPS PPS packet capture setup

Tho the ultimate question is, how accurate are GPS hardware timestamps in the PCAP? To check that requires a fancy pants logic analyzer and a simple feedback loop. The feedback loop we`ll use is sending the GPS 1PPS signal into the PPS In port, and then comparing the true GPS 1PPS signal against the PPS Out signal from the system, visualized below.



GPS PPS packet capture latency

Where the point of this exercises is to measure the latency from the GPS (Probe 1) to the hardware timestamper logic (Probe 3). The assumption is, the PPS OUT signal (probe 3) is very close to the hardware timestamp time (e.g. 0 latency due to hardware manufacture compensating for propagation delays). Some voltage conversion is required which adds additional latency, thus Probe 2 is also included.

... and the results!

GPS PPS latency nanos

We have the GPS 1PPS signal at time 0ns (in green), the level conversion at around +15ns (blue) and finally the PPS OUT signal at around 50ns (orange). Making the latency from GPS to hardware packet stamps is around 50ns. Luckily this is easily adjusted in a configuration file making our GPS with PPS UTC world time accuracy +/- 10nsec! (GPS manufactuers spec)

Lost GPS signal?


Depending on the quality of the GPS antenna something as simple as signal reflections off nearby buildings can cause GPS to loose synchronization, resulting in no GPS PPS output. In such a scenario we run off the Stratum 3 TXCO crystal in a free-running mode. TXCO temperature controlled crystals are reasonably accurate but also affordable. How accurate? Its a matter of a simple test by disconnecting the GPS PPS Out signal and letting the system run for an hour or so.


Solarflare PPS freerun accuracy

As you can see above in green, the TXCO crystal is not bad, but after about an hour of free running its 18usec offset from the real UTC time. This ladies and gentlemen is the reason to always discipline your clocks from a GPS PPS signal, or through a GPS based PTPv2 grandmaster or even better just purchase one of our systems :)