1 <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML Strict//EN">
4 <TITLE>MX4200 Receiver Data Format</TITLE>
7 <h1>MX4200 Receiver Data Format</h1>
10 <h2>Table of Contents</h2>
13 <li><a href="#control">Control Port Sentences</a></li>
14 <li><a href="#input">Control Port Input Sentences</a></li>
16 <li><a href="#input_000">$PMVXG,000</a> Initialization/Mode Control - Part A</li>
17 <li><a href="#input_001">$PMVXG,001</a> Initialization/Mode Control - Part B</li>
18 <li><a href="#input_007">$PMVXG,007</a> Control Port Configuration</li>
19 <li><a href="#input_023">$PMVXG,023</a> Time Recovery Configuration</li>
20 <li><a href="#input_gpq">$CDGPQ,YYY</a> Query From a Remote Device / Request to Output a Sentence</li>
22 <li><a href="#output">Control Port Output Sentences</a></li>
24 <li><a href="#output_000">$PMVXG,000</a> Receiver Status</li>
25 <li><a href="#output_021">$PMVXG,021</a> Position, Height, Velocity</li>
26 <li><a href="#output_022">$PMVXG,022</a> DOPs</li>
27 <li><a href="#output_030">$PMVXG,030</a> Software Configuration</li>
28 <li><a href="#output_101">$PMVXG,101</a> Control Sentence Accept/Reject</li>
29 <li><a href="#output_523">$PMVXG,523</a> Time Recovery Configuration</li>
30 <li><a href="#output_830">$PMVXG,830</a> Time Recovery Results</li>
36 <h2><a name="control">Control Port Sentences</a></h2>
38 <p>The Control (CDU) Port is used to initialize, monitor, and control
39 the receiver. The structure of the control port sentences is based on
40 the <cite>NMEA-0183</cite> Standard for Interfacing Marine Electronics
41 Navigation Devices (version 1.5). For more details, please refer to
42 the <cite>NMEA-0183</cite> Specification available from the
43 <a href="http://www.nmea.org/">National Marine Electronics
46 <p>Reserved characters are used to indicate the beginning and the end
47 of records in the data stream, and to delimit data fields within a
48 sentence. Only printable ASCII characters (Hex 20 through 7F) may be
49 used in a sentence. <a href="#table_2">Table 2</a> lists the reserved
50 characters and defines their usage. <a href="#table_1">Table 1</a>
51 illustrates the general Magnavox proprietary NMEA sentence format.
54 <h4><a name="table_1">Table 1. Magnavox Proprietary NMEA Sentence Format</a></h4>
56 $PMVXG,XXX,...................*CK
62 <tr> <th>Character <th>Meaning
63 <tr> <td><code>$</code> <td>Sentence Start Character
64 <tr> <td><code>P</code> <td>Special ID (P = Proprietary)
65 <tr> <td><code>MVX</code> <td>Originator ID (MVX = Magnavox)
66 <tr> <td><code>G</code> <td>Interface ID (G = GPS)
67 <tr> <td><code>XXX</code> <td>Sentence Type
68 <tr> <td><code>...</code> <td>Data
69 <tr> <td><code>*</code> <td>Optional Checksum Field Delimiter
70 <tr> <td><code>CK</code> <td>Optional Checksum
73 <h4><a name="table_2">Table 2. NMEA Sentence Reserved Characters</a></h4>
76 <tr> <th>Character <th>Hex Value <th>Usage
77 <tr> <td><code>$</code> <td>24 <td>Start of Sentence Identifier
78 <tr> <td><code>{cr}{lf}</code> <td>0D 0A <td>End of Sentence Identifier
79 <tr> <td><code>,</code> <td>2C <td>Sentence Delimiter
80 <tr> <td><code>*</code> <td>2A <td>Optional Checksum Field Delimiter
83 <p>Following the start character <code>$</code>, are five characters
84 which constitute the block label of the sentence. For Magnavox
85 proprietary sentences, this label is always <code>PMVXG</code>. The
86 next field after the block label is the sentence type, consisting of
87 three decimal digits.</p>
89 <p>The data, delimited by commas, follows the sentence type. Note that
90 the receiver uses a free-format parsing algorithm, so you need not send
91 the exact number of characters shown in the examples. You will need to
92 use the commas to determine how many bytes of data need to be
95 <p>The notation <code>CK</code> shown in <a href="#table_1">Table 1</a>
96 symbolically indicates the optional checksum in the examples. The
97 checksum is computed by exclusive-ORing all of the bytes between the
98 <code>$</code> and the <code>*</code> characters. The <code>$</code> ,
99 <code>*</code> and the checksum are not included in the checksum
102 <p>Checksums are optional for Control Port input sentences, but are
103 highly recommended to limit the effects of communication errors.
104 Magnavox receivers always generate checksums for Control Port output
107 <p>ASCII data characters are transmitted in the following format:</p>
110 <tr> <td> Data Bits <td>8 (msb always 0)
111 <tr> <td> Parity <td>None
112 <tr> <td> Stop Bits <td>1
115 <p>NULL fields are fields which do not contain any data. They would
116 appear as two commas together in the sentence format, except for the
117 final field. Some Magnavox proprietary sentences require that the
118 format contain NULL fields. mandatory NULL fields are identified by an
119 '*' next to the respective field.</p>
123 <h2><a name="input">Control Port Input Sentences</a></h2>
124 These are the subset of the MX4200 control port input sentences sent by
125 the NTP driver to the GPS receiver.
129 <h3><a name="input_000">$PMVXG,000</a></h3>
130 <h4>Initialization/Mode Control - Part A</h4>
131 Initializes the time, position and antenna height of the MX4200.
135 <tr> <th>Field <th>Description <th>Units <th>Format <th>Default <th>Range
136 <tr> <td>1 <td>Day <td>  <td>Int <td>  <td>1-31
137 <tr> <td>2 <td>Month <td>  <td>Int <td>  <td>1-12
138 <tr> <td>3 <td>Year <td>  <td>Int <td>  <td>1991-9999
139 <tr> <td>4 <td>GMT Time <td>HHMMSS <td>Int <td>  <td>000000-235959
140 <tr> <td>5 <td>WGS-84 Latitude <td>DDMM.MMMM<td>Float<td>0.0 <td>0 - 8959.9999
141 <tr> <td>6 <td>North/South Indicator <td>  <td>Char <td>N <td>N,S
142 <tr> <td>7 <td>WGS-84 Longitude <td>DDDMM.MMMM<td>Float<td>0.0 <td>0 - 17959.9999
143 <tr> <td>8 <td>East/West Indicator <td>  <td>Char <td>E <td>E,W
144 <tr> <td>9 <td>Altitude (height above Mean Sea Level) in meters (WGS-84) <td>Meters<td>Float<td>0.0<td>+/-99999.0
145 <tr> <td>10 <td>Not Used <td>  <td>  <td>  <td> 
148 <code>$PMVXG,000,,,,,,,,,,*48</code><br>
149 <code>$PMVXG,000,,,,,5128.4651,N,00020.0715,W,58.04,*4F</code>
153 <h3><a name="input_001">$PMVXG,001</a></h3>
154 <h4>Initialization/Mode Control - Part B</h4>
155 Specifies various navigation parameters: Altitude aiding, acceleration
156 DOP limits, and satellite elevation limits.
160 <tr> <th>Field <th>Description <th>Units <th>Format <th>Default <th>Range
161 <tr> <td>*1 <td>Constrain Altitude <td>  <td>Int <td>1 <td>0=3D Only<br>1=Auto<br>2=2D Only
162 <tr> <td>2 <td>Not Used <td>  <td> <td>  <td> 
163 <tr> <td>*3 <td>Horizontal Acceleration Factor<td>m/sec^2 <td>Float <td>1.0 <td>0.5-10.0
164 <tr> <td>*4 <td>Not Used <td>  <td> <td>  <td> 
165 <tr> <td>*5 <td>VDOP Limit <td>  <td>Int <td>10 <td>1-9999
166 <tr> <td>*6 <td>HDOP Limit <td>  <td>Int <td>10 <td>1-9999
167 <tr> <td>7 <td>Elevation Limit <td>Deg <td>Int <td>5 <td>0-90
168 <tr> <td>8 <td>Time Output Mode <td>  <td>Char <td>U <td>U=UTC<br>L=Local Time
169 <tr> <td>9 <td>Local Time Offset <td>HHMM <td>Int <td>0 <td>+/- 0-2359
172 <code>$PMVXG,001,3,,0.1,0.1,10,10,5,U,0*06</code>
177 <h3><a name="input_007">$PMVXG,007</a></h3>
178 <h4>Control Port Output Configuration</h4>
179 This message enables or disables output of the specified sentence and
180 defines the output rate. The user sends this message for each sentence
181 that the receiver is to output.
185 <tr> <th>Field <th>Description <th>Units <th>Format <th>Default <th>Range
186 <tr> <td>1 <td>Control Port Output Block Label<td> <td>Char <td>  <td> 
187 <tr> <td>2 <td>Clear Current Output List<td> <td>Int <td>  <td>0=No<br>1=Yes
188 <tr> <td>3 <td>Add/Delete Sentence from List<td> <td>Int <td>  <td>1=Append<br>2=Delete
189 <tr> <td>4 <td>Not Used <td>  <td>  <td>  <td> 
190 <tr> <td>5 <td>Sentence Output Rate <td>Sec <td>Int <td>  <td>1-9999
191 <tr> <td>6 <td># digits of Precision for CGA and GLL sentences<td>  <td>Int <td>2 <td>2-4
192 <tr> <td>7 <td>Not Used <td>  <td>  <td>  <td> 
193 <tr> <td>8 <td>Not Used <td>  <td>  <td>  <td> 
196 <code>$PMVXG,007,022,0,1,,1,,,*4F</code>
201 <h3><a name="input_023">$PMVXG,023</a></h3>
202 <h4>Time Recovery Configuration</h4>
203 This message is used to enable/disable the time recovery feature of the
204 receiver. The time synchronization for the 1PPS output is specified in
205 addition to a user time bias and an error tolerance for a valid pulse.
206 This record is accepted in units configured for time recovery. If the
207 back panel contains a 1PPS outlet, the receiver is a time recovery
212 <tr> <th>Field <th>Description <th>Units <th>Format <th>Default <th>Range
213 <tr> <td>*1 <td>Time Recovery Mode <td>  <td>Char <td>D <td>D=Dynamic<br>S=Static<br>K=Known Position<br>N=No Time Recovery
214 <tr> <td>2 <td>Time Synchronization <td>  <td>Char <td>G <td>U=UTC<br>G=GPS
215 <tr> <td>3 <td>Time Mark Mode <td>  <td>Char <td>A <td>A=Always<br>V=Valid Pulses Only
216 <tr> <td>4 <td>Maximum Time Error <td>Nsec <td>Int <td>100 <td>50-1000
217 <tr> <td>5 <td>User Time Bias <td>Nsec <td>Int <td>0 <td>+/- 99999
218 <tr> <td>6 <td>ASCII Time Message Control<td> <td>Int <td>0 <td>0=No Output<br>1=830 to Control Port<br>2=830 to Equipment Port
219 <tr> <td>7 <td>Known Pos PRN <td>  <td>Int <td>0 <td>1-32<br>0=Track All Sats
222 <code>$PMVXG,023,S,U,A,500,0,1,*16</code>
227 <h3><a name="input_gpq">$CDGPQ,YYY</a></h3>
228 <h4>Query From a Remote Device / Request to Output a Sentence</h4>
229 Enables the controller to request a one-time transmission of a specific
230 block label. To output messages at a periodic rate, refer to input
231 sentence <a href="#input_007">$PMVXG,007</a>.
235 <tr> <th>Field <th>Description <th>Units <th>Format <th>Default <th>Range
236 <tr> <td>1:CD <td>ID of Remote Device <td>  <td>Char <td>  <td>(See <cite>NMEA-0183</cite>)
237 <tr> <td>2:GP <td>GPS <td>  <td>Char <td>  <td>(See <cite>NMEA-0183</cite>)
238 <tr> <td>3:Q <td>Query <td>  <td>Char <td>  <td>(See <cite>NMEA-0183</cite>)
239 <tr> <td>4:YYY <td>Label of Desired Sentence<td> <td>Char <td>  <td>Any Valid NMEA or Magnavox Sentence Type
242 <code>$CDGPQ,030*5E</code>
247 <h2><a name="output">Control Port Output Sentences</a></h2>
248 These are the subset of the MX4200 control port output sentences
249 recognized by the NTP driver.
253 <h3><a name="output_000">$PMVXG,000</a></h3>
254 <h4>Receiver Status</h4>
255 Returns the current status of the receiver including the operating
256 mode, number of satellites visible, and the number of satellites being
261 <tr> <th>Field <th>Description <th>Units <th>Format <th>Range
262 <tr> <td>1 <td>Current Receiver Status <td>  <td>Char <td>ACQ=Reacquisition<br>ALT=Constellation Selection<br>IAC=Initial Acquisition<br>IDL=Idle, No Satellites<br>NAV=Navigating<br>STS=Search The Sky<br>TRK=Tracking
263 <tr> <td>2 <td>Number of Satellites that should be Visible <td> <td>Int <td>0-12
264 <tr> <td>3 <td>Number of Satellites being Tracked <td>  <td>Int <td>0-12
265 <tr> <td>4 <td>Time since Last Navigation <td>HHMM <td>Int <td>0-2359
266 <tr> <td>5 <td>Initialization Status <td>  <td>Int <td>0=Waiting for Initialization<br>1=Initialization Complete
269 <code>$PMVXG,000,TRK,3,3,0122,1*19</code>
273 <h3><a name="output_021">$PMVXG,021</a></h3>
274 <h4>Position, Height, Velocity</h4>
275 This sentence gives the receiver position, height, navigation mode and
276 velocity north/east. <em>This sentence is intended for post analysis
281 <tr> <th>Field <th>Description <th>Units <th>Format <th>Range
282 <tr> <td>1 <td>UTC Measurement Time <td>Seconds into the week<td>Float<td>0-604800.00
283 <tr> <td>2 <td>WGS-84 Latitude <td>DDMM.MMMM<td>Float <td>0-89.9999
284 <tr> <td>3 <td>North/South Indicator <td>  <td>Char <td>N, S
285 <tr> <td>4 <td>WGS-84 Longitude <td>DDDMM.MMMM <td>Float <td>0-179.9999
286 <tr> <td>5 <td>East/West Indicator <td>  <td>Char <td>E, W
287 <tr> <td>6 <td>Altitude (MSL) <td>Meters <td>Float <td> 
288 <tr> <td>7 <td>Geoidal Height <td>Meters <td>Float <td> 
289 <tr> <td>8 <td>Velocity East <td>M/Sec <td>Float <td> 
290 <tr> <td>9 <td>Velocity North <td>M/Sec <td>Float <td> 
291 <tr> <td>10 <td>Navigation Mode <td>  <td>Int <td><em>Navigating</em><br>
292 1=Position From a Remote Device<br>
295 4=2D differential<br>
296 5=3D differential<br>
297 <em>Not Navigating</em><br>
298 51=Too Few Satellites<br>
299 52=DOPs too large<br>
300 53=Position STD too large<br>
301 54=Velocity STD too large<br>
302 55=Too many iterations for velocity<br>
303 56=Too many iterations for position<br>
304 57=3 Sat Startup failed
307 <code>$PMVXG,021,142244.00,5128.4744,N,00020.0593,W,00054.4,0047.4,0000.1,-000.2,03*66</code>
311 <h3><a name="output_022">$PMVXG,022</a></h3>
313 This sentence reports the DOP (Dilution Of Precision) values actually
314 used in the measurement processing corresponding to the satellites
315 listed. The satellites are listed in receiver channel order. Fields
316 11-16 are output only on 12-channel receivers.
320 <tr> <th>Field <th>Description <th>Units <th>Format <th>Range
321 <tr> <td>1 <td>UTC Measurement Time <td>Seconds into the week<td>Float<td>0-604800.00
322 <tr> <td>2 <td>East DOP (EDOP) <td>  <td>Float <td> 
323 <tr> <td>3 <td>North DOP (NDOP) <td>  <td>Float <td> 
324 <tr> <td>4 <td>Vertical DOP (VDOP) <td>  <td>Float <td> 
325 <tr> <td>5 <td>PRN on Channel #1 <td>  <td>Int <td>1-32
326 <tr> <td>6 <td>PRN on Channel #2 <td>  <td>Int <td>1-32
327 <tr> <td>7 <td>PRN on Channel #3 <td>  <td>Int <td>1-32
328 <tr> <td>8 <td>PRN on Channel #4 <td>  <td>Int <td>1-32
329 <tr> <td>9 <td>PRN on Channel #5 <td>  <td>Int <td>1-32
330 <tr> <td>10 <td>PRN on Channel #6 <td>  <td>Int <td>1-32
331 <tr> <td>11 <td>PRN on Channel #7 <td>  <td>Int <td>1-32
332 <tr> <td>12 <td>PRN on Channel #8 <td>  <td>Int <td>1-32
333 <tr> <td>13 <td>PRN on Channel #9 <td>  <td>Int <td>1-32
334 <tr> <td>14 <td>PRN on Channel #10 <td>  <td>Int <td>1-32
335 <tr> <td>15 <td>PRN on Channel #11 <td>  <td>Int <td>1-32
336 <tr> <td>16 <td>PRN on Channel #12 <td>  <td>Int <td>1-32
339 <code>$PMVXG,022,142243.00,00.7,00.8,01.9,27,26,10,09,13,23*77</code>
343 <h3><a name="output_030">$PMVXG,030</a></h3>
344 <h4>Software Configuration</h4>
345 This sentence contains the navigation processor and baseband firmware
350 <tr> <th>Field <th>Description <th>Units <th>Format <th>Range
351 <tr> <td>1 <td>Nav Processor Version Number <td>  <td>Char <td> 
352 <tr> <td>2 <td>Baseband Firmware Version Number <td>  <td>Char <td> 
355 <code>$PMVXG,030,DA35,015</code>
359 <h3><a name="output_101">$PMVXG,101</a></h3>
360 <h4>Control Sentence Accept/Reject</h4>
361 This sentence is returned (on the Control Port) for every
362 <strong>$PMVXG</strong> and <strong>$XXGPQ</strong> sentence that is
367 <tr> <th>Field <th>Description <th>Units <th>Format <th>Range
368 <tr> <td>1 <td>Sentence ID <td>  <td>Char <td> 
369 <tr> <td>2 <td>Accept/Reject Status <td>  <td>Int <td>0=Sentence Accepted<br>
372 3=Unrecognized ID<br>
373 4=Wrong # of fields<br>
374 5=Required Data Field Missing<br>
375 6=Requested Sentence Unavailable
376 <tr> <td>3 <td>Bad Field Index <td>  <td>Int <td> 
377 <tr> <td>4 <td>Requested Sentence ID (If field #1 = GPQ) <td>  <td>Char <td> 
380 <code>$PMVXG,101,GPQ,0,,030*0D</code>
384 <h3><a name="output_523">$PMVXG,523</a></h3>
385 <h4>Time Recovery Configuration</h4>
386 This sentence contains the configuration of the time recovery function
391 <tr> <th>Field <th>Description <th>Units <th>Format <th>Range
392 <tr> <td>1 <td>Time Recovery Mode <td>  <td>Char <td>D=Dynamic<br>S=Static<br>K=Known Position<br>N=No Time Recovery
393 <tr> <td>2 <td>Time Synchronization <td>  <td>Char <td>U=UTC Time<br>G=GPS Time
394 <tr> <td>3 <td>Time Mark Mode <td>  <td>Char <td>A=Always Output Time Pulse<br>V=Only when Valid
395 <tr> <td>4 <td>Maximum Time Error for which a time mark will be considered valid <td>Nsec <td>Int <td> 
396 <tr> <td>5 <td>User Time Bias <td>Nsec <td>Int <td> 
397 <tr> <td>6 <td>Time Message Control <td>  <td>Int <td>0=No Message<br>1=830 to Control Port<br>2=830 to Equipment Port
398 <tr> <td>7 <td>Not Used <td>  <td>  <td> 
401 <code>$PMVXG,523,S,U,A,0500,000000,1,0*23</code>
405 <h3><a name="output_830">$PMVXG,830</a></h3>
406 <h4>Time Recovery Results</h4>
407 This sentence is output approximately 1 second preceding the 1PPS
408 output. It indicates the exact time of the next pulse, whether or not
409 the time mark will be valid (based on operator-specified error
410 tolerance), the time to which the pulse is synchronized, the receiver
411 operating mode, and the time error of the <strong>last</strong> 1PPS
412 output. The leap second flag (Field #11) is not output by older
417 <tr> <th>Field <th>Description <th>Units <th>Format <th>Range
418 <tr> <td>1 <td>Time Mark Valid <td>  <td>Char <td>T=Valid<br>F=Not Valid
419 <tr> <td>2 <td>Year <td>  <td>Int <td>1993-
420 <tr> <td>3 <td>Month <td>  <td>Int <td>1-12
421 <tr> <td>4 <td>Day <td>Nsec <td>Int <td>1-31
422 <tr> <td>5 <td>Time <td>HH:MM:SS<td>Int <td>00:00:00-23:59:59
423 <tr> <td>6 <td>Time Synchronization <td>  <td>Char <td>U=UTC<br>G=GPS
424 <tr> <td>7 <td>Operating Mode <td>  <td>Char <td>D=Dynamic<br>S=Static<br>K=Known Position
425 <tr> <td>8 <td>Oscillator Offset - estimate of oscillator frequency error <td>PPB <td>Int <td> 
426 <tr> <td>9 <td>Time Mark Error of last pulse <td>Nsec <td>Int <td> 
427 <tr> <td>10 <td>User Time Bias <td>Nsec <td>Int <td> 
428 <tr> <td>11 <td>Leap Second Flag - indicates that a leap second will occur.
429 This value is usually zero except during the week
430 prior to a leap second occurence, when this value
431 will be set to +/-1. A value of +1 indicates
432 that GPS time will be 1 second further ahead of
434 <td>  <td>Int <td>-1,0,1
437 <code>$PMVXG,830,T,1998,10,12,15:30:46,U,S,000298,00003,000000,01*02</code>