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
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
|
<!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="Author" content="Remco Treffkorn">
<meta name="Description" content="gpsd is a utility that can listen to a GPS or Loran Receiver and re-publish the positional data in a simpler format.">
<meta name="Keywords" content="GPS, translator, GIS">
<!-- the following is a verification tag for Google Analytics -->
<meta name="verify-v1" content="kb4f3qxJPMaOltYTpJHnvbnteza1PHO4EhrRIfcq2gk=" />
<title>GPSd — Put your GPS on the net!</title>
<link rel="stylesheet" href="main.css" type="text/css"/>
</head>
<body>
<div id="Header">
<code>gpsd</code> — a GPS service daemon
</div>
<div id="Menu">
<img src="gpsd-logo-small.png"/><br />
Home<br/>
<a href="#news">News</a><br/>
<a href="#downloads">Downloads</a><br/>
<a href="#mailing-lists">Mailing lists</a><br/>
<a href="#documentation">Documentation</a><br/>
<a href="faq.html">FAQ</a><br/>
<a href="xgps-sample.html">Screenshots</a><br/>
<a href="#recipes">Recipes</a><br/>
<a href="#others">Other GPSDs</a><br/>
<a href="hardware.html">Hardware</a><br/>
<a href="for-vendors.html">For GPS Vendors</a><br/>
<a href="wishlist.html">Wish List</a><br/>
<a href="hall-of-shame.html">Hall of Shame</a><br/>
<a href="hacking.html">Hacker's Guide</a><br/>
<a href="references.html">References</a><br/>
<a href="compatibility">Application Compatibility</a>
<a href="history.html">History</a><br/>
<div> </div>
<a href='http://www.catb.org/hacker-emblem/'><img
src='http://www.catb.org/hacker-emblem/glider.png'
alt='hacker emblem' /></a><br />
<hr/>
<script type="text/javascript"><!--
google_ad_client = "pub-1458586455084261";
google_ad_width = 160;
google_ad_height = 600;
google_ad_format = "160x600_as";
google_ad_type = "text";
google_ad_channel = "";
//--></script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>
<hr/>
<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">
<h1>About <code>gpsd</code></h1>
<p><code>gpsd</code> is a service daemon that monitors one or more
GPSes or AIS receivers attached to a host computer through serial or
USB ports, making all data on the location/course/velocity of the
sensors available to be queried on TCP port 2947 of the host computer.
With <code>gpsd</code>, multiple location-aware client applications (such as
navigational and wardriving software) can share access to receivers
without contention or loss of data. Also, <code>gpsd</code> responds
to queries with a format that is substantially easier to parse than
the NMEA 0183 emitted by most GPSes. The <code>gpsd</code>
distribution includes a linkable C service library, a C++ wrapper
class, and a Python module that developers of <code>gpsd</code>-aware
applications can use to encapsulate all communication with
<code>gpsd</code>.</para>
<p>Besides <code>gpsd</code> itself, the project provides auxiliary
tools for diagnostic monitoring and profiling of receivers and feeding
location-aware applications GPS/AIS logs for diagnostic purposes.</p>
<p>The goal of the <code>gpsd</code> project is to create a solid
layer of open-source infrastructure for programs running under Linux
and other open-source Unixes that want to be location-sensitive. We
aim for simple, robust interfaces, unfussy operation, and an easy
learning curve for application developers. Applications that
presently use <code>gpsd</code> include <a
href="http://www.pygps.org">pyGPS</a>, <a
href="http://www.kismetwireless.net/">Kismet</a>, <a
href="http://www.gpsdrive.de/">GPSdrive</a>, <a
href="http://qpegps.sourceforge.net/">gpeGPS</a>, <a
href="http://www.gnustep.it/enrico/position/">position</a>, <a
href="http://roadmap.digitalomaha.net/index.html">roadmap</a>, <a
href="http://roadnav.sourceforge.net/">roadnav</a>, <a
href="http://www.navit-project.org/">navit</a>, <a
href="http://viking.sf.net">viking</a>,
and <a href="http://gaia.serezhkin.com/">gaia</a>.</p>
<p>Under Linux, <code>gpsd</code> normally runs with zero
configuration. Binary packages for this program install hotplug
scripts that do the right thing when a USB device goes active,
launching <code>gpsd</code> if needed and telling <code>gpsd</code>
which device to read data from. Then, <code>gpsd</code> deduces a
baud rate and GPS/AIS type by looking at the data stream.</p>
<p><code>gpsd</code> is high-quality, carefully-audited code. It is
regularly checked with the standard mode of <a
href='http://www.splint.org'>splint</a>, audited with <a
href='http://valgrind.org/'>Valgrind</a>, and an extensive
regression-test suite is used to check correct behavior before each
release. This care has paid off in an exceptionally low defect rate;
our first <a href='http://coverity.com'>Coverity</a> scan, in March
2007, turned up only two errors in over 22,000 LLOC.</p>
<p>Statistics about the code volume, commit history, and contributors
associated with thias project are <a
href="https://www.ohloh.net/p/3944">available at Ohloh</a></p>
<p>Our development platforms are open-source Unixes — Linux, and
the *BSD family. Presently Linux and OpenBSD are directly supported.
We'll support proprietary Unixes if it's not too much work (and it
usually isn't). Apple's OS X is back in our good books, but it is
criticial that you have all your USB drivers updated. Older drivers
are buggy and prevent gpsd from being able to read from usb-serial
devices.</p>
<p>No, we don't support Windows — get a better operating system.</p>
<p>If you represent a GPS manufacturer interested in qualifying your
device for use with Linux and other open-source operating systems,
we are your contact point. We'll need (1) on-line access to interface
documentation, (2) a few (as in, no more than three) eval units. and (3)
an engineering contact at your firm. For more, see our page
<a href='for-vendors.html'>welcoming vendor cooperation</a>.</p>
<p>See the <a href='faq.html'>FAQ</a> for information on how to report
bugs.</p>
<p>All advertising revenue from this site (on the optimistic
assumption that we ever see any!) will go to the project's fund for
buying <a href="wishlist.html"> test hardware and standards</a>.</p>
<h1 id='news'>News</h1>
<p>This web page was last updated on @DATE@. You can browse the
project's <a href='NEWS'>news file</a> or <a href='TODO'>to-do
list</a> here. Note: because of the way this website is maintained,
these files may reflect the state of the repository tip (development
version) rather than the latest released stable version.</p>
<h1 id='downloads'>Downloads and packages</h1>
<p>Look in the <a
href="http://developer.berlios.de/project/showfiles.php?group_id=2116">download</a>
directory for tarballs of all released versions. Access to the
bleeding-edge developer version is supported <a
href="http://developer.berlios.de/svn/?group_id=2116">via
Subversion</a>. The main project page is <a
href='http://developer.berlios.de/projects/gpsd/'>here on berlios.de</a>.</p>
<p>If you are using a Debian-based distribution (including Ubuntu) you
can probably install <code>gpsd</code> through your regular package
manager or by tying <code>"sudo apt-get gpsd"</code> at the command
line.</p>
<h1 id='mailing-lists'>Mailing Lists</h1>
<p>There are four project mailing lists:</p>
<ul>
<li><a
href="http://lists.berlios.de/mailman/listinfo/gpsd-announce">gpsd-announce</a>
is for release announcements and project news.</li>
<li><a
href="http://lists.berlios.de/mailman/listinfo/gpsd-users">gpsd-users</a>
is for questions and technical support on <code>gpsd</code>, including support
for application builders using <code>gpsd</code> as a component.</li>
<li><a
href="http://lists.berlios.de/mailman/listinfo/gpsd-dev">gpsd-dev</a>
is for <code>gpsd</code> developers.</li>
<li><a
href="https://lists.berlios.de/mailman/listinfo/gpsd-commit-watch">gpsd-commit-watch</a>
sends automatic broadcast notifications of commits to the <code>gpsd</code>
repository.</li>
<li>We also have searchable archives at <a href="http://marc.info">MARC</a>:
<a href="http://marc.info/?l=gpsd-users">gpsd-users</a>,
<a href="http://marc.info/?l=gpsd-dev">gpsd-dev</a> and
<a href="http://marc.info/?l=gpsd-commit-watch">gpsd-commit-watch</a>.</li>
</ul>
<h1 id='documentation'>Documentation</h1>
<p>The following manual pages describe the code. Note: because of the
way this website is maintained, these files will describe the state and
features of the repository tip (development version) rather than the
latest stable version.</p>
<dl>
<dt><a href="gpsd.html">gpsd.1</a></dt>
<dd>The <code>gpsd</code> daemon.</dd>
<dt><a href="xgps.html">gps.1</a></dt>
<dd>The <code>gpsd</code> test clients.</dd>
<dt><a href="libgps.html">libgps.3</a></dt>
<dd>An interface library that manages communication with the daemon.</dd>
<dt><a href="libgpsmm.html">libgpsmm.3</a></dt>
<dd>C++ class wrapper for the libgps C binding.</dd>
<dt><a href="libgpsd.html">libgpsd.3</a></dt>
<dd>The low-level library used by <code>gpsd</code> to talk to a GPS.</dd>
<dt><a href="gpsprof.html">gpsprof.1</a></dt>
<dd>The <code>gpsprof</code> program for plotting spatial scatter of fixes
and fix latency.</dd>
<dt><a href="gpsfake.html">gpsfake.1</a></dt>
<dd>The <code>gpsfake</code> test harness simulating a GPS.</dd>
<dt><a href="gpsctl.html">gpsctl.1</a></dt>
<dd>The <code>gpsctl</code> tool for tweaking GPS settings.</dd>
<dt><a href="gpscat.html">gpscat.1</a></dt>
<dd>The <code>gpscat</code> tool dumps output from a serial
device. Optionally, it can packetize the data.</dd>
<dt><a href="gpsmon.html">gpsmon.1</a></dt>
<dd>The <code>gpsmon</code> real-time packet monitor and diagnostic
tool. (This replaces the <code>sirfmon</code> tool in older versions.)</dd>
<dt><a href="gpspipe.html">gpspipe.1</a></dt> <dd>A simple client that
captures GPS output and/or <code>gpsd</code> reports and sends it to
standard output.</dd>
<dt><a href="gpsdecode.html">gpsdecode.1</a></dt>
<dd>The <code>gpsdecode</code> packet decoder.</dd>
<!--
<dt><a href="gpsflash.html">gpsflash(1)</a></dt>
<dd>The <code>src</code> GPS firmware uploader..</dd>
<dt><a href="rtcm-104.html">rtcm-104.5</a></dt>
<dd>The <code>gpsdecode</code> RTCM104 decoder dump format.</dd>
<dt><a href="srec.html">srec.5</a></dt>
<dd>The <code>src</code> Motorola S-record and file format.</dd>
-->
</dl>
<p>Also, see the <a href="faq.html">FAQ</a>.</p>
<p>We have a <a href='hardware.html'>list of compatible GPSses</a>
with some technical information. We also have <a href='NMEA.txt'>a
list of NMEA sentences</a>.</p>
<p>There is a <a href="hacking.html">Hacker's Guide</a> to the project
philosophy, design, and code internals. You should read this if you
want to contribute code.</p>
<p>We maintain a <a href="hall-of-shame.html">GPS Hall of Shame</a>
that describes particularly egregious vendor blunders.</p>
<h1 id='realtime'>Real Time</h1>
<p>Some of the developers hang out regularly on IRC at <a
href="irc://irc.freenode.net#gpsd">channel #gpsd at irc.freenode.net</a>.</p>
<p>Some GPSD data streams that you can look at are
<a href="http://gpsd.rellim.com">http://gpsd.rellim.com</a><!--/*The following two not available as of 2007-12-23*/,
<a href="http://gpsd.gritch.org">http://gpsd.gritch.org</a>,-->
and <a href="http://gpsd.mainframe.cx">http://gpsd.mainframe.cx</a>. You can
also point our test clients at these hostnames to see what the clients
do, even if you don't yet have a local GPS.</p>
<h1 id='white_papers'>White Papers</h1>
<dl>
<dt><a href="gps-hacking.html">ESR's Guide to Hacking With GPS</a></dt>
<dd>If you are new to GPS technology and don't quite understand what
<code>gpsd</code> is about, you might find this interesting.</dd>
<dt><a href="http://esr.ibiblio.org/?p=801">Why GPSes suck, and what
to do about it</a></dt>
<dd>The designer of <code>gpsd</code> 2.0 rants in an at least
semi-humorous way about everything that's wrong with GPS standards
and vendors.</dd>
<dt><a href="protocol-evolution.html">GPSD-NG: A Case Study in
Application Protocol Evolution</a></dt>
<dd>History and evolution of the GPSD-NG protocol, illuminating some
larger trends in application protocol design.</dd>
<dt><a href="protocol-transition.html">Moving to GPSD-NG: a Guide for Client Developers</a></dt>
<dd>A practical explanation of GPSD-NG, and how to move to it as painlessly as
possible.</dd>
<dt><a href="replacing-nmea.html">Towards A Better GPS Protocol</a></dt>
<dd>An analysis of what's wrong with NMEA 0183, and a simple way to fix
it.</dd>
<dt><a href="performance.html">Where's the Latency? Performance analysis of GPSes and GPSD</a></dt>
<dd>An analysis of latency in the GPS/GPSD system. Has implications for the
design of <code>gpsd</code> and vendor claims about binary protocols.</dd>
<dt><a href="writing-a-driver.html">Notes on Writing a GPSD Driver</a></dt>
<dd>A guide for the perplexed by the author of the Jupiter-T driver.</dd>
</dl>
<h1 id='recipes'>Recipes and related resources</h1>
<p><code>gpsd</code> also works with some <a href="bt.html">bluetooth
GPS</a> receivers. Warning: there are serious problems with the
firmware in at least one family of Bluetooth implementations shipped
by Holux that may result in <code>gpsd</code> bricking your GPS. See this
<a href="upstream-bugs.html#bluetooth">bug warning</a> for a description
of the problem.</p>
<p>The <a href="http://gpsdproxy.sourceforge.net/">gGPSDproxy
project</a> is a small program which reads GPS data from a running
gpsd process and forwards it to a remote server via an UDP
connection. GPSDproxy is intended to be run on GPS enabled mobile
devices.</p>
<p>Diego Berge has written a prototype <a
href="http://www.navlost.eu/survey/gpsd/">Qt-based client</a>,
basically <code>xgps</code> with a more modern look and feel.
<p>We supply a Gentoo Linux ebuild script in the source distribution.</p>
<p>You can find Debian-unstable packages
<a href='http://packages.debian.org/unstable/misc/gpsd'>here</a>.</p>
<p><code>gpsd</code> is carried in the OpenBSD ports tree.</p>
<p>There's a <a
href='http://gpsd.davisnetworks.com'>Wiki
page</a> devoted to gpsd helper applications.</p>
<p><a href="http://www.openstreetmap.org/">OpenStreetMap</a> is a wiki
aiming to build a freely available, world-wide streetmap.</p>
<p>Freedesktop.org is hosting a project called <a
href="http://www.freedesktop.org/wiki/Software/GeoClue">geoclue</a>
that aims to provide a location service layer for all D-Bus-using
applications. It can use <code>gpsd</code> as a source for location
info.</p>
<p>The penguin-with-satellites logo is a hacked version of one I found
<a
href='http://www.gfz-potsdam.de/pb1/staff/gbeyerle/opengps/'>here</a>.
This project seems to be defunct, or at least the maintainer is not
responding to email.</p>
<h1 id='others'>Other GPSDs</h1>
<p>There used to be three Linux-based forks of <code>gpsd</code> in the
wild, but this GPSD project reabsorbed one and the other two are now
defunct for unrelated reasons. You can read a brief <a
href="history.html">history</a> of the <code>gpsd</code> project if
you are curious.</p>
<p>There is a project called <a
href='http://www.mgix.com/gps3d/'>gps3d</a> that ships a gpsd with
similar goals to ours, but which appears to be an independent
development. There haven't been any releases since early 2002.</p>
<p>There is a <a href='http://www.crs4.it:8000/gpsweb/14'>GPSd</a>
project that is a GPS daemon written in Java and apparently intended
to provide location information for browsers.</p>
<p>There is a <code>gpsd</code>-like hack hosted under <a
href='http://www2.musatcha.com/musatcha/computers/software/gpsd/'>Microsoft
Windows</a>. It provides gpsd service from data in netstumbler under
win32. This way programs such as <a
href='http://www.wigle.net'>JiGLE</a> can still get GPS data from
netstumbler. This program is not genetically related to
<code>gpsd</code>.</p>
<p>There is an interesting alpha-stage proposal called <a
href='http://www.gpster.net/locod.html'>locod</a> that aims to
integrate location information from GPSes and other sources.</p>
<p><a
href='http://users.hol.gr/~dzach/gpsfeed/index.html'>gpsfeed+</a> is a
program that simulates the output of a GPS in motion, and can be used
for testing GPS-aware applications.</p>
<p>We aren't Green Parrot Software Development, nor are we the
Greenville Public School District nor the Greater Peoria Sanitary
District, nor even the Greater Portland Soccer District, nor the Green
Party of San Diego, nor do we have anything to do with the General
Product Safety Directive, the the Guiding Principles of Sustainable
Design, nor the Glatt Plagiarism Self-Detection Program.</p>
<div style="text-align: center;">
<div style="text-align: left; margin: 1em auto; width: 50%;">
<script language=javascript type="text/javascript"
src="http://ss.webring.com/navbar?f=j;y=eric_s_raymond;u=defurl">
</script><noscript><table bgcolor=gray cellspacing=0
border=2><tr> <td><table cellpadding=2 cellspacing=0 border=0><tr><td
align=center> <font face=arial size=-1>This site is a member of
WebRing. <br>To browse visit <a
href="http://ss.webring.com/navbar?f=l;y=eric_s_raymond;u=defurl">
Here</a>.</font></td></tr></table></td></tr></table></noscript>
</div>
</div>
<div style="text-align: center;">
<div style="text-align: left; margin: 1em auto; width: 50%;">
<!-- SiteSearch Google -->
<form method="get" action="http://www.google.com/custom" target="_top">
<table border="0" bgcolor="#ffffff">
<tr><td nowrap="nowrap" valign="top" align="left" height="32">
<a href="http://www.google.com/">
<img src="http://www.google.com/logos/Logo_25wht.gif" border="0" alt="Google" align="middle"></img></a>
</td>
<td nowrap="nowrap">
<input type="hidden" name="domains" value="gpsd.berlios.de"></input>
<input type="text" name="q" size="31" maxlength="255" value=""></input>
<input type="submit" name="sa" value="Search"></input>
</td></tr>
<tr>
<td> </td>
<td nowrap="nowrap">
<table>
<tr>
<td>
<input type="radio" name="sitesearch" value="" checked="checked"></input>
<font size="-1" color="#000000">Web</font>
</td>
<td>
<input type="radio" name="sitesearch" value="gpsd.berlios.de"></input>
<font size="-1" color="#000000">gpsd.berlios.de</font>
</td>
</tr>
</table>
<input type="hidden" name="client" value="pub-1458586455084261"></input>
<input type="hidden" name="forid" value="1"></input>
<input type="hidden" name="ie" value="ISO-8859-1"></input>
<input type="hidden" name="oe" value="ISO-8859-1"></input>
<input type="hidden" name="flav" value="0000"></input>
<input type="hidden" name="sig" value="BCQudoNGuH3P6MJe"></input>
<input type="hidden" name="cof" value="GALT:#008000;GL:1;DIV:#336699;VLC:663399;AH:center;BGC:FFFFFF;LBGC:336699;ALC:0000FF;LC:0000FF;T:000000;GFNT:0000FF;GIMP:0000FF;FORID:1"></input>
<input type="hidden" name="hl" value="en"></input>
</td></tr></table>
</form>
<!-- SiteSearch Google -->
</div>
</div>
</div>
<hr/>
<script language="JavaScript" src="datestamp.js" type='text/javascript'></script>
</body>
</html>
<!--
Local Variables:
compile-command: "(make html; scp index.html shell.berlios.de:/home/groups/gpsd/htdocs)"
End:
-->
|