My ntp.conf was very similar: server 127.127.20.0 mode 17 minpoll 4 maxpoll 4 prefer fudge 127.127.20.0 flag1 1 flag3 1 time2 0.15698
Are you sure flag1 comes after server, not fudge? It gives me syntax error in /var/log/messages. Time2 calculated experimentally by the awk script. # ntpq -c kerninfo associd=0 status=042d leap_none, sync_uhf_radio, 2 events, kern, pll offset: 2.54041 pll frequency: -65.3446 maximum error: 7.453 estimated error: 0.2 kernel status: pll ppsfreq ppstime nano pll time constant: 4 precision: 0.001 frequency tolerance: 495.911 pps frequency: -65.153 pps stability: 0 pps jitter: 0.000 calibration interval 4 calibration cycles: 0 jitter exceeded: 0 stability exceeded: 0 calibration errors: 0 As you can see, pps data looks broken. No calibration. "cu -l /dev/gps0 -s 9600" gives me proper NMEA I could not find ppstest for FreeBSD (pps-tools), but I compiled ppsapitest (https://github.com/freebsd/freebsd/tree/master/tools/test/ppsapi). # kenv hint.uart.0.flags="0x10" # ./ppsapitest -v /dev/cuau0 Supported modebits: CAPTUREASSERT CAPTURECLEAR OFFSETASSERT OFFSETCLEAR CANWAIT TSPEC ^C root@gpsdo:~/ppsapitest # sysctl dev.uart.0.pps_mode=0x01 dev.uart.0.pps_mode: 0 -> 1 root@gpsdo:~/ppsapitest # ./ppsapitest -v /dev/cuau0 Supported modebits: CAPTUREASSERT CAPTURECLEAR OFFSETASSERT OFFSETCLEAR CANWAIT TSPEC 1572471715 .999207702 8 1572471715 .050547992 8 1572471715 .999207702 8 1572471716 .050923133 9 1572471716 .998764118 9 1572471716 .050923133 9 1572471716 .998764118 9 1572471717 .051208066 10 1572471717 .999071162 10 1572471717 .051208066 10 # ntpq -p remote refid st t when poll reach delay offset jitter ============================================================================== oGPS_NMEA(0) .GPS. 0 l 1 16 377 0.000 0.001 0.010 *192.168.0.200 80.50.231.226 2 u 12 64 7 0.064 1.272 0.010 pool.ntp.org .POOL. 16 p - 64 0 0.000 0.000 0.000 ntp2.tktelekom. 80.50.231.226 2 u 10 64 7 34.972 5.244 0.614 ntp.wide-net.pl 194.146.251.101 2 u 6 64 7 85.966 -2.331 0.223 ntp2.pl 194.146.251.101 2 u 8 64 7 23.816 1.304 0.997 162.159.200.123 10.73.8.83 3 u 8 64 7 42.993 -7.413 1.570 162.159.200.1 10.73.8.83 3 u 4 64 7 43.889 -6.966 0.912 SunSITE.icm.edu 210.100.177.101 2 u 4 64 7 34.776 4.662 7.338 46.175.224.7.ma 193.106.216.30 3 u 1 64 7 49.671 -0.098 1.377 ip-159-253-242- 194.146.251.100 2 u 6 64 3 38.582 6.277 1.151 old.histeria.pl 212.160.106.226 2 u 4 64 3 30.292 1.609 1.325 afrodyta.comple 210.100.177.101 2 u - 64 3 33.259 2.214 1.533 # ntpq -c kerninfo associd=0 status=041d leap_none, sync_uhf_radio, 1 event, kern, pll offset: 0.009016 pll frequency: -63.8877 maximum error: 941.687 estimated error: 0.003 kernel status: pll ppsfreq ppstime ppssignal nano pll time constant: 4 precision: 0.001 frequency tolerance: 495.911 pps frequency: -63.8877 pps stability: 0.342499 pps jitter: 0.001 calibration interval 32 calibration cycles: 17 jitter exceeded: 1 stability exceeded: 0 calibration errors: 2 As you can see, pps data appeared and I have my "o" in front of GPS_NMEA! :) I did not change ntp.conf, time2 offset is now ignored, I guess. Offset and jitter from ntpq -crv after less than an hour now is even lower than my Raspberry Pi with better gps chip and running non stop, but I need more testing, of course. Thank you again for your help! dev.uart.0.pps_mode=0x01 did wonders. Adam Kumiszcza On Wed, Oct 30, 2019 at 9:01 PM Fiorenzo Cattaneo <[email protected]> wrote: > Hmm that is odd. I haven't seen the sio man page, I refer and use the > directions in uart man page > > > https://www.freebsd.org/cgi/man.cgi?query=uart&sektion=4&manpath=freebsd-release-ports > > And set this sysctl variable in /boot/loader.conf (note that the uart man > page is also wrong, you can only set pps_mode for specific devices and not > for all devices): > > dev.uart.0.pps_mode=0x10 > > To test it without having to reboot, use sysctl command. > > Maybe the sio feature has been added recently, IDK, I still use FreeBSD > kernel 11.1. What I know for sure is that the sysctl is actually > implemented in the code -- see uart_core.c source. > > > For ntp.conf, I only use the NMEA refclock #20. I always had trouble with > the PPS refclock #22. > > https://www.eecis.udel.edu/~mills/ntp/html/drivers/driver20.html > > The entry is something like this: > > Server 127.127.20.0 mode 17 flag1 1 > > Mode 17 tells ntpd to process RMC only and use 9600 bps. Default is 4800 > bps. If you want to process all supported sentences at 9600 bps, use mode > 16. > Flag1 tells ntpd to use PPS. Default is no PPS. > I also set max poll to 4. > > If you are still having trouble, you can troubleshoot like this: > * set boot verbose mode in loader.conf, it will print the actual UART pps > configuration. > * use cu first to double check that you are using the correct line at the > correct speed, for instance: > cu -l /dev/gps0 -s 9600 > If you see NMEA sentences correctly, then you know you have the correct > device at 9600bps > * download, build and run ppstest program to make sure PPS is setup > correctly. > > If you see NMEA sentences, but you don't see PPS, there are two > possibilities (1) PPS capture is still set to the default DCD (2) PPS > output from GPS receiver is disabled. The latter should not be the case > with the GPSDO. > > > good luck! > > > > > > > > > -- Fio Cattaneo > > Universal AC, can Entropy be reversed? -- "THERE IS AS YET > INSUFFICIENT DATA FOR A MEANINGFUL ANSWER." > > On Oct 30, 2019, at 02:02, Adam Kumiszcza <[email protected]> wrote: > > > HI again! > > On Wed, Oct 23, 2019 at 9:37 PM Fiorenzo Cattaneo <[email protected]> wrote: > >> > 2. I would like to get both NMEA and PPS signal from it on the NTP >> server. >> > Currently PPS is on pin 8 (CTS) but according to >> > http://doc.ntp.org/4.1.1/driver22.htm and >> > https://www.satsignal.eu/ntp/NTP-on-Windows-serial-port.html it should >> > rather be on pin 1 (DCD). >> >> [...] > >> (3) use FreeBSD instead, which supports runtime configuration of >> either DCD or CTS for PPS >> >> I use the latter, as I am big fan of FreeBSD >> > > I'm trying to make it work on FreeBSD. > > I put hint.uart.0.flags="0x10000" in /boot/device.hints as per > https://www.freebsd.org/cgi/man.cgi?query=sio&sektion=4 (0x10000 PPS > timestamping on CTS instead of DCD). > I recompiled the kernel with PPS support. > My devfs.conf has the following: > link cuau0 gps0 > link cuau0 refclock-0 > link cuau0 pps0 > > But I still don't seem to get PPS (no "o" in ntpq -np). Which driver do > you use? 127.127.22.0 or 127.127.20.0 or both? I'm only able to use 22.0, > which is GPS_NMEA, but on some webpages it's the only one mentioned after > discussing PPS. > > Thanks in advance, > Adam Kumiszcza > > _______________________________________________ time-nuts mailing list -- [email protected] To unsubscribe, go to http://lists.febo.com/mailman/listinfo/time-nuts_lists.febo.com and follow the instructions there.
