GPS timing with a Kallisto GPS Card under FreeBSD 8

I inherited a Kallisto GPS card and a site which is connected by a long wireless link in country Victoria. Between the poor power and the sufficiently variable quality of the link NTP would occasionally drift too far to recover or start in a poor state. As a result of this I unpacked the card and have now commissioned a new time server.

Kallisto GPS Card

The Kallisto GPS Card (http://ion.le.ac.uk/kallisto/) is an ISA card mounting a Rockwell Jupiter GPS module which is manufactured by Greening Technology in the UK.

Configuring the NTP server

After installing the card and reserving the IRQ for the card it is necessary to have the startup scripts create the link that is used to find the GPS device by ntpd. This is done by adding the lines:

# GPS
link cuau1 gps0
to the file /etc/devfs.conf. In my case I have assigned the gps card as com2.

For convenience, it is often useful to be able to use tip to see the stream of NMEA strings coming from the card. Modify the appropriate line in /etc/remote to use 4800 baud eg:

uart1|com2:dv=/dev/cuau1:br#4800:pa=none:
The command tip uart1 then connects you to the stream.

Finally, the time source needs to be added to the /etc/ntp.conf file:

# GPS card
server 127.127.20.0 mode 3 minpoll 4 maxpoll 4 prefer
fudge 127.127.20.0 time1 2.170 flag1 1 flag3 1 refid PPS
I have added a small time correction to bring the GPS into line with the other time sources that I use when they are available

The time source can be checked with the ntpq -p command.

+203.171.85.237. 130.194.10.150 2 u 52 64 3 58.942 1.422 14.832
+118.107.60.254 202.83.64.2 3 u 49 64 3 52.482 -1.719 6.943
+warrane.connect 192.94.41.130 3 u 47 64 3 40.809 -0.866 19.531
-ntp.tourism.wa. 130.95.179.80 2 u 47 64 3 94.166 -18.254 18.530
LOCAL(0) .LOCL. 10 l 45 64 3 0.000 0.000 0.004
*GPS_NMEA(0) .PPS. 0 l 13 16 177 0.000 -6.040 7.123

Traps for young players

When using NMEA mode and there is no fix the card returns NMEA sentences which ntpd treats regards as malformed. This can lead to much confusion if the antenna is not positioned well and the GPS has not had time to synchronise correctly.

A set of correctly formed sentences looks like:

$GPGGA,024313,3803.7438,S,14549.6286,E,1,04,0.91,128.9,M,-3.3,M,,*7C
$GPGSA,A,3,24,18,22,14,,,,,,,,,1.41,0.91,1.08*0D
$GPGSV,3,3,12,32,11,268,28,09,11,141,28,11,08,226,00,21,07,047,26*77
$GPRMC,024313,A,3803.7438,S,14549.6286,E,0.000,0.0,020910,12.3,E*51
$PRWIZCH,09,2,06,2,24,7,18,7,19,2,22,7,21,2,14,7,32,2,11,0,31,2,03,2*41
When not "tracking" the $GPGSA sentence becomes degenerate.


Back to Notes on FreeBSD