summaryrefslogtreecommitdiff
path: root/www/references.html
blob: d2113673f09357ee5814226b1478a3a321b48226 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
<html>
<head>
   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
   <meta name="Description" content="Programmer's references for GPSD">
   <meta name="Keywords" content="GPS, translator, GIS">
   <title>Reference links on GPS technology</title>
   <link rel="stylesheet" href="main.css" type="text/css"/>
</head>
<body>

<div id="Header">Programmer's References</div>

<div id="Menu">
    <img src="gpsd-logo-small.png"/><br />
    <a href="index.html">Home</a><br/>
    <a href="index.html#news">News</a><br/>
    <a href="index.html#downloads">Downloads</a><br/>
    <a href="index.html#mailing-lists">Mailing lists</a><br/>
    <a href="index.html#documentation">Documentation</a><br/>
    <a href="faq.html">FAQ</a><br/>
    <a href="xgps-sample.html">Screenshots</a><br/>
    <a href="index.html#recipes">Recipes</a><br/>
    <a href="index.html#others">Other GPSDs</a><br/>
    <a href="hardware.html">Hardware References</a><br/>
    <a href="history.html">History</a><br/>

    <a href='http://www.catb.org/hacker-emblem/'><img
    src='http://www.catb.org/hacker-emblem/glider.png'
    alt='hacker emblem' /></a><br />

    <a href="http://validator.w3.org/check/referer"><img
          src="http://www.w3.org/Icons/valid-xhtml10"
          alt="Valid XHTML 1.0!" height="31" width="88" /></a>
</div>
<div id="Content">

<p>This page lists both onsite and offsite resources for programmers
trying to understand GPS technology.</p>

<p>In the descriptions below, the adjective "evil" applied to the
distribution terms of a standard or technical specification means that
(a) it is not available for free download, and (b) it cannot legally
be redistributed.  The phrase "extremely evil" means that not only are
the distribution terms evil, but that attack lawyers for the document
publisher have been known to threaten people who quote it on the
Web.</p>

<h1>GPS standards</h1>

<dl>
<dt><a href='http://www.nmea.org/pub/0183/'>NMEA 0183</a></dt>
<dd>This is the official standard from the National Maritime
Electronics Association describing how GPSes are supposed to
report to computers over a serial or USB link.  The distribution terms
are extremely evil.  Consequently, nobody on the GPSD project has ever
looked at it.</dd>

<dt><a href='NMEA.txt'>NMEA sentences</a></dt>
<dd>Because the NMEA 0183 standard itself is evil, the GPSD project has
collated comprehensive information on the prescriptions of that
standard from various Web resources written by people who have read it
and/or studied the behavior of GPSes claiming to conform to it.  This
is the result.</dd>

<dt><a href="http://www.gpsinformation.org/dale/nmea.htm">NMEA data</a></dt>
<dd>This is one of the sources for the above. Includes some 
information on vendor-specific quirks that we don't.</dd>

<dt><a href='IS-GPS-200D.pdf'>Navstar Global Positioning Interface
Specification</a></dt>
<dd>This is the official specification for interpreting radio
transmission from GPS satellites. You do not need to read this 
unless you are trying to make sense of the raw 50BPS subframe 
data.  Be warned: though this specification is not evil, it 
is complex and nasty.</dd>

<dt><a
href='https://ssl29.pair.com/dmarkle/puborder.php?show=3'>RTCM Recommended
Standards for Differential GNSS</a></dt> 
<dd>This is the official RTCM SC-104 standard. The distribution terms
are evil, and probably as with NMEA 0183 enforced by rabid lawyers. At
least one of the GPSD project members has purchased an official copy,
so we do have full details of the message format.</dd>

<dt><a
href='http://www.itu.int/rec/recommendation.asp?type=items&amp;lang=e&amp;parent=r-rec-m.823-2-199710-i'>ITU-R M.823-2</a></dt> 
<dd>This specification documents some of the murky depths of
rtcm-104, the specification used for broadcasting differential-gps 
corrections. Unfortunately, its distribution terms are also evil.</dd>

<dt><a href='http://igs.ifag.de/index_ntrip.htm'>Ntrip home page</a></dt>
<dd>NTRIP is a protocol for shipping DGPS corrections that uses HTTP
as a transport layer. The distribution terms for the NTRIP standard
are evil, but a stripped down version of the document is freely
available on the home page. Verion 1.0 of the standard is poorly
written, confusing and leaves too much open to the interpretation of
the implementor. With the help of examples in the official standard,
missing in the online version, and the C and Perl reference
implementations, it is however possible to develop a working Ntrip
client.</dd>

<dt><a href='http://www.topografix.com/gpx.asp'>GPX Exchange Format</a></dt>
<dd>GPX (the GPS Exchange Format) is a light-weight XML data format
for the interchange of GPS data (waypoints, routes, and tracks)
between applications and Web services on the Internet.</dd>
</dl>

<h1>Vendor protocols</h1>

<p>Due to the inadequacies of NMEA, GPS chipset vendors have invented
NMEA extensions or their own more tightly-designed reporting formats.
This is a collection of descriptions of them.  Many of these have
already been used in the implementation of <code>gpsd</code>; others
may be used in the future.  Some are theoretically evil, but in
practice the vendors don't care.</p>

<dl>
<dt><a href='sirf_binary.pdf'>SiRF Binary Protocol Reference Manual</a></dt>
<dd>The binary protocol for the chip used by over 80% of consumer-grade
GPSes in 2005.</dd>

<dt><a href='sirf_protocol.pdf'>SiRF GPS Protocol Reference Manual</a></dt>
<dd>This what SiRF gives OEMs as a reference for SiRF's NMEA 0183
extensions. Notably, it describes the commands for switching to SiRF
binary mode.</dd>

<dt><a href='uBlox.pdf'>u-blox extension to SiRF binary protocol</a></dt>
<dd>uBlox was an OEM-enhanced firmware variant of the SiRF-I chip.
<code>gpsd</code> supports it.  It's obsolete.</dd>

<dt><a
href='http://www.linkwave.co.uk/assets/GPS.G2-X-01003-E1.pdf'>TIM GPS
Receiver Macro-Component (offsite link)</a></dt>
<dd> Describes the SiRFstarII chipset used by uBlox and some others.
<code>gpsd</code> supports it. While obsolete, this file documents certain
aspects of the protocol that SiRF has removed from current versions of the
protocol documentation.</dd>

<dt><a
href='http://www.garmin.com/manuals/GPS17N_GPS16_17NSeriesTechnicalSpecification.pdf'>
GPS 16/17 Series Technical Specification (offsite link)</a></dt>
<dd>A manual for the 16 and 17 series of Garmin serial GPSes.  These
don't use Garmin binary protocol, but rather an enhanced
NMEA. <code>gpsd</code> supports it.</dd>

<dt><a href='zodiac.pdf'>Zodiac Serial Data Interface Specification</a></dt>
<dd>Describes the binary protocol used by Rockwell Zodiac chipsets.
Supported by <code>gpsd</code>.  Now obsolete.</dd>

<dt><a href='garmin-binary.pdf'>GARMIN GPS Interface Specification</a></dt> 
<dd>The binary protocol used by Garmin USB GPSes. Supported by
<code>gpsd</code>.</dd>

<dt><a href='cxd2951-commands.pdf'>CXD2951 Communication Command Specification</a></dt>
<dd>Describes the extension command set supported by the Sony GPS
CXD2951 chipset. Supported by <code>gpsd</code>.</dd>

<dt><a href='fastrax.pdf'>NMEA Protocol Specification for iTrax02
Evaluation Kit</a></dt> <dd>Describes the NMEA extensions for the
iTrax chipset used by Fastrax GPSes, including the commands to switch
to binary iTalk mode. Not yet supported by <code>gpsd</code> but work
is in progress.</dd>

<dt><a href='iTalk.pdf'>iTALK protocol specification</a></dt>
<dd>Describes the binary protocol for the iTrax chipset used by
Fastrax GPSes. Not yet supported by <code>gpsd</code> but work is in
progress.</dd>

<dt><a href='fv-18_manual.pdf'>FV18 user manual</a></dt>
<dd>Describes NMEA extensions supported by the San Jose Navigation
FV-18 GPS chipset. Supported by <code>gpsd</code>.</dd>

<dt><a href='GPS-210-Manual-E.pdf'>Holux GM-210 GPS Receiver User's
Guide</a></dt>
<dd>Describes NMEA as emitted by the Holux GM210.  This is a very
generic NMEA GPS.   Supported by <code>gpsd</code>.</dd>

<dt><a href='EverMoreBinC.pdf.gz'>GM-X205 GPS Receiver Module User's
Guide</a></dt> <dd>Describes the binary protocol emitted by EverMore
GM-X205 GPS chipset. Not yet supported by <code>gpsd</code> but work
is in progress.</dd>

<dt><a href='garmin_simpletext.txt'>Garmin Simple Text Protocol</a></dt>
<dd>Some digital cameras are alleged to use this very simple textual
report format.  Not yet supported by <code>gpsd</code>.</dd>
</dl>

<h1>Other</h1>

<dl>
<dt><a href='XYZ-NED.pdf'>ECEF-to-Geodetic C Code</a></dt>
<dd>Sample C code for conversion from the Earth Centered-Earth Fixed
coordinates reported by many vendor binary protocols to ordinary
geodetic coordinates.</dd>

<dt><a href="http://williams.best.vwh.net/avform.htm">Aviation Formulary</a></dt>
<dd>Compendium of formulas related to geodetic navigation, with examples.</dd>
</dl>

</div>
<hr/>
<script language="JavaScript" src="datestamp.js" type='text/javascript'></script>
</body>
</html>

<!--
Local Variables:
compile-command: "(scp references.html esr@shell.berlios.de:/home/groups/gpsd/htdocs)"
End:
-->