gpsd-users
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re[2]: NTPsec reports excessive jitter from GPSD/KPPS SHM


From: Nick Burkitt
Subject: Re[2]: NTPsec reports excessive jitter from GPSD/KPPS SHM
Date: Fri, 06 Mar 2020 00:23:53 +0000
User-agent: eM_Client/7.2.37929.0

Hi Gary.

Yes, the u-blox PPS is 100 ms wide. We use the rising edge for other purposes, so I've implemented a second interrupt for the falling edge (Zynq GIC interrupts are rising edge/high level only). Now I'm capturing both assert and clear. It doesn't seem to have made any difference, though.

Here's ppstest:

root@MPM-4006:~# 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 1583451764.950840664, sequence: 1111 - clear  1583451764.050612818, sequence: 1110
source 0 - assert 1583451764.950840664, sequence: 1111 - clear  1583451765.050863427, sequence: 1111
source 0 - assert 1583451765.951094669, sequence: 1112 - clear  1583451765.050863427, sequence: 1111
source 0 - assert 1583451765.951094669, sequence: 1112 - clear  1583451766.051123386, sequence: 1112
source 0 - assert 1583451766.951346473, sequence: 1113 - clear  1583451766.051123386, sequence: 1112
source 0 - assert 1583451766.951346473, sequence: 1113 - clear  1583451767.051365286, sequence: 1113
source 0 - assert 1583451767.951595809, sequence: 1114 - clear  1583451767.051365286, sequence: 1113
source 0 - assert 1583451767.951595809, sequence: 1114 - clear  1583451768.051621698, sequence: 1114
source 0 - assert 1583451768.951843455, sequence: 1115 - clear  1583451768.051621698, sequence: 1114
source 0 - assert 1583451768.951843455, sequence: 1115 - clear  1583451769.051869235, sequence: 1115
source 0 - assert 1583451769.952093108, sequence: 1116 - clear  1583451769.051869235, sequence: 1115
source 0 - assert 1583451769.952093108, sequence: 1116 - clear  1583451770.052115882, sequence: 1116
source 0 - assert 1583451770.952337119, sequence: 1117 - clear  1583451770.052115882, sequence: 1116
source 0 - assert 1583451770.952337119, sequence: 1117 - clear  1583451771.052366180, sequence: 1117
source 0 - assert 1583451771.952581094, sequence: 1118 - clear  1583451771.052366180, sequence: 1117
source 0 - assert 1583451771.952581094, sequence: 1118 - clear  1583451772.052607824, sequence: 1118
source 0 - assert 1583451772.952826395, sequence: 1119 - clear  1583451772.052607824, sequence: 1118
source 0 - assert 1583451772.952826395, sequence: 1119 - clear  1583451773.052851174, sequence: 1119
source 0 - assert 1583451773.953075937, sequence: 1120 - clear  1583451773.052851174, sequence: 1119
source 0 - assert 1583451773.953075937, sequence: 1120 - clear  1583451774.053103787, sequence: 1120
source 0 - assert 1583451774.953320664, sequence: 1121 - clear  1583451774.053103787, sequence: 1120
source 0 - assert 1583451774.953320664, sequence: 1121 - clear  1583451775.053347729, sequence: 1121
source 0 - assert 1583451775.953565624, sequence: 1122 - clear  1583451775.053347729, sequence: 1121
source 0 - assert 1583451775.953565624, sequence: 1122 - clear  1583451776.053588964, sequence: 1122
source 0 - assert 1583451776.953807471, sequence: 1123 - clear  1583451776.053588964, sequence: 1122
source 0 - assert 1583451776.953807471, sequence: 1123 - clear  1583451777.053833641, sequence: 1123
source 0 - assert 1583451777.954047778, sequence: 1124 - clear  1583451777.053833641, sequence: 1123
source 0 - assert 1583451777.954047778, sequence: 1124 - clear  1583451778.054072583, sequence: 1124
source 0 - assert 1583451778.954289286, sequence: 1125 - clear  1583451778.054072583, sequence: 1124

=========================================================================
Here's cgps:

┌───────────────────────────────────────────┐┌──────────────────Seen 22/Used 10┐
│ Time:          2020-03-05T23:45:46.000Z   ││     PRN  Elev   Azim   SNR  Use │
│ Latitude:        xxx.31806990 N           ││GP     6  30.0  157.0  16.0   Y  │
│ Longitude:       xxx.78326150 W           ││GP    13  29.0  219.0  23.0   Y  │
│ Alt (HAE, MSL):     83.907,    181.765 ft ││GP    15  24.0  254.0  25.0   Y  │
│ Speed:             0.04 mph               ││GP    17  67.0   39.0  19.0   Y  │
│ Track (true, var):   276.7,  13.1     deg ││GP    19  86.0  242.0  30.0   Y  │
│ Climb:             0.00 ft/min            ││GP    24  30.0  312.0  28.0   Y  │
│ Status:         3D FIX (48 secs)          ││GP    28  43.0   65.0  22.0   Y  │
│ Long Err  (XDOP, EPX):  0.63, +/- 31.9 ft ││GP    30  22.0  141.0  16.0   Y  │
│ Lat Err   (YDOP, EPY):  0.76, +/- 34.0 ft ││GL    76  49.0   94.0  11.0   Y  │
│ Alt Err   (VDOP, EPV):  1.67, +/- 20.0 ft ││GL    87  63.0  180.0  22.0   Y  │
│ 2D Err    (HDOP, CEP):  1.02, +/- 16.2 ft ││GP     1   8.0   36.0  14.0   N  │
│ 3D Err    (PDOP, SEP):  1.96, +/-  107 ft ││GP     2  11.0  184.0  23.0   N  │
│ Time Err  (TDOP):       1.20              ││GP    12   8.0  281.0  20.0   N  │
│ Geo Err   (GDOP):       2.30              ││GP    18  86.0  243.0   0.0  uN  │
│ ECEF X, VX:   -2674984.810 m   -0.020 m/s ││GL    67   4.0  260.0   0.0   N  │
│ ECEF Y, VY:   -4317124.450 m    0.010 m/s ││GL    68   8.0  307.0   0.0   N  │
│ ECEF Z, VZ:    3845541.060 m    0.000 m/s ││GL    75   6.0  119.0   0.0   N  │
│ Speed Err (EPS):       +/-  0.0 mph       ││GL    77  56.0  347.0   0.0   N  │
│ Track Err (EPD):        n/a               ││GL    78  10.0  314.0   0.0   N  │
│ Time offset:           0.044 sec          ││GL    86  46.0   37.0   0.0   N  │
│ Grid Square:            CM97ch            ││GL    88  17.0  198.0   0.0  uN  │
└───────────────────────────────────────────┘└More...──────────────────────────┘
"az":65.0,"ss":22.0,"used":true,"gnssid":0,"svid":28,"health":1},{"PRN":30,"el":22.0,"az":141.0,"ss":16.0,"used":true,"gnssid":0,"svid":30,"health":1},{"PRN":67,"el":4.0,"az":260.0,"ss":0.0,"used":false,
"gnssid":6,"svid":3,"health":1},{"PRN":68,"el":8.0,"az":307.0,"ss":0.0,"used":false,"gnssid":6,"svid":4,"health":1},{"PRN":75,"el":6.0,"az":119.0,"ss":0.0,"used":false,"gnssid":6,"svid":11,"health":1},{"
PRN":76,"el":49.0,"az":94.0,"ss":11.0,"used":true,"gnssid":6,"svid":12,"health":1},{"PRN":77,"el":56.0,"az":347.0,"ss":0.0,"used":false,"gnssid":6,"svid":13,"health":1},{"PRN":78,"el":10.0,"az":314.0,"ss
":0.0,"used":false,"gnssid":6,"svid":14,"health":1},{"PRN":86,"el":46.0,"az":37.0,"ss":0.0,"used":false,"gnssid":6,"svid":22,"health":1},{"PRN":87,"el":63.0,"az":180.0,"ss":22.0,"used":true,"gnssid":6,"s
vid":23,"health":1},{"PRN":88,"el":17.0,"az":198.0,"ss":0.0,"used":false,"gnssid":6,"svid":24,"health":2},{"PRN":90,"el":46.0,"az":37.0,"ss":0.0,"used":false,"gnssid":6,"svid":26,"health":1}]}
{"class":"TPV","device":"/dev/core100/gnss","mode":3,"time":"2020-03-05T23:45:41.000Z","leapseconds":18,"ept":0.005,"lat":37.318068300,"lon":-121.783260900,"altHAE":25.396,"altMSL":55.223,"alt":55.223,"e
px":9.709,"epy":10.348,"epv":6.096,"track":276.7052,"magtrack":13.0711,"magvar":13.1,"speed":0.020,"climb":0.000,"eps":0.02,"epc":12.28,"ecefx":-2674984.75,"ecefy":-4317124.45,"ecefz":3845540.81,"ecefvx"
:-0.02,"ecefvy":0.01,"ecefvz":0.00,"ecefpAcc":7.83,"ecefvAcc":0.02,"velN":0.000,"velE":0.000,"velD":-0.000,"geoidSep":-31.881,"eph":4.908,"sep":32.870}
{"class":"PPS","device":"/dev/pps0","real_sec":1583451942,"real_nsec":0,"clock_sec":1583451941,"clock_nsec":958129622,"precision":-20}
{"class":"TPV","device":"/dev/core100/gnss","mode":3,"time":"2020-03-05T23:45:42.000Z","leapseconds":18,"ept":0.005,"lat":37.318068300,"lon":-121.783260900,"altHAE":25.396,"altMSL":55.223,"alt":55.223,"e
px":9.709,"epy":10.348,"epv":6.096,"track":276.7052,"magtrack":13.0711,"magvar":13.1,"speed":0.020,"climb":0.000,"eps":0.02,"epc":12.28,"ecefx":-2674984.77,"ecefy":-4317124.45,"ecefz":3845540.87,"ecefvx"
:-0.02,"ecefvy":0.01,"ecefvz":0.00,"ecefpAcc":7.83,"ecefvAcc":0.02,"velN":0.000,"velE":0.000,"velD":-0.000,"geoidSep":-31.881,"eph":4.908,"sep":32.870}
{"class":"TPV","device":"/dev/core100/gnss","mode":3,"time":"2020-03-05T23:45:42.000Z","leapseconds":18,"ept":0.005,"lat":37.318068600,"lon":-121.783261100,"altHAE":25.447,"altMSL":55.274,"alt":55.274,"e
px":9.709,"epy":10.348,"epv":6.099,"track":276.7052,"magtrack":13.0711,"magvar":13.1,"speed":0.020,"climb":0.000,"eps":0.02,"epc":12.28,"ecefx":-2674984.77,"ecefy":-4317124.45,"ecefz":3845540.87,"ecefvx"
:-0.02,"ecefvy":0.01,"ecefvz":0.00,"ecefpAcc":7.83,"ecefvAcc":0.02,"velN":0.000,"velE":0.000,"velD":-0.000,"geoidSep":-31.881,"eph":4.910,"sep":32.870}
{"class":"PPS","device":"/dev/pps0","real_sec":1583451943,"real_nsec":0,"clock_sec":1583451942,"clock_nsec":958037956,"precision":-20}
{"class":"TPV","device":"/dev/core100/gnss","mode":3,"time":"2020-03-05T23:45:43.000Z","leapseconds":18,"ept":0.005,"lat":37.318068600,"lon":-121.783261100,"altHAE":25.447,"altMSL":55.274,"alt":55.274,"e
px":9.709,"epy":10.348,"epv":6.099,"track":276.7052,"magtrack":13.0711,"magvar":13.1,"speed":0.020,"climb":0.000,"eps":0.02,"epc":12.28,"ecefx":-2674984.79,"ecefy":-4317124.43,"ecefz":3845540.92,"ecefvx"
:-0.02,"ecefvy":0.01,"ecefvz":0.00,"ecefpAcc":7.83,"ecefvAcc":0.02,"velN":0.000,"velE":0.000,"velD":-0.000,"geoidSep":-31.881,"eph":4.910,"sep":32.870}
{"class":"TPV","device":"/dev/core100/gnss","mode":3,"time":"2020-03-05T23:45:43.000Z","leapseconds":18,"ept":0.005,"lat":37.318069000,"lon":-121.783261300,"altHAE":25.469,"altMSL":55.296,"alt":55.296,"e
px":9.709,"epy":10.348,"epv":6.103,"track":276.7052,"magtrack":13.0711,"magvar":13.1,"speed":0.020,"climb":0.000,"eps":0.02,"epc":12.28,"ecefx":-2674984.79,"ecefy":-4317124.43,"ecefz":3845540.92,"ecefvx"
:-0.02,"ecefvy":0.01,"ecefvz":0.00,"ecefpAcc":7.83,"ecefvAcc":0.02,"velN":0.000,"velE":0.000,"velD":-0.000,"geoidSep":-31.881,"eph":4.913,"sep":32.870}
{"class":"TPV","device":"/dev/core100/gnss","mode":3,"time":"2020-03-05T23:45:43.000Z","leapseconds":18,"ept":0.005,"lat":37.318069000,"lon":-121.783261300,"altHAE":25.469,"altMSL":55.296,"alt":55.296,"e
px":9.709,"epy":10.348,"epv":6.103,"track":276.7052,"magtrack":13.0711,"magvar":13.1,"speed":0.020,"climb":0.000,"eps":0.02,"epc":12.28,"ecefx":-2674984.79,"ecefy":-4317124.43,"ecefz":3845540.92,"ecefvx"
:-0.02,"ecefvy":0.01,"ecefvz":0.00,"ecefpAcc":7.83,"ecefvAcc":0.02,"velN":0.000,"velE":0.000,"velD":-0.000,"geoidSep":-31.881,"eph":4.913,"sep":32.870}
{"class":"PPS","device":"/dev/pps0","real_sec":1583451944,"real_nsec":0,"clock_sec":1583451943,"clock_nsec":957949193,"precision":-20}
{"class":"TPV","device":"/dev/core100/gnss","mode":3,"time":"2020-03-05T23:45:44.000Z","leapseconds":18,"ept":0.005,"lat":37.318069000,"lon":-121.783261300,"altHAE":25.469,"altMSL":55.296,"alt":55.296,"e
px":9.709,"epy":10.348,"epv":6.103,"track":276.7052,"magtrack":13.0711,"magvar":13.1,"speed":0.020,"climb":0.000,"eps":0.02,"epc":12.28,"ecefx":-2674984.81,"ecefy":-4317124.44,"ecefz":3845540.98,"ecefvx"
:-0.02,"ecefvy":0.01,"ecefvz":0.00,"ecefpAcc":7.84,"ecefvAcc":0.02,"velN":0.000,"velE":0.000,"velD":-0.000,"geoidSep":-31.881,"eph":4.913,"sep":32.870}

Here's a formatted PPS JSON object:

{
    "class": "PPS",
    "device": "/dev/pps0",
    "real_sec": 1583452869,
    "real_nsec": 0,
    "clock_sec": 1583452868,
    "clock_nsec": 940146370,
    "precision": -20
}
=========================================================================
Here's ntpmon:

     remote           refid      st t when poll reach   delay   offset   jitter
 SHM(0)          .GPS.            0 l   17   64  377      0ns 48.263ms 14.602ms
*SHM(1)          .PPS.            0 l   15   64  377      0ns -26.60ms 16.084ms
+clock.team-cymr 204.9.54.119     2 u    3   64  377 67.488ms 37.833ms 20.522ms
+tock.usshc.com  .GPS.            1 u    8   64  357 75.055ms 64.780ms 20.008ms
-linode1.ernest- 198.72.72.10     3 u   11   64  377 82.348ms 68.958ms 21.518ms
-rolex.netservic 129.6.15.29      2 u  211   64  130 76.218ms 28.192ms 19.751ms
 pool.ntp.org    .POOL.          16 p    -  256    0      0ns      0ns  1.907us
-ntp13.doctor.co 50.205.244.29    2 u    4   64  357 70.509ms 67.659ms 21.595ms
-50-205-244-108- 50.205.244.28    2 u    9   64  377 75.233ms 64.438ms 21.384ms
-45.55.217.50    200.98.196.212   2 u    3   64  377 87.571ms 69.812ms 22.215ms
-au.kashra.pictu 75.229.16.214    2 u    6   64  327 24.167ms 69.444ms 17.418ms
ntpd ntpsec-1.1.8+ 2020-03-04T20:55:58Z       Updated: 2020-03-05T23:43:53 (32)
 lstint avgint rstr r m v  count rport remote address
      0   3.32    0 . 6 2    391 46780 localhost
      4     54   d0 . 4 4     25   123 45.55.217.50
      4     54   d0 . 4 4     25   123 clock.team-cymru.org
      5     56   d0 . 4 4     24   123 ntp13.doctor.com
      7     64   d0 . 4 4     21   123 138.68.46.177 (au.kashra.pictures)
      9     56   d0 . 4 4     24   123 199.102.46.76 (tock.usshc.com)
     10     53   d0 . 4 4     25   123 50-205-244-108-static.hfc.comcastbusines
     12     53   d0 . 4 4     25   123 linode1.ernest-doss.org
    212     72   d0 . 4 4     16   123 rolex.netservicesgroup.com

I should note that the numbers that NTPsec uses for offset and jitter wander all over the map, from a low of ~2 ms to 50 or even > 100 ms.
Where it's getting those numbers from is a mystery to me.
For fun, I calculated the standard deviation of the difference between timestamps for successive sequence numbers as reported by ppstest. 
It's 0.00000475 s (~5 us) for the asserts, 0.00000535 s (~5 us) for the clears.

-Nick

------ Original Message ------
From: "Gary E. Miller" <address@hidden>
To: address@hidden
Sent: 3/5/2020 1:27:31 PM
Subject: Re: NTPsec reports excessive jitter from GPSD/KPPS SHM

Yo Nick!
 
On Wed, 04 Mar 2020 22:17:25 +0000
"Nick Burkitt" <address@hidden> wrote:
 
Representative ntpmon output (afterPPS is marked as a falseticker):
 
Oddly I see that it is my mailer, and my lack of caffeine, that lost the
offset and jitter.
 
So, morphing your table a bit:
 
remote offset jitter
SHM(0) -33.5071 17.3123
xSHM(1) -122.422 15.4372
+ha81.smatwebdes 19.3951 35.7520
-ntp2.wiktel.com -37.5661 32.3464
-nu.binary.net -35.1534 36.6477
*ntp2.wiktel.com -8.1684 19.2080
+time.cloudflare -14.3229 20.2842
 
Looks to me like your PPS pulse width is 100 milli seconds, and your are
triggering on the wrong edge. If you KPPS was returning both edges, then
the gpsd KPPS code would pick the right one.
 
RGDS
GARY
---------------------------------------------------------------------------
Gary E. Miller Rellim 109 NW Wilmington Ave., Suite E, Bend, OR 97703
address@hidden Tel:+1 541 382 8588
 
Veritas liberabit vos. -- Quid est veritas?
"If you can't measure it, you can't improve it." - Lord Kelvin

reply via email to

[Prev in Thread] Current Thread [Next in Thread]