Hi, I am trying to use a Garmin GPS18x LVC receiver to synchronize my laptop
clock using NTP. I have found several documents with similar instructions as
to how to make this work and so far I've had no luck. I am able to receive the
GPS NMEA string via a usb port:
~$ cat /dev/ttyUSB0
I�brbr�12207.2689,W,2,09,0.8,10.6,M,-32.4,M,,*4E
$GPGSA,A,3,05,13,15,16,20,21,25,26,291.2,0.8,0.9*3D
$GPGSV,3,1,11,05,21,045,15,13,22,086,27,15,30,129,29,16,19,317,25*7A
$GPGSV,3,2,11,20,35,220,19,21,53,298,26,25,20,188,17,26,34,292,20*7C
$GPGSV,3,3,11,29,71,104,37,02,01,080,00,10,09,217,00*42
$GPRMC,215057,A,3727.0074,N,12207.2690,W,000.0,020.0,100818,013.8,E,D*09
$GPGGA,215057,3727.0074,N,12207.2690,W,2,09,0.8,10.6,M,-32.4,M,,*40
$GPGSA,A,3,05,13,15,16,20,21,25,26,291.2,0.8,0.9*3D
$GPGSV,3,1,11,05,21,045,15,13,22,086,27,15,30,129,29,16,19,317,25*7A
$GPGSV,3,2,11,20,35,220,19,21,53,298,26,25,20,188,17,26,34,292,20*7C
$GPGSV,3,3,11,29,71,104,37,02,01,080,00,10,09,217,00*42
If I monitor the GPS input via gpsmon I can see all the information is there,
including the 1PPS pulse:
/dev/ttyUSB0 4800 8N1 NMEA0183>
┌──┐
│Time: 2018-08-10T21:58:28.000Z Lat: 37 27' 00.215" N Lon: 122 07' 15.888" W │
└─ Cooked TPV ─┘
┌──┐
│ GPRMC GPGGA GPGSA GPGSV PGRMT│
└─ Sentences ──┘
┌──┐┌┐┌┐
│Ch PRN Az El S/N ││Time: 215828 ││Time: 215828 │
│ 0 5 45 18 16 ││Latitude: 3727.0036 N ││Latitude: 3727.0036│
│ 1 13 82 23 20 ││Longitude: 12207.2648 W ││Longitude: 12207.2648 │
│ 2 15 126 32 34 ││Speed: 000.0││Altitude: 45.8 │
│ 3 16 315 21 19 ││Course:194.5││Quality: 2 Sats: 08 │
│ 4 20 222 39 22 ││Status:A FAA: D ││HDOP: 1.0 │
│ 5 21 302 55 23 ││MagVar:013.8E ││Geoid: -32.4│
│ 6 26 287 34 24 │└─── RMC ┘└─── GGA ┘
│ 7 29 112 68 16 │┌┐┌┐
│ 8 10 219 12 0 ││Mode: A3 Sats: 5 13 15 16 2 ││UTC: RMS: │
│ 9 25 188 18 0 ││DOP: H=1.0 V=0.9 P=1.3 ││MAJ: MIN: │
│10││TOFF: 0.611384951 ││ORI: LAT: │
│11││PPS: 0.000169339 ││LON: ALT: │
└── GSV ───┘└ GSA + PPS ─┘└─── GST ┘
(70) $GPGSV,3,2,10,20,39,222,22,21,55,302,23,26,34,287,24,29,68,112,16*78
However, ntp does not recognize and reject the SHM peers
ntpq> pe
remote refid st t when poll reach delay offset jitter
==
0.ubuntu.pool.n .POOL. 16 p- 6400.0000.000 0.000
1.ubuntu.pool.n .POOL. 16 p- 6400.0000.000 0.000
2.ubuntu.pool.n .POOL. 16 p- 6400.0000.000 0.000
3.ubuntu.pool.n .POOL. 16 p- 6400.0000.000 0.000
ntp.ubuntu.com .POOL. 16 p- 6400.0000.000 0.000
SHM(0) .NMEA. 0 l- 1600.0000.000 0.000
SHM(1) .PPS.0 l- 1600.0000.000 0.000
#208.76.53.137 216.218.254.202 2 u 46 64 17 76.6963.673 0.552
-12.167.151.2198.148.79.210 3 u 51 64 17 78.5162.003 0.281
+x.ns.gin.ntt.ne 249.224.99.213 2 u 48 64 174.5760.418 0.464
-mdnworldwide.co 216.218.254.202 2 u 50 64 17 49.2610.094 1.015
*darwin.kenyonra 127.67.113.922 u 45 64 175.3620.354 0.494
-lv1.justaguy.be 127.67.113.922 u 47 64 17 23.820 -1.319 0.603
-66-188-102-122. 34.225.6.20 3 u 52 64 17 81.602 -3.496 4.033
+propjet.latt.ne 14.82.97.170 2 u 46 64 174.421 -1.750 1.819
-nu.binary.net 204.9.54.119 2 u 49 64 17 53.228 -6.678 0.723
-dns-e.wdc-us.ho 64.113.44.54 2 u 50 64 17 76.9421.555 1.099
golem.canonical 145.238.203.14 2 u 52 64 17 137.6930.367 15.467
-195.21.152.161 195.66.241.2 2 u 49 64 17 10.487 -1.236 0.707
#64.52.22.96 (64 199.102.46.722 u 47 64 17 13.6170.187 0.980
pugot.canonical 17.253.34.1252 u 53 64 17 139.4810.624 35.522
ntpq> as
ind assid status conf reach auth condition last_event cnt
===
1 33742 8811 yes none nonereject