[chrony-users] Is my GPS receiver really less accurate than NTP servers?

[ Thread Index | Date Index | More chrony.tuxfamily.org/chrony-users Archives ]


Hello everyone,

I'm sure a bunch of people on this list have seen or tried one of the guides out there for setting up a Raspberry Pi as a stratum 1 time server with a GPS receiver like one of these:

https://www.adafruit.com/product/2324
https://store.uputronics.com/index.php?route=product/product&path=60_64&product_id=81

I'm wondering, has anyone tried comparing their results from one of those guides against public time servers? If so, were the results positive (as in, at least as accurate and more precise than time from NTP servers)? I ask because after setting mine up, I plotted Chrony's reported offset from several public time servers ("Offset" column in measurements.log). I got some interesting results.

(Before I continue, for those who will wonder about my setup: I'm using a Raspberry Pi 3B+ with a Ublox MAX-M8Q GPS receiver and Chrony 4.0. I set the boot options to disable tickless mode and the serial console, installed cpufrequtils and set the cpu governor to full performance, enabled uart and pps and disabled bluetooth and wifi in /boot/config.txt, and uninstalled a few unnecessary daemons.)

First, I compared against NTP pool servers. The results here look pretty phenomenal: https://i.imgur.com/4At0m1d.png The accuracy from the GPS receiver seems to be great. The plot doesn't show the refclock's precision, but it was several orders of magnitude better than the servers as well.

Then I measured against public NTP servers run by large tech companies and NIST. Notably, apart from time.cloudflare.com, these are all stratum 1 servers. This is the plot: https://i.imgur.com/eu267CW.png Here, the picture doesn't look so rosy. In fact, taking those results at face value, I should just abandon the GPS, because it seems I'd get better accuracy by syncing with a few of these servers instead. (It makes no noticeable difference whether Chrony uses GPSd for the refclock or uses /dev/pps0 directly.)

The one thing that does seem a little suspicious is that the offsets for all the servers fall pretty uniformly between about 0 and +5 milliseconds. That seems a little too coincidental, like maybe 5ms is the granularity of the timer used to timestamp the packets or something. But, admittedly, I have no other reason to believe the measurements aren't correct, and that sounds like an unlikely explanation. I suppose it's possible the PPS from the GPS receiver has a constant 2.5ms delay from somewhere, but I'd be a little surprised (it's not a timing GPS, but the datasheet still quotes a PPS accuracy within 60ns).

So now I'm curious if anyone else with one of these Raspberry Pi setups has done any benchmarking like this. If so, what did your results look like? And does anyone have any theories about the positive offsets between 0 and 5ms in the second plot?

Thanks,
Nick

--
To unsubscribe email chrony-users-request@xxxxxxxxxxxxxxxxxxxx with "unsubscribe" in the subject. For help email chrony-users-request@xxxxxxxxxxxxxxxxxxxx with "help" in the subject.
Trouble?  Email listmaster@xxxxxxxxxxxxxxxxxxxx.


Mail converted by MHonArc 2.6.19+ http://listengine.tuxfamily.org/