[ntp:questions] Garmin gps18: The best DIY gps refclock?

Terje Mathisen terje.mathisen at hda.hydro.com
Fri Nov 25 12:27:36 UTC 2005

I decided to look into this interesting unit, both due the the low
price, and the fact that nearly all my other refclocks are Motorola Oncores.

The gps18lvc is an OEM model of the Garmin 12-channel/WAAS receiver,
packed together with an antenna into a small puck device. The PPS signal
is specified as "< 1 us", which means that the stability of the server
system clock will determine the actual performance.

At the other end of the (default) 3 m cable there's just a set of
colour-coded wires, carrying rs232-level send/receive/ground & pps
signals, as well as a pair of (slightly thicker) red/black power supply

I got the gps in a couple of days from a local distributor here in Oslo,
and picked up a 9-pin female rs232 connector with housing and a 1 m
small-size USB cable: Total cost was less than 1000 NOK, in the US I'm
guessing you could get the same for approx $100.

(Google... Yes, it seems like the gps itself is available for about $80!)

I then cut the USB cable and identified the +5V power wires (also
red/black coded!), I cut off the USB signaling wires with a small offset
between them to avoid any risk of a short circuit.

The only remaining task was to solder the signaling wires onto the rs232

pin 	signal	colour
1	PPS	yellow
2	TX	white
3	RX	green
5	GND	black

and join the remaining red/black wires to the corresponding pair from
the USB cable.

After wrapping some electician's tape for insulation around the power
lead joins, I carefully fit everthing inside the 9-pin rs232 cap and
closed it up.

Total time was less than 2 hours, including the trip to pick up the
parts, and it worked immediately:

>>ntpq -c rv -p ntp1

assID=0 status=0464 leap_none, sync_uhf_clock, 6 events,
version="ntpd 4.2.0b at 1.1431-o Fri Nov 11 11:38:18 UTC 2005 (2)"?,
processor="i386", system="FreeBSD/6.0-RELEASE", leap=00, stratum=1,
precision=-19, rootdelay=0.000, rootdispersion=0.298, peer=9366,
refid=GPS, reftime=c7302007.2b87bce7  Thu, Nov 24 2005 12:18:31.170,
poll=4, clock=0xc730200a.a6e567d2, state=4, offset=0.010,
frequency=29.775, jitter=0.002, noise=0.002, stability=0.000, tai=0
  remote        refid   st t when poll reach delay offset jitter
+ntp9.hda.hydro. .GPS.  1 u    2   16  377  0.625   0.023  0.006
-nontp1.hydroisp 136.15 2 u   34   64  377  1.523   0.560  0.287
+nontp2.hydroisp .GPS.  1 u   33   64  377  1.608   0.401  0.092
-nontp4.hydroisp 136.15 2 u   25   64  377  4.424  -0.212  0.975
-nontp5.hydroisp 163.34 2 u   20   64  377  4.446   0.292  1.751
-nontp8.hydroisp .GPS.  1 u    4   64  377  8.628   0.511  8.086
*GPS_NMEA(0)     .GPS.  0 l    3   16  377  0.000   0.010  0.002

I'm currently gathering clockstats info on the unit, my current
guesstimate would be something like ~5 us RMS time offset.

I used Garmin's SNSRCFG_280.exe program to setup the gps to work in NMEA
mode, sending out the most common time/position reports (including
GPRMC, which is preferred by the ntpd NMEA driver) once per second.

Using a spare USB plug as the power supply is a particularly nice
option, since any PC used as an ntpd server these days will have at
least one usch port available!


More information about the questions mailing list