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
|
<!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="Naming and shaming GPS vendors for especially botched designs">
<meta name="Keywords" content="GPS, translator, mxmap, GIS">
<link rel="stylesheet" href="main.css" type="text/css"/>
<title>GPS Hall of Shame</title>
</head>
<body>
<div id="Header">
GPS Hall of Shame
</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</a><br/>
<a href="for-vendors.html">For GPS Vendors</a><br/>
<a href="wishlist.html">Wish List</a><br/>
Hall of Shame</br>
<a href="hacking.html">Hacker's Guide</a><br/>
<a href="references.html">References</a><br/>
<a href="hardware.html">Hardware</a><br/>
<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">
<p>The GPS world is full of shoddy, poorly-documented designs. All
too many devices have behaviors that drive the harried maintainers of
<code>gpsd</code> to shake their heads and mutter <q>What where they
<em>thinking</em></q>?</p>
<p>This page goes beyond the merely ordinary and commemorates the
really <em>special</em> blunders — bugs and design errors so
consumately brain-dead that the only possible responses are either
rage or helpless laughter.</p>
<p>By naming and shaming the vendors who perpetrated these egregious
blunders, we hope to exert some pressure for higher quality standards
in the future.</p>
<p>Your contributions are welcome. If you're describing a firmware
bug, it's best if you can identify the firmware version or range of
versions it applies to.</p>
<h2>Implementation blunders</h2>
<p>These are the screwups that lead us to wonder if the GPS chipset
vendors ever actually test their hardware.</p>
<ul>
<li>The iTalk protocol from Fastrax Inc. sometimes emits well-formed,
checksummed binary packets in which the length is incorrect. If you
trust it and read the number of bytes it tells you to, you'll land in
the middle of the next packet.</li>
<li>Some Garmin chips issue a bogus length field, too. This from the
outfit that likes to tout itself as the industry leader!</li>
</ul>
<h2>Documentation blunders</h2>
<p>The best evidence that the GPS industry is run by morons is the
quality (or, rather, utter <em>lack</em> of quality) of their chipset
documentation. You would think they'd have figured out by now that
good and readily available documentation, making it easy for others to
interface to their hardware, will sell more hardware. But no; most
vendors make documentation difficult to get, and it rends to be both
incomplete and vague when you get it. A few vendors go above and
beyond the normal stupidity...</p>
<ul>
<li><p>Some versions of the SiRF protocol manual, including 1.4, describe the
data widths in the time portion of the Geodetic Navigation Information
packet incorrectly. If you trust them, you will extract garbage from
good packets.</p></li>
<li><p>The Garmin GPS chipset issues a number of important messages
that Garmin has <em>explicitly refused</em> to document.</p></li>
</ul>
<h2>Design blunders</h2>
<p>GPS chipset vendors love their proprietary binary protocols. There
is some excuse for this, given that the industry <q>standard</q> NMEA
0183 gew by a series of kluges and accretions and would probably have
turned out better if it had been designed by chimpanzees on crack
— but you'd think the vendors would at least make sure that
their binary protocols are a functional superset of NMEA. But no; in
the laugh-one-minute, puke-the-next world of GPS chipsets, it ain't
so...</p>
<ul>
<li><p>SiRF binary mode delivers HDOP but not PDOP or VDOP. SiRFs in
NMEA mode deliver all three.</p></li>
<li><p>EverMore NMEA delivers UTC time. EverMore binary protocol delivers
only GPS time, which has a time-varying offset from UTC — and no
way to query the offset.</p></li>
</ul>
</div>
<hr/>
<script language="JavaScript" src="datestamp.js" type='text/javascript'></script>
</body>
</html>
<!--
Local Variables:
compile-command: "(scp hall-of-shame.html shell.berlios.de:/home/groups/gpsd/htdocs)"
End:
-->
|