[ntp:questions] NMEA driver using common PPSAPI code

David Lord snews at lordynet.org
Fri Oct 1 12:21:37 UTC 2010


Venu Gopal wrote:
> Hello Dave,
> 
> After spending some time I could see that there is an issue with using
> common PPSAPI code.
> I disabled ZDG messages (containing GPS time) and the driver is supposed to
> use the UTC time
> in ZDA messages. Here is the output of NTP log:
> 
> 
> 29 Sep 05:44:20 ntpd[4156]: GPS_NMEA(0) serial /dev/gps0 open at 9600 bps
> 29 Sep 05:44:20 ntpd[4156]: GPS_NMEA(0) 8011 81 mobilize assoc 26949
> 29 Sep 05:44:20 ntpd[4156]: 0.0.0.0 c016 06 restart
> 29 Sep 05:44:20 ntpd[4156]: 0.0.0.0 c012 02 freq_set kernel 6.352 PPM
> 29 Sep 05:44:21 ntpd[4156]: Ignoring $GPZDG
> 29 Sep 05:44:21 ntpd[4156]: GPS_NMEA(0) 8024 84 reachable
> 29 Sep 05:44:21 ntpd[4156]: GPS_NMEA(0) 963a 8a sys_peer
> 29 Sep 05:44:21 ntpd[4156]: 0.0.0.0 c415 05 clock_sync
> 29 Sep 05:44:37 ntpd[4156]: 0.0.0.0 0413 03 spike_detect +0.343159 s
> 29 Sep 05:45:59 ntpd[4156]: ntpd exiting on signal 15
> 29 Sep 05:46:05 ntpd[4349]: GPS_NMEA(0) serial /dev/gps0 open at 9600 bps
> 29 Sep 05:46:05 ntpd[4349]: GPS_NMEA(0) 8011 81 mobilize assoc 44843
> 29 Sep 05:46:05 ntpd[4349]: 0.0.0.0 c016 06 restart
> 29 Sep 05:46:05 ntpd[4349]: 0.0.0.0 c012 02 freq_set kernel 6.362 PPM
> 29 Sep 05:46:06 ntpd[4349]: Ignoring $GPZDG
> 29 Sep 05:46:06 ntpd[4349]: GPS_NMEA(0) 8024 84 reachable
> 29 Sep 05:46:06 ntpd[4349]: GPS_NMEA(0) 963a 8a sys_peer
> 29 Sep 05:46:06 ntpd[4349]: 0.0.0.0 c415 05 clock_sync
> 29 Sep 05:46:22 ntpd[4349]: 0.0.0.0 0413 03 spike_detect +0.342736 s
> 29 Sep 06:01:18 ntpd[4349]: 0.0.0.0 041c 0c clock_step +0.343077 s
> 29 Sep 06:01:19 ntpd[4349]: 0.0.0.0 0414 04 freq_mode
> 29 Sep 06:01:35 ntpd[4349]: GPS_NMEA(0) 8044 84 reachable
> 29 Sep 06:16:31 ntpd[4349]: 0.0.0.0 c412 02 freq_set kernel 7.652 PPM
> 29 Sep 06:16:31 ntpd[4349]: 0.0.0.0 c415 05 clock_sync
> 29 Sep 06:16:31 ntpd[4349]: 0.0.0.0 c41d 0d kern PPS enabled
> 29 Sep 06:23:30 ntpd[4349]: ntpd exiting on signal 15
> 29 Sep 06:23:38 ntpd[1207]: GPS_NMEA(0) serial /dev/gps0 open at 9600 bps
> 29 Sep 06:23:38 ntpd[1207]: GPS_NMEA(0) 8011 81 mobilize assoc 43477
> 29 Sep 06:23:38 ntpd[1207]: 0.0.0.0 c016 06 restart
> 29 Sep 06:23:38 ntpd[1207]: 0.0.0.0 c012 02 freq_set kernel 6.374 PPM
> 29 Sep 06:23:38 ntpd[1207]: Ignoring $GPZDG
> 29 Sep 06:23:39 ntpd[1207]: GPS_NMEA(0) 8024 84 reachable
> 29 Sep 06:23:39 ntpd[1207]: GPS_NMEA(0) 963a 8a sys_peer
> 29 Sep 06:23:39 ntpd[1207]: 0.0.0.0 c41c 0c clock_step -0.331462 s
> 29 Sep 06:23:38 ntpd[1207]: 0.0.0.0 c414 04 freq_mode
> 29 Sep 06:23:54 ntpd[1207]: GPS_NMEA(0) 8044 84 reachable
> 29 Sep 06:38:50 ntpd[1207]: 0.0.0.0 c412 02 freq_set kernel 11.024 PPM
> 29 Sep 06:38:50 ntpd[1207]: 0.0.0.0 c415 05 clock_sync
> 29 Sep 06:39:06 ntpd[1207]: 0.0.0.0 0413 03 spike_detect +0.332441 s
> 29 Sep 06:54:02 ntpd[1207]: 0.0.0.0 041c 0c clock_step +0.329233 s
> 29 Sep 06:54:03 ntpd[1207]: 0.0.0.0 0415 05 clock_sync
> 29 Sep 06:54:03 ntpd[1207]: 0.0.0.0 041d 0d kern PPS enabled
> 29 Sep 06:54:19 ntpd[1207]: GPS_NMEA(0) 8014 84 reachable
> 29 Sep 08:36:22 ntpd[1207]: ntpd exiting on signal 15
> 29 Sep 08:36:48 ntpd[15231]: GPS_NMEA(0) serial /dev/gps0 open at 9600 bps
> 29 Sep 08:36:48 ntpd[15231]: GPS_NMEA(0) 8011 81 mobilize assoc 5145
> 29 Sep 08:36:48 ntpd[15231]: 0.0.0.0 c016 06 restart
> 29 Sep 08:36:48 ntpd[15231]: 0.0.0.0 c012 02 freq_set kernel 6.106 PPM
> 29 Sep 08:36:49 ntpd[15231]: Ignoring $GPZDG
> 29 Sep 08:36:49 ntpd[15231]: GPS_NMEA(0) 8024 84 reachable
> 29 Sep 08:36:49 ntpd[15231]: GPS_NMEA(0) 963a 8a sys_peer
> 29 Sep 08:36:49 ntpd[15231]: 0.0.0.0 c41c 0c clock_step -0.396902 s
> 29 Sep 08:36:49 ntpd[15231]: 0.0.0.0 c414 04 freq_mode
> 29 Sep 08:37:05 ntpd[15231]: GPS_NMEA(0) 8044 84 reachable
> 29 Sep 08:52:01 ntpd[15231]: 0.0.0.0 c412 02 freq_set kernel 9.732 PPM
> 29 Sep 08:52:01 ntpd[15231]: 0.0.0.0 c415 05 clock_sync
> 29 Sep 08:52:17 ntpd[15231]: 0.0.0.0 0413 03 spike_detect +0.398091 s
> 29 Sep 09:07:13 ntpd[15231]: 0.0.0.0 041c 0c clock_step +0.395956 s
> 29 Sep 09:07:13 ntpd[15231]: 0.0.0.0 0415 05 clock_sync
> 29 Sep 09:07:13 ntpd[15231]: 0.0.0.0 041d 0d kern PPS enabled
> 29 Sep 09:07:29 ntpd[15231]: GPS_NMEA(0) 8014 84 reachable
> 29 Sep 11:25:32 ntpd[15231]: ntpd exiting on signal 15
> 29 Sep 11:52:12 ntpd[2295]: GPS_NMEA(0) serial /dev/gps0 open at 9600 bps
> 29 Sep 11:52:12 ntpd[2295]: GPS_NMEA(0) 8011 81 mobilize assoc 4400
> 29 Sep 11:52:12 ntpd[2295]: 0.0.0.0 c016 06 restart
> 29 Sep 11:52:12 ntpd[2295]: 0.0.0.0 c012 02 freq_set kernel 6.132 PPM
> 29 Sep 11:52:13 ntpd[2295]: Ignoring $GPZDG
> 29 Sep 11:52:13 ntpd[2295]: GPS_NMEA(0) 8024 84 reachable
> 29 Sep 11:52:13 ntpd[2295]: GPS_NMEA(0) 963a 8a sys_peer
> 29 Sep 11:52:13 ntpd[2295]: 0.0.0.0 c41c 0c clock_step -0.348255 s
> 29 Sep 11:52:13 ntpd[2295]: 0.0.0.0 c414 04 freq_mode
> 29 Sep 11:52:29 ntpd[2295]: GPS_NMEA(0) 8044 84 reachable
> 29 Sep 12:07:25 ntpd[2295]: 0.0.0.0 c412 02 freq_set kernel 13.034 PPM
> 29 Sep 12:07:25 ntpd[2295]: 0.0.0.0 c415 05 clock_sync
> 29 Sep 12:07:41 ntpd[2295]: 0.0.0.0 0413 03 spike_detect +0.349336 s
> 29 Sep 12:22:37 ntpd[2295]: 0.0.0.0 041c 0c clock_step +0.344266 s
> 29 Sep 12:22:37 ntpd[2295]: 0.0.0.0 0415 05 clock_sync
> 29 Sep 12:22:37 ntpd[2295]: 0.0.0.0 041d 0d kern PPS enabled
> 29 Sep 12:22:53 ntpd[2295]: GPS_NMEA(0) 8014 84 reachable
> 29 Sep 22:59:25 ntpd[2295]: 0.0.0.0 0413 03 spike_detect -0.309390 s
> 29 Sep 22:59:41 ntpd[2295]: 0.0.0.0 0415 05 clock_sync
>  1 Oct 03:58:12 ntpd[2295]: ntpd exiting on signal 15
>  1 Oct 04:06:20 ntpd[16158]: GPS_NMEA(0) serial /dev/gps0 open at 9600 bps
>  1 Oct 04:06:20 ntpd[16158]: GPS_NMEA(0) 8011 81 mobilize assoc 34059
>  1 Oct 04:06:20 ntpd[16158]: 0.0.0.0 c016 06 restart
>  1 Oct 04:06:20 ntpd[16158]: 0.0.0.0 c012 02 freq_set kernel 6.141 PPM
>  1 Oct 04:06:20 ntpd[16158]: Ignoring $GPZDG
>  1 Oct 04:06:21 ntpd[16158]: GPS_NMEA(0) 8024 84 reachable
>  1 Oct 04:06:21 ntpd[16158]: GPS_NMEA(0) 963a 8a sys_peer
>  1 Oct 04:06:21 ntpd[16158]: 0.0.0.0 c41c 0c clock_step -0.317284 s
>  1 Oct 04:06:20 ntpd[16158]: 0.0.0.0 c414 04 freq_mode
>  1 Oct 04:06:36 ntpd[16158]: GPS_NMEA(0) 8044 84 reachable
>  1 Oct 04:12:41 ntpd[16158]: ntpd exiting on signal 15

I had this skipping between NMEA and PPS when I started using 
radioclocks. My method of dealing with the problem was to
fudge around it so once PPS had initialised it didn't go
above the allowed time threshold difference.

I had following two lines in ntp.conf
tos mindist 0.4
fudge 127.127.20.0 time1 0.651 refid GPSb

Fudge value required will vary depending on hardware. Here I
see around +/- 50ms variations in offset for GPS whilst offset
for PPS is usually below 10us.

The most recent ntpd I have here ntp-4.2.6p2 has separate fudge
settings which avoids the problem and also seems to converge more quickly.


David




More information about the questions mailing list