EM406A & $GPVTG

Sorry for the bad english, it’s a Google translation, I am German and I live in sweden.

My problem:

In the datasheet of EM406A following output messages are defined:

NMEA 0183 GGA, GSA, GSV, RMC, VTG, GLL.

But I can only receive GGA, RMC and GSA. I need urgently VTG however. Even in a moving car, I received no VTG.

The same problem I have with a EM411 (supposedly identical with EM406A).

Can someone tell me what should I do to receive VTG ?

Bernd

Read page-25 of this NMEA manual:

http://www.sparkfun.com/datasheets/GPS/ … anual1.pdf

Thanks fll-freak,

on page 23 (http://www.sparkfun.com/datasheets/GPS/ … anual1.pdf) I found this:

2.Enable VTG message for a 1 Hz constant output with checksum enabled

$PSRF103,05,00,01,01*20

I’ve read through all this and understood. But what I do now with $PSRF103,05,00,01,01*20 ?

Must be sent with eg Serial.print to the EM406A ?

Questions, questions …

Maybe someone has a code snippet for the IDE 0022/1.0.1?

The helpless Bernd

That was a typo. Should have been logical page 2-5 or as you discovered physical page 23.

If you sent that string to the GPS, it should start sending the VTG. If you are using Arduino, than a Serial.print would be a logical choice. Might need a terminator like \n or \r. If you are using a GPS library it MIGHT be the case there is a method to call. Since I have not used the NMEA interface on a GPS before (I much prefer binary interfaces) I can’t help you there.

Because no one has yet used $GPVTG ?

With the IDE0022 I have tried the following:

#include <NewSoftSerial.h>

NewSoftSerial NSS(2,3);

String VTG;

//*********************************

void setup()

{

Serial.begin(9600);

NSS.begin(4800);

//VTG=“$PSRF103,05,00,01,01*20”+‘\n’;

//VTG=“$PSRF103,05,00,01,01*20”+‘\r’;

VTG=“$PSRF103,05,00,01,01*20”;

NSS.print(VTG);

}

//*********************************

void loop()

{

//Code

}

With all three types of VTG I tried it, it does not work. The rest of the code (with $GPGGA, $GPRMC, $GPGGA, hidden here) works fine for months. I just want to embed only $GPTVG addition.

Where are the experts ? From GlobalSat, the maker of EM406A, I got no response.

SOS, please help me.

Bernd

By the way: Is $GPTVG constantly read or only if EM406A is in motion?

So here is the solution:

#include <NewSoftSerial.h>

NewSoftSerial NSS(2,3);

char PSRF[26];

String string1,string2,string3,string4;

//*********************************

void setup()

{

Serial.begin(9600);

NSS.begin(4800);

string1=String(“$PSRF103,05,00,01,01*20”);

string2=String(‘\r’);

string3=String(‘\n’);

string4=string1+string2+string3;

string4.toCharArray(PSRF,26);

Serial.print(““);Serial.print(PSRF);Serial.println(””);

NSS.print(PSRF);

delay(200);

}

//*********************************

void loop()

{

//Code

}

follows:

$GPGGA,164626.000,5658.4493,N,01538.2431,E,1,08,1.0,179.0,M,32.5,M,0000*50

$GPGSA,A,3,11,14,31,19,17,20,23,01,1.7,1.0,1.3*3C

$GPRMC,164626.000,A,5658.4493,N,01538.2431,E,0.11,70.21,231012,A*57

$GPVTG,70.21,T,M,0.11,N,0.2,K,A*3B

1000 thanks to fribbe (http://www.macherzin.net)

Happy Bernd

Happy Bernd on Brickamovagen road!