SparkFun Forums 

Where electronics enthusiasts find answers.

Tips and questions relating to the GPS modules from SFE
By Crane
#31420
I am using the EM-406 in an RC application. I need to allow the MSP430 to set the baud rate, and disable some messages, while in the airplane. I have read the manuals and various user inputs. But when I transmit a message the EM-406 ignores me (I hate to be ignored by a machine).

To disable GSA I am sending the message:

$PSRF103,02,00,00,01*260D0A

I monitor the output of the EM-406 and the GSA message is still there. I have tried variations on the end of message phrase: DA - ,ODOA - <0D0A> - <13,10> - - none of it works.

HELP!!
By gm
#31423
Crane,

The command needs to be terminated with a carriage return (hex 0x0D) and a linefeed (0x0A). If you are using C, then usually the way it is done is by using the escape sequences \r\n. So your command would then be

$PSRF103,02,00,00,01*26\r\n

Of course, it all depends upon how you are sending the string to the GPS module.

Hope this helps,

Greg
By Crane
#31426
Greg,

Thanks for the response.

I'm using assembly language in the micro, but to test the EM-406 I am driving it with PC Com 2 ( thru a level converter) using a Visual Basic program. I get all of the messages from the EM-406 and display them on the screen. Since CR LF are not printable they do not appear.

The manual indicates that the CR LF Characters do not require a comma. The transmission string is as it is shown above. I've tried all combinations of the CR LF.

I'm using 4800 baud which is the default for GPS transmitter. Does the rcvr default to 4800 or 9600? Obviously I am doing something wrong, but I sure can't find it.

Thanks for the discussion - everything helps.

Crane
By Crane
#31433
I think the SIRF lll initializes in binary mode, so I need to switch it to NMEA.

I'll have to study the manual for a bit before I try that.

Crane
By Crane
#31453
Used Sirf Demo to switch it to NMEA protocol, 38400 baud and GGA only at 1 Hz rate. That works, but I still can't change the rates with my software.

Must be doing something wrong.
By gpsklaus
#31712
The checksum you were using seems to be correct,
but nevertheless i would try to disable CS check by using following command:
$PSRF103,02,00,00,00*0D0A

I did send this sequence via terminal program and it worked OK.

Klaus
By Crane
#31713
Thanks - I'll try that.

What is the impact of the disable CS tag? Does it disable the checksum for all subsequent messages or just for the one in which it is embedded?

Crane
By gpsklaus
#31716
> What is the impact of the disable CS tag? Does it disable the checksum for all subsequent messages or just for the one in which it is embedded?

I forgot to answer this. The checksum disable/enable command only is for the message in which it is embedded.

By the way:
Command $PSRF100 is for changing the baudrate. In this case disabling the checksum request is NOT possible.

When using NMEA and standard serial parameters 8,1,0,
the checksums for different data rates need to be as follows:
4800 bps = 0F
9600 bps = 0C
19200 bps = 39
38400 bps = 3C

Klaus
By Crane
#31722
Thanks for the detailed response.

I have the reference manuals. Unfortunately I do not understand all that I read in them, but I'm learning.

It looks like the binary values of Lon and Lat are in meters X * 8 from the 0 reference point. That would be easier to use than minutes and seconds. Is the reference point Greenwich 0 longitude? Does negative indicate Easting from the reference?