xref: /freebsd/contrib/ntp/html/drivers/driver20.html (revision 9c2daa00c2315f101948c7144d62af5d5fb515cf)
19c2daa00SOllivier Robert<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
29c2daa00SOllivier Robert
39c2daa00SOllivier Robert<html>
49c2daa00SOllivier Robert
59c2daa00SOllivier Robert    <head>
69c2daa00SOllivier Robert        <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
79c2daa00SOllivier Robert        <meta name="GENERATOR" content="Mozilla/4.76 [en] (X11; U; Linux 2.2.16-22 i586) [Netscape]">
89c2daa00SOllivier Robert        <title>Generic NMEA GPS Receiver</title>
99c2daa00SOllivier Robert        <link href="../scripts/style.css" type="text/css" rel="stylesheet">
109c2daa00SOllivier Robert    </head>
119c2daa00SOllivier Robert
129c2daa00SOllivier Robert    <body>
139c2daa00SOllivier Robert        <h3>Generic NMEA GPS Receiver</h3>
149c2daa00SOllivier Robert        <hr>
159c2daa00SOllivier Robert        <h4>Synopsis</h4>
169c2daa00SOllivier Robert        <p>Address: 127.127.20.<i>u</i><br>
179c2daa00SOllivier Robert            Reference ID: <tt>GPS</tt><br>
189c2daa00SOllivier Robert            Driver ID: <tt>GPS_NMEA</tt><br>
199c2daa00SOllivier Robert            Serial Port: <tt>/dev/gps<i>u</i></tt>; 4800 baud, 8-bits, no parity<br>
209c2daa00SOllivier Robert            Features: <tt>tty_clk</tt></p>
219c2daa00SOllivier Robert        <h4>Description</h4>
229c2daa00SOllivier Robert        <p>This driver supports GPS receivers with the <tt>$GPRMC</tt> NMEA output string by default.&nbsp; Alternately the <tt>$GPGGA</tt> or <tt>$GPGLL </tt>may be selected.</p>
239c2daa00SOllivier Robert        <p>The driver expects the receiver to be set up to transmit a <tt>$GPRMC</tt> message every second.</p>
249c2daa00SOllivier Robert        <p>The accuracy depend on the receiver used. Inexpesive GPS models are available with a claimed PPS signal accuracy of 1 <font face="Symbol">m</font>s or better relative to the broadcast signal. However, in most cases the actual accuracy is limited by the precision of the timecode and the latencies of the serial interface and operating system.</p>
259c2daa00SOllivier Robert        <p>If the Operating System supports the PPSAPI, RFC-2783, it will be used.<br>
269c2daa00SOllivier Robert            &nbsp;</p>
279c2daa00SOllivier Robert        <p>The various GPS sentences that this driver recognises look like this:<br>
289c2daa00SOllivier Robert            (others quietly ignored)</p>
299c2daa00SOllivier Robert        <pre><tt>$GPRMC,POS_UTC,POS_STAT,LAT,LAT_REF,LON,LON_REF,SPD,HDG,DATE,MAG_VAR,MAG_REF*CC&lt;cr&gt;&lt;lf&gt;
309c2daa00SOllivier Robert$GPGLL,LAT,LAT_REF,LONG,LONG_REF,POS_UTC,POS_STAT*CC&lt;cr&gt;&lt;lf&gt;
319c2daa00SOllivier Robert$GPGGA,POS_UTC,LAT,LAT_REF,LONG,LONG_REF,FIX_MODE,SAT_USED,HDOP,ALT,ALT_UNIT,GEO,G_UNIT,D_AGE,D_REF*CC&lt;cr&gt;&lt;lf&gt;
329c2daa00SOllivier Robert
339c2daa00SOllivier Robert&nbsp; POS_UTC&nbsp; - UTC of position. Hours, minutes and seconds [fraction (opt.)]. (hhmmss[.fff])
349c2daa00SOllivier Robert&nbsp; POS_STAT - Position status. (A = Data valid, V = Data invalid)
359c2daa00SOllivier Robert&nbsp; LAT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; - Latitude (llll.ll)
369c2daa00SOllivier Robert&nbsp; LAT_REF&nbsp; - Latitude direction. (N = North, S = South)
379c2daa00SOllivier Robert&nbsp; LON&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; - Longitude (yyyyy.yy)
389c2daa00SOllivier Robert&nbsp; LON_REF&nbsp; - Longitude direction (E = East, W = West)
399c2daa00SOllivier Robert&nbsp; SPD&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; - Speed over ground. (knots) (x.x)
409c2daa00SOllivier Robert&nbsp; HDG&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; - Heading/track made good (degrees True) (x.x)
419c2daa00SOllivier Robert&nbsp; DATE&nbsp;&nbsp;&nbsp;&nbsp; - Date (ddmmyy)
429c2daa00SOllivier Robert&nbsp; MAG_VAR&nbsp; - Magnetic variation (degrees) (x.x)
439c2daa00SOllivier Robert&nbsp; MAG_REF&nbsp; - Magnetic variation (E = East, W = West)
449c2daa00SOllivier Robert&nbsp; FIX_MODE - Position Fix Mode ( 0 = Invalid, &gt;0 = Valid)
459c2daa00SOllivier Robert&nbsp; SAT_USED - Number Satellites used in solution
469c2daa00SOllivier Robert&nbsp; HDOP&nbsp;&nbsp;&nbsp;&nbsp; - Horizontal Dilution of Precision
479c2daa00SOllivier Robert&nbsp; ALT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; - Antenna Altitude
489c2daa00SOllivier Robert&nbsp; ALT_UNIT - Altitude Units (Metres/Feet)
499c2daa00SOllivier Robert&nbsp; GEO&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; - Geoid/Elipsoid separation
509c2daa00SOllivier Robert&nbsp; G_UNIT&nbsp;&nbsp; - Geoid units (M/F)
519c2daa00SOllivier Robert&nbsp; D_AGE&nbsp;&nbsp;&nbsp; - Age of last DGPS Fix
529c2daa00SOllivier Robert&nbsp; D_REF&nbsp;&nbsp;&nbsp; - Reference ID of DGPS station
539c2daa00SOllivier Robert&nbsp; CC&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; - Checksum (optional)
549c2daa00SOllivier Robert&nbsp; &lt;cr&gt;&lt;lf&gt; - Sentence terminator.</tt></pre>
559c2daa00SOllivier Robert        Alternate GPS sentences (other than <tt>$GPRMC</tt> - the default) may be enabled by setting the relevent bits of 'mode' in the server configuration line<br>
569c2daa00SOllivier Robert        &nbsp;* server 127.127.20.x mode X<br>
579c2daa00SOllivier Robert        &nbsp;&nbsp;&nbsp; bit 0 - enables RMC&nbsp;&nbsp;&nbsp; ( value = 1)<br>
589c2daa00SOllivier Robert        &nbsp;&nbsp;&nbsp; bit 1 - enables GGA&nbsp;&nbsp;&nbsp; ( value = 2)<br>
599c2daa00SOllivier Robert        &nbsp;&nbsp;&nbsp; bit 2 - enables GLL&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ( value = 4)<br>
609c2daa00SOllivier Robert        multiple sentences may be selected<br>
619c2daa00SOllivier Robert        <p>The driver will send a <tt>$PMOTG,RMC,0000*1D&lt;cr&gt;&lt;lf&gt;</tt> message each time a <tt>$GPRMC</tt> string is needed. This is not needed on most GPS receivers because they automatically send the <tt>$GPRMC</tt> string every second and will only work on GPS receivers that understand the <tt>$PMOTG</tt> string. Others will just ignore it.</p>
629c2daa00SOllivier Robert        <h4>Setting up the Garmin GPS-25XL</h4>
639c2daa00SOllivier Robert        Switch off all output with by sending it the following string.
649c2daa00SOllivier Robert        <pre>&quot;$PGRMO,,2&lt;cr&gt;&lt;lf&gt;&quot;</pre>
659c2daa00SOllivier Robert        <p>Now switch only $GPRMC on by sending it the following string.</p>
669c2daa00SOllivier Robert        <pre>&quot;$PGRMO,GPRMC,1&lt;cr&gt;&lt;lf&gt;&quot;</pre>
679c2daa00SOllivier Robert        <p>On some systems the PPS signal isn't switched on by default. It can be switched on by sending the following string.</p>
689c2daa00SOllivier Robert        <pre>&quot;$PGRMC,,,,,,,,,,,,2&lt;cr&gt;&lt;lf&gt;&quot;</pre>
699c2daa00SOllivier Robert        <h4>Monitor Data</h4>
709c2daa00SOllivier Robert        <p>The GPS sentence(s) that is used is written to the clockstats file.</p>
719c2daa00SOllivier Robert        <h4>Fudge Factors</h4>
729c2daa00SOllivier Robert        <dl>
739c2daa00SOllivier Robert            <dt><tt>time1 <i>time</i></tt>
749c2daa00SOllivier Robert            <dd>Specifies the time offset calibration factor, in seconds and fraction, with default 0.0.
759c2daa00SOllivier Robert            <dt><tt>time2 <i>time</i></tt>
769c2daa00SOllivier Robert            <dd>Not used by this driver.
779c2daa00SOllivier Robert            <dt><tt>stratum <i>number</i></tt>
789c2daa00SOllivier Robert            <dd>Specifies the driver stratum, in decimal from 0 to 15, with default 0.
799c2daa00SOllivier Robert            <dt><tt>refid <i>string</i></tt>
809c2daa00SOllivier Robert            <dd>Specifies the driver reference identifier, an ASCII string from one to four characters, with default <tt>GPS</tt>.
819c2daa00SOllivier Robert            <dt><tt>flag1 0 | 1</tt>
829c2daa00SOllivier Robert            <dd>Not used by this driver.
839c2daa00SOllivier Robert            <dt><tt>flag2 0 | 1</tt>
849c2daa00SOllivier Robert            <dd>Specifies the PPS signal on-time edge: 0 for assert (default), 1 for clear.
859c2daa00SOllivier Robert            <dt><tt>flag3 0 | 1</tt>
869c2daa00SOllivier Robert            <dd>Controls the kernel PPS discipline: 0 for disable (default), 1 for enable.
879c2daa00SOllivier Robert            <dt><tt>flag4 0 | 1</tt>
889c2daa00SOllivier Robert            <dd>Not used by this driver.
899c2daa00SOllivier Robert        </dl>
909c2daa00SOllivier Robert        <p>Additional Information</p>
919c2daa00SOllivier Robert        <p><a href="../refclock.html">Reference Clock Drivers</a></p>
929c2daa00SOllivier Robert        <hr>
939c2daa00SOllivier Robert        <script type="text/javascript" language="javascript" src="../scripts/footer.txt"></script>
949c2daa00SOllivier Robert    </body>
959c2daa00SOllivier Robert
969c2daa00SOllivier Robert</html>