Talking to the Magnavox: Difference between revisions

From Wildsong
Jump to navigationJump to search
Brian Wilson (talk | contribs)
mNo edit summary
Brian Wilson (talk | contribs)
mNo edit summary
Line 34: Line 34:
  $PMVXG,533,14,11,2005,,,*4F
  $PMVXG,533,14,11,2005,,,*4F


Fields are comma-separated, and the last part (eg *4f) is a checksum field.
Fields are comma-separated, and the last part (eg *4f) is a checksum field. (When present, the checksum is delimited by the *, not by a comma!)
You don't have to send checksum, it's optional, just leave it off when sending commands.
You don't have to send checksum, it's optional, just leave it off when sending commands.


  000 Receiver status: It's in Navigation mode, 11 satellites should be visible, it's tracking 9, time since last navigation: 0, and its wating for initialization.
  000 Receiver status: It's in Navigation mode, 11 satellites should be visible, it's tracking 9, time since last navigation: 0, and its wating for initialization.
015 RCm input port statistics
  022 Nav constellation
  022 Nav constellation
  023 Position, height, COG and SOG
  023 Position, height, COG and SOG
Line 43: Line 44:
  052 Oscillator offset (?) (something I have been longing to know...)
  052 Oscillator offset (?) (something I have been longing to know...)
  100 GPS Channel status
  100 GPS Channel status
101 Control sentence accept/reject: 0 = accepted
  533 GPS date
  533 GPS date
== Initialization ==


I think the 000 message means that I need to send it an initialization command to make it happy. The 000 command sets its known position, and the 001 command sets some constants and limits. Since I am in navigation mode, I don't need to give it position.
I think the 000 message means that I need to send it an initialization command to make it happy. The 000 command sets its known position, and the 001 command sets some constants and limits. Since I am in navigation mode, I don't need to give it position.


To get GGA/GLL strings though, I think I need to issue a control port output command: $PMVXG,007,,1,,1,4,1,
== Sending commands to the box ==
 
You can ask the box to send a sentence with command '''$PMVXG,''YYY'''''
where ''YYY'' is the Magnavox code or NMEA string prefix. Commands are
terminated with CRLF. (return key followed by control-j)
 
Example: $PMVXG,GPQ
Response: $PMVXG,101,GPQ,6,01,E*76  ''6 = requested sentence unavailable''
 
Example: $PMVXG,037
Response: $PMVXG,101,037,3,,*4F    ''3 =  unrecognized id''                                                         
 
Example: $PMVXG,003
Response: $PMVXG,101,037,3,,*4F    ''3 =  unrecognized id''                                                         
 
Stop sending the date (block 533): $PMVXG,007,533,,2,,,,, <br>
Send date once every 10 seconds:  $PMVXG,007,533,,1,,10,,,
 
Start sending GLL strings to control port: $PMVXG,007,GLL,,1,,1,,,<br>
Stop sending GLL: $PMVXG,007,GLL,,2,,,,,
 
Start sending GGA strings to control port: $PMVXG,007,GGA,,1,,1,,,<br>
Stop sending GGA: $PMVXG,007,GGA,,2,,,,,
 
Set in NAV mode: $PMVXG,035,0,,, <br>
Set in COR REF mode: $PMVXG,035,1,,,


==A few resources==
==A few resources==

Revision as of 18:18, 14 November 2005

NMEA from the Magnavox

NMEA strings are pouring in at 9600 bps on the serial port; I can see them in a minicom window. It looks like a NMEA message comes in once per second.

I installed a copy of gpsd, a dandy program no doubt, but the Magnavox is sending strings it does not understand. Alas, I will have to READ THE MANUAL.

Each of the strings is prefixed with $PMVXG,code, where code is a 3-digit integer padded leading zeroes. There are about 50 codes defined. Here is a sample of the output.

$PMVXG,015,0000000,0000,1,,*61                                                  
$PMVXG,052,  3.4515,*57                                                         
$PMVXG,100,05,10,052,38,47,,,,D5,  + ,-000.871,,,*05                            
$PMVXG,100,06,29,103,19,45,,,,71,  + ,0003.445,,,*6A                            
$PMVXG,100,07,30,190,25,45,,,,92,  + ,0000.011,,,*6D                            
$PMVXG,100,08,00,,,,,,,*6D                                                      
$PMVXG,000,NAV,11,9,0000,0*34                                                   
$PMVXG,036,032708,5539.86934,N,10942.90202,W,????????,000000,343634,0*7E        
$PMVXG,023,032709,4432.72623,N,12315.75804,W,00055.40,333.0,000.0,03,032708,03,C
$PMVXG,022,098828.00,00.5,00.7,01.5,15,00,21,06,10,29,30,00,26,00,16,18*7F      
$PMVXG,052,  3.4514,*56                                                         
$PMVXG,100,09,26,118,13,42,,,,77,  + ,0003.917,,,*61                            
$PMVXG,100,10,02,072,00,00,,,,82,SRCH,,,,*7F                                    
$PMVXG,100,11,16,315,21,44,,,,03,  + ,0000.257,,,*6C                            
$PMVXG,100,12,18,197,23,46,,,,A3,  + ,0002.088,,,*1A                            
$PMVXG,000,NAV,11,9,0000,0*34                                                   
$PMVXG,023,032710,4432.72623,N,12315.75805,W,00055.40,002.5,000.0,03,032709,03,0
$PMVXG,052,  3.4513,*51                                                         
$PMVXG,000,NAV,11,9,0000,0*34                                                   
$PMVXG,023,032711,4432.72623,N,12315.75805,W,00055.39,202.4,000.0,03,032710,03,4
$PMVXG,052,  3.4512,*50                                                         
$PMVXG,533,14,11,2005,,,*4F

Fields are comma-separated, and the last part (eg *4f) is a checksum field. (When present, the checksum is delimited by the *, not by a comma!) You don't have to send checksum, it's optional, just leave it off when sending commands.

000 Receiver status: It's in Navigation mode, 11 satellites should be visible, it's tracking 9, time since last navigation: 0, and its wating for initialization.
015 RCm input port statistics
022 Nav constellation
023 Position, height, COG and SOG
036 Self survey results
052 Oscillator offset (?) (something I have been longing to know...)
100 GPS Channel status
101 Control sentence accept/reject: 0 = accepted
533 GPS date

Initialization

I think the 000 message means that I need to send it an initialization command to make it happy. The 000 command sets its known position, and the 001 command sets some constants and limits. Since I am in navigation mode, I don't need to give it position.

Sending commands to the box

You can ask the box to send a sentence with command $PMVXG,YYY where YYY is the Magnavox code or NMEA string prefix. Commands are terminated with CRLF. (return key followed by control-j)

Example: $PMVXG,GPQ
Response: $PMVXG,101,GPQ,6,01,E*76  6 = requested sentence unavailable
Example: $PMVXG,037
Response: $PMVXG,101,037,3,,*4F     3 =  unrecognized id                                                          
Example: $PMVXG,003
Response: $PMVXG,101,037,3,,*4F     3 =  unrecognized id                                                          

Stop sending the date (block 533): $PMVXG,007,533,,2,,,,,
Send date once every 10 seconds: $PMVXG,007,533,,1,,10,,,

Start sending GLL strings to control port: $PMVXG,007,GLL,,1,,1,,,
Stop sending GLL: $PMVXG,007,GLL,,2,,,,,

Start sending GGA strings to control port: $PMVXG,007,GGA,,1,,1,,,
Stop sending GGA: $PMVXG,007,GGA,,2,,,,,

Set in NAV mode: $PMVXG,035,0,,,
Set in COR REF mode: $PMVXG,035,1,,,

A few resources

gpsd a daemon that reads nmea data
Python GPS project
Python serial library