[ntp:questions] How to debug GPS PPS?
xyz-2041
xyz2041 at gmail.com
Mon Dec 28 08:57:42 UTC 2009
Plugged in the GPS unit's serial cable into a Windows
computer running WinOncore12 v1.0 (Build 37):
http://www.google.com/#q=WinOncore12Installation.exe
Seemed to work without any problems. Generated
all sort of graphs and charts. Let it run and it
told me exact latitude, longitude and height above
sea level.
Used an analog volt meter and from pin 5 (supposed
to be ground), I only noticed voltage on pins 2 and 3.
Pin 2 was going erratically negative once a second.
I believe that this must be received data as per
standards. Pin 3 was +5 volts, but dropping to
-5 volts once per second.
I've changed my configs a bit, /var/log/ntp.log and
/var/log/ntpd.log don't show any errors.
However, "ntpq -c pe" still doesn't show any response:
GPS_NMEA(0) .GPS. 0 l - 16 0 0.000
0.000 0.001
PPS(0) .GPS. 0 l - 16 0 0.000
0.000 0.001
GPS_ONCORE(0) .GPS-. 0 l - 16 0 0.000
0.000 0.001
Also:
ntpdc -c kerninfo
pll offset: -0.00539973 s
pll frequency: -46.079 ppm
maximum error: 0.097522 s
estimated error: 0.003708 s
status: 2201 pll ppsjitter nano
pll time constant: 8
precision: 1e-09 s
frequency tolerance: 496 ppm
pps frequency: -9.224 ppm
pps stability: 0.000 ppm
pps jitter: 0 s
calibration interval: 4 s
calibration cycles: 0
jitter exceeded: 0
stability exceeded: 0
calibration errors: 0
Here is what I have done so far:
- Edit new kernel config file:
cd /usr/src/sys/i386/conf/
nano PPS-Generic
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# Generic kernel configuration with PPS_SYNC option
#
include GENERIC
ident PPS-GENERIC
# Enable support for the kernel PLL to use an external PPS signal,
# under supervision of [x]ntpd(8)
# More info in ftp://ftp.udel.edu/pub/ntp/kernel.tar.Z
options PPS_SYNC
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- Build and compile the new kernel:
cd /usr/src
ls -lt /usr/src/sys/i386/conf
make buildkernel KERNCONF=PPS-GENERIC
This should take 10 mins to 2 hours depending
on the speed of your computer.
Check to see that it was created:
cd /usr/obj/usr/src/sys/PPS-GENERIC
ls -lta | more
- Install the new kernel:
cd /usr/src
make installkernel KERNCONF=PPS-GENERIC
Check that the new kernel is installed:
cd /boot
ls -lta
These directories should be there:
kernel
kernel.old
Go into each directory and notice
the time stamps of the "kernel"
files:
cd /boot/kernel
ls -lta | grep kernel
-r-xr-xr-x 1 root wheel 10204732 Dec 19 13:44 kernel
-r-xr-xr-x 1 root wheel 31172114 Dec 19 13:44 kernel.symbols
cd /boot/kernel.old
ls -lta | grep kernel
-r-xr-xr-x 1 root wheel 10201628 May 1 2009 kernel
-r-xr-xr-x 1 root wheel 31167198 May 1 2009 kernel.symbols
Reboot:
shutdown -r now
- Check if new kernel running
After rebooting and logging in:
uname -a | grep PPS
You should get a readout of the kernel
name which should include "PPS"
- Create Oncore config file
cd /etc
nano ntp.oncore0
MODE 1
LON -75.7479
LAT 39.6632
HTGPS 67 FT
DELAY 30 NS
- Create symbolic links:
ln -s /dev/cuad0 /dev/oncore.pps.0
ln -s /dev/cuad0 /dev/oncore.serial.0
ln -s /dev/cuad0 /dev/gps0
ln -s /dev/cuad0 /dev/pps0d
- Create /etc/devfs.conf links:
link cuad0 pps0
link cuad0 gps0
link cuad0 oncore.pps.0
link cuad0 oncore.serial.0
- Check them:
ls -lta /dev | more
- Edit /etc/ntp.conf:
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# This is the configuration file for NTP
# (Network Time Protocol). More info at
# www.NTP.org
#
# /etc/ntp.conf
# This computer will act as a stratum 2 time
# server, by referencing the following 4 or
# more stratum 1 time servers:
server ntp2.netwrx1.com iburst # WI
server otc1.psu.edu iburst # PA
server t2.timegps.net iburst # CA
server tick.usask.ca iburst # CAN
# GPS NMEA (numbers seconds only)
# server 127.127.20.0 prefer minpoll 4 maxpoll 4
server 127.127.20.0 minpoll 4 maxpoll 4
#flag3 Controls the kernel PPS discipline: 0 for disable (default), 1
for enable.
# fudge 127.127.20.0 flag3 1
fudge 127.127.20.0 flag3 0
# GPS PPS
server 127.127.22.0 prefer minpoll 4 maxpoll 4
#flag3 Controls the kernel PPS discipline: 0 for disable (default), 1
for enable.
fudge 127.127.22.0 flag3 1
fudge 127.127.22.0 refid GPS
# GPS Oncore driver
server 127.127.30.0
fudge 127.127.30.0 refid GPS-Oncore
# Since the clock on most PCs drifts around
# significantly, let's use a file to
# keep track of that drift and compensate
# for it:
driftfile /etc/ntp.drift
# This server will broadcast NTP timing signals
# over the Local Area Network (LAN):
broadcast 192.168.1.255
# Let's setup a log file for NTP:
logfile /var/log/ntp.log
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Does anyone have any idea what I might check next?
More information about the questions
mailing list