summaryrefslogtreecommitdiff
path: root/html/drivers
diff options
context:
space:
mode:
Diffstat (limited to 'html/drivers')
-rw-r--r--html/drivers/driver20.html204
-rw-r--r--html/drivers/driver29.html78
2 files changed, 222 insertions, 60 deletions
diff --git a/html/drivers/driver20.html b/html/drivers/driver20.html
index 6391e869359f..1c3ac782f768 100644
--- a/html/drivers/driver20.html
+++ b/html/drivers/driver20.html
@@ -1,7 +1,7 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head>
<meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1"><title>Generic NMEA GPS Receiver</title>
- <!-- Changed by: Harlan &, 31-Mar-2014 -->
+ <!-- Changed by: Pearly &, 04-Feb-2019 -->
<link href="scripts/style.css" type="text/css" rel="stylesheet">
<style type="text/css">
table.dlstable { font-size:85%; }
@@ -13,7 +13,7 @@
<body>
<h3>Generic NMEA GPS Receiver</h3>
<p>Last update:
- <!-- #BeginDate format:En2m -->31-Mar-2014 03:55<!-- #EndDate -->
+ <!-- #BeginDate format:En2m -->13-Jan-2020 07:12<!-- #EndDate -->
UTC</p>
<hr>
<h4>Synopsis</h4>
@@ -41,6 +41,9 @@
second insertion in UTC.&nbsp; To avoid problems mixing UTC and GPS
timescales, the driver disables processing of UTC sentences
once <tt>$GPZDG</tt> is received.
+ <br>
+ <strong>Caveat:</strong> Please see <a href="#talkerids">Talker
+ IDs</a> when using non-GPS or multi-system receivers.
</p>
<p>
The driver expects the receiver to be set up to transmit at least one
@@ -80,7 +83,14 @@
</tr><tr>
<td class="ttf">$GPZDG,GPSTIME,DD,MM,YYYY,AA.BB,V*CS&lt;cr&gt;&lt;lf&gt;</td>
<td>Accord</td>
- </tr>
+ </tr><tr>
+ </tr><tr>
+ <td class="ttf">$PGRMF,gpsWk,gpsTow,DATE,UTC,LEAPS,LAT,LAT_REF,LON,LON_REF,TYPE,MODE,SPD,HDOP,TDOP*CS&lt;cr&gt;&lt;lf&gt;</td>
+ <td>Garmin</td>
+ </tr><tr>
+ <td class="ttf">$PUBX,04,UTC,DATE,utcTow,utcWk,LEAPS,clkBias,clkDrift,tpGran,*CS&lt;cr&gt;&lt;lf&gt;</td>
+ <td>UBLOX</td>
+ </tr>
</tbody></table></p>
<p><table class="dlstable" border="1">
@@ -91,78 +101,96 @@
</tr>
<tr>
- <td class="ttf">UTC</td>
- <td>Time of day on UTC timescale. Hours, minutes and seconds [fraction (opt.)]. (hhmmss[.fff])</td>
+ <td class="ttf">ALT</td>
+ <td>Antenna Altitude</td>
</tr><tr>
- <td class="ttf">POS_STAT</td>
- <td>Position status. (A = Data valid, V = Data invalid)</td>
+ <td class="ttf">ALT_UNIT</td>
+ <td>Altitude Units (Metres/Feet)</td>
</tr><tr>
- <td class="ttf">LAT</td>
- <td>Latitude (llll.ll)</td>
+ <td class="ttf">DATE</td>
+ <td>Date (ddmmyy)</td>
</tr><tr>
- <td class="ttf">LAT_REF</td>
- <td>Latitude direction. (N = North, S = South)</td>
+ <td class="ttf">DD</td>
+ <td>Day of the month (1-31)</td>
</tr><tr>
- <td class="ttf">LON</td>
- <td>Longitude (yyyyy.yy)</td>
+ <td class="ttf">D_AGE</td>
+ <td>Age of last DGPS Fix</td>
</tr><tr>
- <td class="ttf">LON_REF</td>
- <td>Longitude direction (E = East, W = West)</td>
+ <td class="ttf">D_REF</td>
+ <td>Reference ID of DGPS station</td>
</tr><tr>
- <td class="ttf">SPD</td>
- <td>Speed over ground. (knots) (x.x)</td>
+ <td class="ttf">FIX_MODE</td>
+ <td>Position Fix Mode (0 = Invalid, &gt;0 = Valid)</td>
</tr><tr>
- <td class="ttf">HDG</td>
- <td>Heading/track made good (degrees True) (x.x)</td>
+ <td class="ttf">GEO</td>
+ <td>Geoid/Elipsoid separation</td>
</tr><tr>
- <td class="ttf">DATE</td>
- <td>Date (ddmmyy)</td>
+ <td class="ttf">GPSTIME</td>
+ <td>Time of day on GPS timescale. Hours, minutes and seconds [fraction (opt.)] (hhmmss[.f])</td>
</tr><tr>
- <td class="ttf">MAG_VAR</td>
- <td>Magnetic variation (degrees) (x.x)</td>
+ <td class="ttf">gpsTow</td>
+ <td>GPS week time, seconds since start of GPS week (0..604799)</td>
</tr><tr>
- <td class="ttf">MAG_REF</td>
- <td>Magnetic variation (E = East, W = West)</td>
+ <td class="ttf">gpsWk</td>
+ <td>Week number in the GPS time scale (may exceed 1024)</td>
</tr><tr>
- <td class="ttf">FIX_MODE</td>
- <td>Position Fix Mode (0 = Invalid, &gt;0 = Valid)</td>
+ <td class="ttf">G_UNIT</td>
+ <td>Geoid units (M/F)</td>
</tr><tr>
- <td class="ttf">SAT_USED</td>
- <td>Number of Satellites used in solution</td>
+ <td class="ttf">HDG</td>
+ <td>Heading/track made good (degrees True) (x.x)</td>
</tr><tr>
<td class="ttf">HDOP</td>
<td>Horizontal Dilution of Precision</td>
</tr><tr>
- <td class="ttf">ALT</td>
- <td>Antenna Altitude</td>
- </tr><tr>
- <td class="ttf">ALT_UNIT</td>
- <td>Altitude Units (Metres/Feet)</td>
+ <td class="ttf">LAT</td>
+ <td>Latitude (llll.ll)</td>
</tr><tr>
- <td class="ttf">GEO</td>
- <td>Geoid/Elipsoid separation</td>
+ <td class="ttf">LAT_REF</td>
+ <td>Latitude direction (N = North, S = South)</td>
</tr><tr>
- <td class="ttf">G_UNIT</td>
- <td>Geoid units (M/F)</td>
+ <td class="ttf">LEAPS</td>
+ <td>Leap seconds or difference between GPS time scale and UTC</td>
</tr><tr>
- <td class="ttf">D_AGE</td>
- <td>Age of last DGPS Fix</td>
+ <td class="ttf">LON</td>
+ <td>Longitude (yyyyy.yy)</td>
</tr><tr>
- <td class="ttf">D_REF</td>
- <td>Reference ID of DGPS station</td>
+ <td class="ttf">LON_REF</td>
+ <td>Longitude direction (E = East, W = West)</td>
</tr><tr>
- <td class="ttf">GPSTIME</td>
- <td>Time of day on GPS timescale. Hours, minutes and seconds [fraction (opt.)]. (hhmmss[.f])</td>
+ <td class="ttf">MAG_REF</td>
+ <td>Magnetic variation (E = East, W = West)</td>
</tr><tr>
- <td class="ttf">DD</td>
- <td>Day of the month (1-31)</td>
+ <td class="ttf">MAG_VAR</td>
+ <td>Magnetic variation (degrees) (x.x)</td>
</tr><tr>
<td class="ttf">MM</td>
<td>Month of the year (1-12)</td>
</tr><tr>
+ <td class="ttf">POS_STAT</td>
+ <td>Position status. (A = Data valid, V = Data invalid)</td>
+ </tr><tr>
+ <td class="ttf">SAT_USED</td>
+ <td>Number of Satellites used in solution</td>
+ </tr><tr>
+ <td class="ttf">SPD</td>
+ <td>Speed over ground. (knots) (x.x)</td>
+ </tr><tr>
+ <td class="ttf">UTC</td>
+ <td>Time of day on UTC timescale. Hours, minutes and seconds [fraction (opt.)] (hhmmss[.fff])</td>
+ </tr><tr>
<td class="ttf">YYYY</td>
<td>Year</td>
</tr><tr>
+ <td class="ttf">WEEK</td>
+ <td>GPS week (0-1023)</td>
+ </tr><tr>
+ <td class="ttf">WSEC</td>
+ <td>Seconds since start of week (0-604799)</td>
+ </tr><tr>
+ <td class="ttf">LEAP</td>
+ <td>GPS leap seconds, that is, seconds ahead of UTC</td>
+ </tr><tr>
<td class="ttf">AA.BB</td>
<td>Denotes the signal strength (should be &lt; 05.00)</td>
</tr><tr>
@@ -181,6 +209,36 @@
</tbody></table></p>
+ <h4><a name="talkerids"/>NMEA Talker IDs</h4>
+
+ <p>
+ GNSS receivers use a distinct talker ID for the GNSS they
+ process. Receivers capable of tracking different systems at the same time
+ can emit <tt>$GPRMC</tt> (GPS), <tt>$GLRMC</tt> (GLONASS),
+ <tt>$GARMC</tt> (Galileo), <tt>$GNRMC</tt> (generic/combined) and others
+ all in one data stream.
+ </p><p>
+ The driver supports this to a certain degree by ignoring the
+ talker ID on the standard sentences RMC, GLL, GGA, ZDA and ZDG. (It
+ possibly should not do that on the latter, but for now, that's the way
+ it is.) So whenever <tt>$GPRMC</tt> is mentioned in this document,
+ substitute any possible talker ID your receiver might emit -- it will
+ still match.
+ </p><p>
+ This approach has a drawback. It is easy to use for single-system
+ receivers, but it cannot separate the data streams for multi-system
+ receiver modules. It is therefore undefined which GNSS actually
+ provides the data, and this can lead to strange behavior. This is
+ especially true if the different GNSS provide very different signal
+ quality to the receiver; the driver is not able to cherry-pick the best
+ source and might actually end up in using the worst available. It is
+ therefore recommended to set up such a receiver to either use just a
+ single GNSS (which would defeat its purpose) or to emit only the
+ combined data, which usually has the <tt>GN</tt> talker ID defined by
+ the NMEA standard.
+ <p>
+
+
<h4>The 'mode' byte</h4>
<p>
@@ -202,7 +260,7 @@
<td align="center">0</td>
<td align="center">1</td>
<td align="center">1</td>
- <td>process <tt>$GPMRC</tt></td>
+ <td>process <tt>$GPRMC</tt></td>
</tr><tr>
<td align="center">1</td>
<td align="center">2</td>
@@ -259,9 +317,14 @@
<td align="center">0x100</td>
<td>process <tt>$PGRMF</tt></td>
</tr><tr>
- <td align="center">9-15</td>
+ <td align="center">9</td>
+ <td align="center">512</td>
+ <td align="center">0x200</td>
+ <td>process <tt>$PUBX,04</tt></td>
+ </tr><tr>
+ <td align="center">10-15</td>
<td align="center"></td>
- <td align="center">0xFE00</td>
+ <td align="center">0xFC00</td>
<td>reserved - leave 0</td>
</tr><tr>
<td align="center">16</td>
@@ -269,6 +332,24 @@
<td align="center">0x10000</td>
<td>Append extra statistics to the clockstats line.
Details below.</td>
+ </tr><tr>
+ <td align="center">17</td>
+ <td align="center">131072</td>
+ <td align="center">0x20000</td>
+ <td>"Silent PPS" mode. Use the PPS channel (if enabled with
+ fudge flag 1) to get precise receive time stamps.
+ Do <em>not</em> set the PPS flag in the clock status, so the
+ clock is not considered as PPS peer.
+ </td>
+ </tr><tr>
+ <td align="center">18</td>
+ <td align="center">262144</td>
+ <td align="center">0x40000</td>
+ <td>Trust the date delivered via NMEA. Do this only if
+ you <em>really</em> trust the receiver!
+ See <a href="#datetrust">below</a>. <strong>Caveat:</strong>
+ This (hitherto undocumented) bit has moved!
+ </td>
</tr>
</tbody></table>
@@ -291,7 +372,7 @@
</li></ul>
The driver uses 4800 bits per second by default, but faster bitrates can
be selected using bits 4 to 6 of the mode field.
- <p></p>
+ </p>
<p>
<strong>Caveat:</strong> Using higher line speeds does not necessarily
@@ -306,6 +387,29 @@
linespeed of 4800 bps or 9600 bps.
</p>
+ <h4><a name="datetrust"/>About distrusting NMEA date stamps</h4>
+ <p>
+ Trusting the calendar dates delivered via NMEA is a risky thing, and by
+ default these dates are handled with a huge dose of skepticism. Many
+ receivers deliver a correct calendar date for a period of just 1024 weeks,
+ with a starting point baked somewhere into their firmware. Beyond that,
+ they warp back to the begin of their era and simply provide wrong date
+ information. To battle this widely observed effect, the date delivered is
+ by default reduced to GPS time again and then (re-)mapped according to the
+ base date, either the implicit value or the value set via "tos basedate".
+ If the receiver can <em>really</em> be trusted to deliver the right date
+ (which is not impossible, just more expensive for the manufacturer), then
+ mode bit 18 can be used to bypass the era mapping. Setting this bit is
+ not needed under most circumstances, and setting it with an unreliable
+ receiver can have severe effects. Handle with care.
+ </p><p>
+ <strong>Note:</strong> This functionality was available for some time as
+ undocumented feature, with a different bit value. It was moved in the
+ process of becoming officially acknowledged to avoid excessive scattering
+ of the mode bit mask.
+ </p>
+
+
<h4>Monitor Data</h4>
<p>The last GPS sentence that is accepted or rejected is written to the
diff --git a/html/drivers/driver29.html b/html/drivers/driver29.html
index 4939d8012ce3..0a5659c7f7ab 100644
--- a/html/drivers/driver29.html
+++ b/html/drivers/driver29.html
@@ -11,7 +11,7 @@
<body bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
<h1><font size="+2">Trimble Palisade and Thunderbolt Receivers</font>
<p>Last update:
- <!-- #BeginDate format:En2m -->21-Oct-2010 23:44<!-- #EndDate -->
+ <!-- #BeginDate format:En2m -->13-Sep-2019 08:07<!-- #EndDate -->
UTC</p>
<hr>
</h1>
@@ -69,13 +69,28 @@
</td>
<td><b>9600 baud, 8-bits, 1-stop, no parity</b></td>
</tr>
+ <tr>
+ <td>
+ <div align="right">
+ <tt><font size="+1">Serial I/O (Copernicus II):</font></tt></div>
+ </td>
+ <td><b>38400 baud, 8-bits, 1-stop, no parity</b></td>
+ </tr>
</table>
<h2><font size="+1">Description</font></h2>
The <b>refclock_palisade</b> driver supports <a href="http://www.trimble.com/products/ntp">Trimble Navigation's Palisade Smart Antenna GPS receiver</a>.<br>
Additional software and information about the Palisade GPS is available from: <a href="http://www.trimble.com/oem/ntp">http://www.trimble.com/oem/ntp</a>.<br>
Latest NTP driver source, executables and documentation is maintained at: <a href="ftp://ftp.trimble.com/pub/ntp">ftp://ftp.trimble.com/pub/ntp</a>
- <p>This documentation describes version 7.12 of the GPS Firmware and version 2.46 (July 15, 1999) and later, of the driver source.<br>&nbsp;</p>
+ <p>This documentation describes version 7.12 of the GPS Firmware and version 2.46 (July 15, 1999) and later, of the driver source.</p>
<p>This documentation describes version 1 of the Thunderbolt Receiver Firmware, no tests have been made on further firmwares, please read "Notes on the Thunderbolt Receiver's Firmware" at the end of this documentation for more information.</p>
+ <p>This driver also supports the following receivers:</p>
+ <blockquote>
+ <p>Endrun Technologies Praecis NTP server with GPS</p>
+ <p>Trimble Acutime Gold smart antenna</p>
+ <p>Trimble Resolution family</p>
+ <p>Trimble ACE III</p>
+ <p>Trimble Copernicus II</p>
+ </blockquote>
<h2><font size="+1">Operating System Compatibility</font></h2>
The Palisade driver has been tested on the following software and hardware platforms:<br>&nbsp;
<center>
@@ -118,7 +133,7 @@
</tr>
</table>
</center><P>
- <b>Attention</b>: Thunderbolt Receiver has not being tested on the previous software and hardware plataforms.
+ <b>Attention</b>: Other receiver types have not being tested on the previous software and hardware plataforms.
<h2><font size="+1">GPS Receiver</font></h2>
The Palisade GPS receiver is an 8-channel smart antenna, housing the GPS receiver, antenna and interface in a single unit, and is designed for rooftop deployment in static timing applications.
<p>Palisade generates a PPS synchronized to UTC within +/- 100 ns.&nbsp; The Palisade's external event input with 40 nanosecond resolution is utilized by the Palisade NTP driver for asynchronous precision time transfer.</p>
@@ -232,7 +247,41 @@
<tt># and set flag2 to turn off event polling.</tt><br>
<tt><a href="#flag2">fudge 127.127.29.0 flag2 1</a></tt><br>
<tt>#------------------------------------------------------------------------------</tt><br>&nbsp;</p>
- Currently the Thunderbolt mode doesn't support event polling, the reasons are explained on the "Notes on the Thunderbolt Receiver's Firmware" section at the end of this documentation.
+
+ <h4>Resolution NTP Configuration file</h4>
+ <tt>#------------------------------------------------------------------------------</tt>
+ <p>Configuration without event polling:<br>
+ <tt>#------------------------------------------------------------------------------</tt><br>
+ <tt># The Primary reference</tt><br>
+ <tt>server 127.127.29.0 mode 5 # Trimble Resolution GPS (Stratum 1).</tt><br>
+ <tt># Set packet delay</tt><br>
+ <tt><a href="#time1">fudge 127.127.29.0 time1 0.410</a></tt><br>
+ <tt># and set flag2 to turn off event polling.</tt><br>
+ <tt><a href="#flag2">fudge 127.127.29.0 flag2 1</a></tt><br>
+ <tt>#------------------------------------------------------------------------------</tt><br>&nbsp;</p>
+
+ <h4>ACE III NTP Configuration file</h4>
+ <tt>#------------------------------------------------------------------------------</tt>
+ <p>Configuration with event polling:<br>
+ <tt>#------------------------------------------------------------------------------</tt><br>
+ <tt># The Primary reference</tt><br>
+ <tt>server 127.127.29.0 mode 6 # Trimble ACE III GPS (Stratum 1).</tt><br>
+ <tt># Set packet delay</tt><br>
+ <tt><a href="#time1">fudge 127.127.29.0 time1 0.720</a></tt><br>
+ <tt>#------------------------------------------------------------------------------</tt><br>&nbsp;</p>
+
+ <h4>Copernicus II NTP Configuration file</h4>
+ <tt>#------------------------------------------------------------------------------</tt>
+ <p>Configuration without event polling:<br>
+ <tt>#------------------------------------------------------------------------------</tt><br>
+ <tt># The Primary reference</tt><br>
+ <tt>server 127.127.29.0 mode 7 # Trimble Copernicus II GPS (Stratum 1).</tt><br>
+ <tt># Set packet delay</tt><br>
+ <tt><a href="#time1">fudge 127.127.29.0 time1 0.240</a></tt><br>
+ <tt># and set flag2 to turn off event polling.</tt><br>
+ <tt><a href="#flag2">fudge 127.127.29.0 flag2 1</a></tt><br>
+ <tt>#------------------------------------------------------------------------------</tt><br>&nbsp;</p>
+ Currently the Thunderbolt mode doesn't support event polling, the reasons are explained on the "Notes on the Thunderbolt Receiver's Firmware" section at the end of this documentation. The Resolution and Copernicus II modes require event polling to be disabled whereas the ACE III requires polling to be enabled.
<h2><a name="TimeTransfer"></a><font size="+1">Time Transfer and Polling</font></h2>
Time transfer to the NTP host is performed via the Palisade's comprehensive time packet output. The time packets are output once per second, and whenever an event timestamp is requested.
<p>The driver requests an event time stamp at the end of each polling interval, by pulsing the RTS (request to send) line on the serial port. The Palisade GPS responds with a time stamped event packet.</p>
@@ -269,7 +318,16 @@
<h2><font size="+1">Mode Parameter</font></h2>
<dl>
<dt><tt><font size="+1">mode <i>number</i></font></tt>
- <dd>The mode parameter to the server command specifies the specific hardware this driver is for. The default is 0 for a normal Trimble Palisade. The other options are <b>1</b> for an <b>Endrun Praecis</b> in Trimble emulation mode, and <b>2</b> for the <b>Trimble Thunderbolt</b> GPS Disciplined Clock Receiver.
+ <dd>
+ The mode parameter to the server command specifies the specific hardware this driver is for. The default is 0 for a normal Trimble Palisade. The other options are:
+ <blockquote>
+ <p><b>1</b> for an <b>Endrun Praecis</b> in Trimble emulation mode</p>
+ <p><b>2</b> for the <b>Trimble Thunderbolt</b> GPS Disciplined Clock Receiver</p>
+ <p><b>3</b> for the <b>Acutime Gold</b> smart antenna</p>
+ <p><b>5</b> for <b>Trimble Resolution</b> devices</p>
+ <p><b>6</b> for the <b>Trimble ACE III</b> board</p>
+ <p><b>7</b> for the <b>Trimble Copernicus II</b> device</p>
+ </blockquote>
</dl>
<h2><font size="+1">DEFINEs</font></h2>
The following constants are defined in the driver source code. These defines may be modified to improve performance or adapt to new operating systems.<br>&nbsp;
@@ -291,16 +349,16 @@
<td>1 microsecond</td>
</tr>
<tr>
- <td>CURRENT_UTC</td>
- <td>Valid GPS - UTC offset</td>
- <td>13</td>
- </tr>
- <tr>
<td>SPEED232</td>
<td>Host RS-232 baud rate</td>
<td>B9600</td>
</tr>
<tr>
+ <td>SPEED232COP</td>
+ <td>Host RS-232 baud rate (Copernicus II mode)</td>
+ <td>B38400</td>
+ </tr>
+ <tr>
<td>TRMB_MINPOLL&nbsp;</td>
<td>Minimum polling interval</td>
<td>5 (32 seconds)</td>