Ah sorry you right. I wrote down the ntp.conf by memory and not by copy/pasting (I wasn’t home when I did it), your ntp.conf syntax is the correct one.
Looking at your post, I think the problem was that PPS was disabled outright. Looking at your post, I see: >> root@gpsdo:~/ppsapitest # sysctl dev.uart.0.pps_mode=0x01 >> dev.uart.0.pps_mode: 0 -> 1 Sysctl output shows that pps_mode was originally 0 before the change. The bit values for pps_mode can be found in the include files sys/dev/uart/uart_ppstypes.h: 0x0 = disabled, 0x1 = pps_cts, 0x2 = pps_dcd, ….. Glad it’s working now, have fun with your GPSDO 😊 From: Adam Kumiszcza <[email protected]> Sent: Wednesday, 30 October, 2019 15:07 To: Fiorenzo Cattaneo <[email protected]>; Discussion of precise time and frequency measurement <[email protected]> Subject: Re: [time-nuts] GPSDO+PC as a NTP server 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 <http://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 <http://ntp.wide-net.pl> 194.146.251.101 2 u 6 64 7 85.966 -2.331 0.223 ntp2.pl <http://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 <http://SunSITE.icm.edu> 210.100.177.101 2 u 4 64 7 34.776 4.662 7.338 46.175.224.7.ma <http://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 <http://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] <mailto:[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 <https://www.freebsd.org/cgi/man.cgi?query=uart&sektion=4&manpath=freebsd-release-ports> &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] <mailto:[email protected]> > wrote: HI again! On Wed, Oct 23, 2019 at 9:37 PM Fiorenzo Cattaneo <[email protected] <mailto:[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 <https://www.freebsd.org/cgi/man.cgi?query=sio&sektion=4> &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.
