Rasp Pi at +/- 1 us from GPS
mlewis000 at rogers.com
Sun Nov 26 19:33:26 UTC 2017
I thought people working on having a Rasp Pi as a Time Server
would/should be aware of pps-client.
My Rasp Pi 3 is running software (pps-client) that uses GPS PPS and
seems to be meeting the goal of maintaining system time to +/- 1 us.
How I got there:
- I got a Raspberry Pi 3 running Raspbian Stretch.
- Installed a DS3231 RTC on the I2C. (remote by leads, wrapped in
insulation, it and the Pi in a metal tea-box with five of six sides
- I disabled Stretch's simple stripped down client-only NTP replacement
with timedatectl so it's: synced no, NTP no, UTC yes.
- I installed Lady Heather 5.0, but I couldn't get it to recognize the
USB feed from my GPS (which it was happily doing on a Win 7 box).
- Mark Sims sent me a newer zip and some hints on identifying ACM type
- GPS (uBlox NEO-M8T) is set to a fixed survey position and is feeding
messages to Lady Heather through USB as id=/dev/ttyACM0 and Lady Heather
is happily producing graphs & maps.
- Lady Heather is set to force system time to the GPS message time if
System Time is off by more than 300 ms. This sets system time to a whole
- I found pps-client, which disciplines System Time to TOS with the GPS
- (if I understand properly) pps-client takes a pair of GPIO pins and
calibrates latency, so its PPS adjustment is more accurate.
- pps-client installed as expected. One gets the Stretch source and
compiles the kernel as part of that.
- pps-client wouldn't run without NTP in play.
- So I trivially modified pps-client to skip checking for NTP and
- pps-client now ran.
- pps-client -v displays the "status printout", showing that in around
ten minutes it was reporting jitter as single digit us. avgCorrection is
typically 0.00000, -0.016667 or -0.033333, occasionally 0.016667 or
0.033333 us. My "status printout" looks nearly identical to the example
in the pps-client README.md.
- after running overnight, reported jitter is typically between -2 and
+3 us, with a regular odd value in the mix ranging between -5 and +10 us.
I haven't figured out how to collect data for graphs yet...
I don't know how to measure if pps-client is doing what it says it is...
I hope to be able to install NTPsec:
- as a time server
- leaving system time alone
- reading/referencing system time (as disciplined to 1us by pps-client)
- providing polling to my local network through Pi's stupid USB
I hesitate to install NTPsec as I don't know if it will blow away
anything needed for pps-client.
Someone else may be, or may be interesting in, trying pps-client out.
More information about the devel