= Rockwell Jupiter GPS receiver =

== Synopsis ==

["verse",subs="normal"]
Name: jupiter
Reference ID: GPS
Driver ID: JUPITER
Serial Port: +/dev/gps+__u__; 9600bps 8N1

== Deprecation warning ==

As of 2015 Rockwell Jupiter chips are no longer generally available
and have not been manufactured for many years; they will be found only
in remaindered and legacy equipment.

This refclock is deprecated and obsolete. The NTPsec maintainers plan
to remove it in a future release.  If you have a requirement for it,
please make this known to us.

== Description ==

This driver supports at least some models of the Rockwell Jupiter
GPS receivers (Jupiter 11, Jupiter-T), they must at least support the
_Zodiac Binary Protocol_.

Please see below for links to further information.

The driver requires a standard +PPS+ interface for the pulse-per-second
output from the receiver. The serial data stream alone does not provide
precision time stamps, whereas the PPS output is precise down to 40 ns
(1 sigma) for the Jupiter 11 and 25 ns (1 sigma) for Jupiter-T according
to the documentation. If you do not have the PPS signal available, then
you should probably not be using the Jupiter receiver as a time source.
This driver requires a +PPS+ signal and the time output from Jupiter
receivers is not predictable in +NMEA+ mode; the reported time can take
one second steps.

== Monitor Data ==

The driver always puts a lot of useful information on the clockstats
file, and when run with debugging can be quite chatty on stdout. When
first starting to use the driver you should definitely review the
information written to the clockstats file to verify that the driver is
running correctly.

== Driver Options ==

+time1+ 'time'::
   Specifies the time offset calibration factor, in seconds and fraction,
   with default 0.0.
+time2+ 'time'::
   Not used by this driver. Should be left at zero.
+stratum+ 'number'::
   Specifies the driver stratum, in decimal from 0 to 15, with default 0.
+refid+ 'string'::
   Specifies the driver reference identifier, an +ASCII+ string from one to
   four characters, with default +GPS+.
+flag1 {0 | 1}+::
   Not used by this driver.
+flag2 {0 | 1}+::
   Specifies the mobility of the +GPS+ receiver: 0 for walking (default), 1
   for driving.
+flag3 {0 | 1}+::
   Specifies the +PPS+ signal on-time edge: 0 for assert (default), 1 for
   clear.
+flag4 {0 | 1}+::
   Not used by this driver.
+subtype+::
   Not used by this driver.
+mode+::
   Not used by this driver.
+path+ 'filename'::
  Overrides the default device path.
+ppspath+ 'filename'::
  Not used by this driver.
+baud+ 'number'::
  Overrides the default baud rate.

== Configuration Example ==

----------------------------------------------------------------------------
refclock jupiter
----------------------------------------------------------------------------

== Additional Information ==

The driver was resurrected from a sorry state using the Windows NT port
and a Jupiter 11, and has since seen little testing on other platforms.
On Windows there exist a barrier though, as there is no publicly
available +PPSAPI+ implementation, at least not to my knowledge.
However, there has been one success report using Linux 2.4.20 and PPSkit
2.1.1.

The Jupiter receivers seem to have quite a few names. They are
referred to at least as Rockwell receivers, Navman receivers, Zodiac
receivers, Conexant receivers and (formerly) SiRF Technology receivers
(SiRF has since moved to selling a very successful line of
consumer-grade GPS chips based on its own designs). Rockwell seems to
be the original and most commonly used name.

Some more information may be available at:
http://www.ko4bb.com/manuals/index.php?dir=02_GPS_Timing/Rockwell_Jupiter/MiscJupiterDocs[Didier Juges KO4BB] and
http://www.gpskit.nl/documents/rockwell/jupiter-gps-board.pdf[GPSKit.nl]

=== Configuration ===

The edge of the PPS signal that is on-time can be set with +flag3+.
There is currently no way to cause the +PPS+ signal to control the
kernel +PLL+.

=== Performance ===

The performance is largely unexplored. I have achieved submillisecond
stability using a Jupiter 11, but the poor result is more than likely
due to the proprietary +PPSAPI+ implementation or Windows itself.

This driver does not handle leap seconds.

'''''

include::includes/footer.txt[]
