summaryrefslogtreecommitdiff
path: root/sirfmon.xml
blob: 65a0859309cf4253e2e6919ea0a492ba8cb8640a (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
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE refentry PUBLIC 
   "-//OASIS//DTD DocBook XML V4.1.2//EN"
   "docbook/docbookx.dtd">
<refentry id='sirfmon.1'>
<refmeta>
<refentrytitle>sirfmon</refentrytitle>
<manvolnum>1</manvolnum>
<refmiscinfo class='date'>23 Mar 2005</refmiscinfo>
</refmeta>
<refnamediv id='name'>
<refname>sirfmon</refname>
<refpurpose>monitor a SiRF GPS</refpurpose>
</refnamediv>
<refsynopsisdiv id='synopsis'>

<cmdsynopsis>
  <command>sirfmon</command>  
      <arg choice='opt'><replaceable>device</replaceable></arg>
</cmdsynopsis>
</refsynopsisdiv>

<refsect1 id='description'><title>DESCRIPTION</title>

<para><application>sirfmon</application> is a monitor that watches
packets coming from a SiRF GPS (the SiRF chipset is the one by far the
most commonly used in GPS mice and other consumer-grade GPSes, about
80% of them and rising in early 2005).  This program is primarily
useful as a diagnostic aid for troubleshooting
<application>gpsd</application> problems; it deliberately uses decoder
logic that different from the decoder in the
<application>gpsd</application> SiRF driver, so behaviors that show up
in both are unlikely to be due to logic bugs in either.</para>

<para>The device argument should be the serial devicename associated
with the GPS; <application>sirfmon</application> will search for a
correct baud rate and lock on to it automatically.</para>

<para>Note that <application>sirfmon</application> will fail if 
<application>gpsd</application> is running, and vice-versa. You will
probably need to be root to run this program.</para>

<para>After startup, the top part of the screen reports the contents
of several especially interesting packet types.  The bottom half of
the screen is a scrolling hex dump of all packets the GPS is issuing.
Dump lines beginning &gt;&gt;&gt; represent control packets sent to the
GPS.</para>

<para>To interpret what you see, you will need a copy of the
<citetitle>SiRF Binary Protocol Reference Manual</citetitle>.</para>

</refsect1>
<refsect1 id='commands'><title>COMMANDS</title>

<para>The following comands are available while 
<application>sirfmon</application> is running:</para>

<variablelist>
<varlistentry>
<term>n</term>
<listitem>
<para>Switch device to NMEA mode at current speed and exit.</para>
<para></para>
</listitem>
</varlistentry>
<varlistentry>
<term>b</term>
<listitem>
<para>Change baud rate.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>c</term>
<listitem>
<para>Set (c1) or clear (c0) static navigation. The SiRF documentation
says <quote>Static navigation is a position filter designed to be used
with motor vehicles.  When the vehicle's velocity falls below a
threshold, the position and heading are frozen, and velocity is set to
zero. This condition will continue until the computed velocity rises
above 1.2 times the threshold or until the computed position is at
least a set distance from the frozen place. The threshold velocity and
set distance may vary with software versions.</quote></para>
</listitem>
</varlistentry>
<varlistentry>
<term>l</term>
<listitem>
<para>Start logging of packets to specified file. If logging is
enabled, turn it off.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>s</term>
<listitem>
<para>Send hex bytes to device. Following the 's' you may type hex
digit pairs; end with a newline.  These will become the payload of a
SiRF control packet shipped to the device.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>t</term>
<listitem>
<para>Toggle navigation-parameter display mode.  Toggles between
normal display and one that shows selected navigation parameters from
MID 19, including the Static Navigation bit toggled by the 'c' command.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>Ctrl-S</term>
<listitem>
<para>Freeze display, suspend scrolling in debug window.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>Ctrl-Q</term>
<listitem>
<para>Unfreeze display, resume normal operation.</para>
</listitem>
</varlistentry>
</variablelist>

</refsect1>
<refsect1 id='bugs'><title>BUGS AND LIMITATIONS</title>

<para>The logic for hunting the GPS's baud rate is vulnerable to
various sorts of RS232 flakiness. If it hangs for longer than a few
seconds, kill the program and restart.</para>

</refsect1>
<refsect1 id='see_also'><title>SEE ALSO</title>
<para>
<citerefentry><refentrytitle>gpsd</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
<citerefentry><refentrytitle>xgps</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>libgps</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>libgpsd</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>gpsprof</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>gpsfake</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>gnuplot</refentrytitle><manvolnum>1</manvolnum></citerefentry>.
</para>
</refsect1>

<refsect1 id='maintainer'><title>AUTHOR</title> 

<para>Eric S. Raymond <email>esr@thyrsus.com</email>, based on code
originally by Rob Janssen, PE1CHL.  This code is part of the gpsd
toolset; there is a project page for <application>gpsd</application>
<ulink url="http://gpsd.berlios.de/">here</ulink>.</para>
</refsect1>

</refentry>