Subject: Re: supported GPS time receivers for NTP service?
To: Alicia da Conceicao <alicia@engine.ca>
From: Greg Troxel <gdt@ir.bbn.com>
List: port-i386
Date: 12/20/2004 09:20:12
  1) Does NetBSD support any type of GPS receiver with a PPS feed?

I'm using a TrueTime XL-DC with NetBSD/sparc 1.6ish, and so far (been
doing this for 7 years or so) only have hooked it up over serial.
There is probably a ms or so of fuzz from this, but since I use it to
supply time to others over the net, and my requirements aren't that
strict it is ok.

See src/sys/dev/ic/com.c in 2.0; PPS support appears to be there.
It's not clear to me how complete it is, or how well it works.

  2) If (1) is yes, can any of these be set up so that the time received
          on these units be phased locked with an NTP service on NetBSD?

Typical navigation-type GPS receivers (e.g Garmin GPS V) will output
NMEA sentences on the serial line, but these are said not to be
well-aligned with GPS time.   I think it's a case of an internal loop
that drives the output.  Obviously they have to have precise time
inside, but there's no requirement to couple that to the scheduler.

  There are also very inexpensive GPS receiver modules with a PPS feed,

One can also buy "development kits" for these chipsets.  I bought a
Canadian Marconi Superstart devkit for about $600 that was basically
the chip in a fairly nice plastic box with switches and connectors and
a TTL pps output, along with an antenna, wall wart, lighter plug
cable, and documentation.  This is a 12-channel L1-only receiver that
outputs carrier phase as well as pseudoranges and navigation
solutions.

If the franklin has a pps output, and you are willing to use something
else to get the seconds, there is no reason that won't work, other
than it's more stuff to buy/fit/break.

  http://www.franklinclock.com/gps.htm

They claim NMEA 0183 output.  ntpd should be able to cope with that
for numbering the seconds.  I don't know how they wire up PPS (docs
don't claim this), but I think kernel pps support expects it on DCD.
The output is said to be sirf or nmea; sirf is a common chipset.

for some probably-useful history, see

  http://www.eecis.udel.edu/~mills/ntp/html/pps.html
  http://www.eecis.udel.edu/~mills/ntp/html/ldisc.html
 
-- 
        Greg Troxel <gdt@ir.bbn.com>