NEO-6M PPS jitter
David Mikolajczyk
mikolajczyk.david at gmail.com
Mon Jun 10 22:49:55 UTC 2019
Hello,
I have an NEO-6M GPS module connected via RS232, with the PPS output tied to the Carrier Detect line. I’m running gpsd, and ntpd is using the shm driver:
dmm at tuesday:~$ grep -Ev '^($|#)' /etc/ntp.conf
driftfile /var/lib/ntp/ntp.drift
leapfile /usr/share/zoneinfo/leap-seconds.list
pidfile /run/ntpd.pid
statsdir /var/log/ntpstats/
statistics loopstats peerstats clockstats
filegen loopstats file loopstats type day enable
filegen peerstats file peerstats type day enable
filegen clockstats file clockstats type day enable
server 127.127.28.1 maxpoll 0 minpoll 0 prefer
fudge 127.127.28.1 refid PPS
server 127.127.28.0 maxpoll 0 minpoll 0 noselect
fudge 127.127.28.0 refid GPS time1 0.13
server navobs1.wustl.edu
server ntp1.versadns.com
pool pool.ntp.org iburst
restrict default kod nomodify nopeer noquery limited
restrict 127.0.0.1
restrict ::1
As far as I can tell PPS is working and ntpd has locked onto it:
dmm at tuesday:~$ sudo ppstest /dev/pps0
trying PPS source "/dev/pps0"
found PPS source "/dev/pps0"
ok, found 1 source(s), now start fetching data...
source 0 - assert 1560205114.099979715, sequence: 267686 - clear 1560205114.999982042, sequence: 267687
source 0 - assert 1560205115.099977423, sequence: 267687 - clear 1560205114.999982042, sequence: 267687
source 0 - assert 1560205115.099977423, sequence: 267687 - clear 1560205115.999966008, sequence: 267688
source 0 - assert 1560205116.099971636, sequence: 267688 - clear 1560205115.999966008, sequence: 267688
source 0 - assert 1560205116.099971636, sequence: 267688 - clear 1560205116.999972064, sequence: 267689
source 0 - assert 1560205117.099968777, sequence: 267689 - clear 1560205116.999972064, sequence: 267689
source 0 - assert 1560205117.099968777, sequence: 267689 - clear 1560205117.999964637, sequence: 267690
source 0 - assert 1560205118.099956033, sequence: 267690 - clear 1560205117.999964637, sequence: 267690
^C
dmm at tuesday:~$ ntpq -np
remote refid st t when poll reach delay offset jitter
===============================================================================
*SHM(1) .PPS. 0 l - 1 377 0.0000 0.0114 0.0163
SHM(0) .GPS. 0 l - 1 377 0.0000 6.4270 0.8868
+128.252.19.1 .GPS. 1 u 38 64 377 41.5237 2.3254 2.6606
-71.66.197.232 .PPS. 1 u 3 64 377 79.9719 -6.6000 3.8017
pool.ntp.org .POOL. 16 p - 64 0 0.0000 0.0000 0.0001
-198.60.22.240 .XMIS. 1 u 40 64 377 103.6632 0.6705 3.2127
-45.76.244.202 128.138.141.172 2 u 21 64 377 78.0170 4.5267 13.8419
-184.105.182.7 216.218.254.202 2 u 42 64 377 69.5203 1.8172 5.0539
-45.33.2.219 130.207.244.240 2 u 30 64 377 65.8003 2.6055 1.6738
+64.79.100.196 199.102.46.70 2 u 51 64 377 33.1858 1.8786 0.8587
dmm at tuesday:~$ ntpq -crl
associd=0 status=0415 leap_none, sync_uhf_radio, 1 event, clock_sync,
version="ntpd ntpsec-1.1.0+419 2018-03-14T12:03:57-0700", processor="x86_64",
system="Linux/4.15.0-51-lowlatency", leap=00, stratum=1, precision=-23,
rootdelay=0.0, rootdisp=1.015, refid=PPS,
reftime=e0a95654.84fa16d1 2019-06-10T22:21:08.519Z,
clock=e0a95656.2d61e02d 2019-06-10T22:21:10.177Z, peer=53763, tc=0, mintc=0,
offset=0.000261, frequency=-23.338013, sys_jitter=0.010559,
clk_jitter=0.012162, clk_wander=0.079958, tai=37,
leapsec="2017-01-01T00:00Z", expire="2019-12-28T00:00Z”
However, the PPS jitter is higher than what others seem to be seeing, and occasionally it’s ridiculously excessive, e.g.:
dmm at tuesday:~$ awk '$3=="SHM(1)"&&$8>0.001' /var/log/ntpstats/peerstats | sort -nrk 8
58644 60266.519 SHM(1) 961a -0.999998978 0.000000000 0.000030083 0.999999864
58644 44932.519 SHM(1) 961a -0.999999570 0.000000000 0.000029672 0.999999446
58644 48716.519 SHM(1) 961a -0.500002716 0.000000000 0.353584201 0.500002209
58644 56148.519 SHM(1) 961a -0.500001461 0.000000000 0.353585750 0.500001779
58644 44946.519 SHM(1) 961a 0.000001417 0.000000000 0.000030356 0.377964846
58644 60278.519 SHM(1) 961a 0.000001941 0.000000000 0.000030281 0.377964820
58644 60276.519 SHM(1) 961a 0.000000975 0.000000000 0.000031108 0.377964455
58644 44940.519 SHM(1) 961a 0.000000136 0.000000000 0.000029627 0.377964362
58644 44936.519 SHM(1) 961a -0.000000251 0.000000000 0.000030001 0.377964216
58644 44944.518 SHM(1) 961a -0.000000347 0.000000000 0.000029259 0.377964179
58644 60270.519 SHM(1) 961a 0.000000174 0.000000000 0.000029918 0.377964152
58644 44938.518 SHM(1) 961a -0.000000534 0.000000000 0.000030072 0.377964109
58644 44942.519 SHM(1) 961a -0.000000579 0.000000000 0.000029358 0.377964092
58644 60274.519 SHM(1) 961a -0.000000184 0.000000000 0.000030028 0.377964017
58644 60268.519 SHM(1) 961a -0.000000648 0.000000000 0.000029551 0.377963842
58644 44934.519 SHM(1) 961a -0.000001851 0.000000000 0.000029591 0.377963611
58644 60272.519 SHM(1) 961a -0.000001597 0.000000000 0.000030234 0.377963483
58644 60280.519 SHM(1) 961a -0.000028527 0.000000000 0.000051160 0.377953306
58644 48722.519 SHM(1) 961a 0.000002783 0.000000000 0.044224789 0.188984315
58644 48720.519 SHM(1) 961a 0.000001606 0.000000000 0.088419689 0.188983870
58644 48724.518 SHM(1) 961a 0.000000862 0.000000000 0.022128134 0.188983589
58644 48728.519 SHM(1) 961a 0.000000649 0.000000000 0.005554416 0.188983508
58644 56152.519 SHM(1) 961a 0.000001074 0.000000000 0.088419356 0.188983194
58644 48726.519 SHM(1) 961a -0.000000431 0.000000000 0.011079465 0.188983100
58644 56154.519 SHM(1) 961a 0.000000634 0.000000000 0.044224529 0.188983028
58644 56150.519 SHM(1) 961a 0.000000373 0.000000000 0.176808919 0.188982930
58644 56158.519 SHM(1) 961a -0.000000184 0.000000000 0.011080696 0.188982719
58644 48718.519 SHM(1) 961a -0.000001441 0.000000000 0.176807442 0.188982718
58644 48730.519 SHM(1) 961a -0.000001463 0.000000000 0.002791858 0.188982710
58644 56160.519 SHM(1) 961a -0.000000764 0.000000000 0.005557188 0.188982500
58644 56156.518 SHM(1) 961a -0.000000925 0.000000000 0.022128572 0.188982439
58644 56162.519 SHM(1) 961a -0.000003473 0.000000000 0.002794003 0.188981476
Note the top four records in particular, with offsets in excess of half a second!
Does anyone have any idea where I might start looking for the cause of this?
Thanks,
David Mikolajczyk
More information about the users
mailing list