SparkFun Forums 

Where electronics enthusiasts find answers.

Tips and questions relating to the GPS modules from SFE
By spatial
#142272
Hi, This is really frustrating so I'm looking for advice to talk me off the ledge. I have an LS20031 GPS module. In the past I was able to change the factory default baud rate from 57600 to 9600 using the $PMTK251,9600*17\r\n command using an arduino uno with a do nothing program installed so it can act as an FTDI interface. Well, the chip was set back to factory default and last night I attempted to configure it using the same process that had worked before but now when I hit do the process the chip does not respond AT ALL. I'll list the steps I've taken and if anyone sees something wrong, please let me know.

1) Hook the LS20031 Chip to the Arduino
GPS Pin1 -> Arduino 3.3V,
GPS Pin2 -> Arduino pin 0,
GPS Pin3 -> Arduino Pin 1,
GPS Pins4&5 -> Arduino Ground
2) Upoad a do nothing program into the Arduino
3) Open the Arduino Serial Monitor
4) Set the Serial Monitor baud rate to 57600
5) Verify that the NMEA sentences are being received
6) Type "$PMTK251,9600*17\r\n" into the top line of the Serial monitor and press send.
7) Normally, I would then look for corrupted data being sent owing to the baud rate mismatch
8) Reset the Serial Monitor Baud Rate to 9600
9) Note the restoration of the correct NMEA sentences.

I appreciate advice on anything I am doing incorrectly.
I am working on a Mac so if anyone has advice on how to get realterm or minigps hosted on the VMWARE windows emulator to work I'd appreciate it.

Thanks Much!
By jhe
#143680
Basically have the same problem. It worked for a while and now I cannot change the settings to save my life. Any insight would be appreciated.
By trialex
#143779
Had this problem myself over the weekend.

Paraphrasing from my own question and answer here:viewtopic.php?f=32&t=32335#p143628

You need to first reduce the data that is being sent - the module won't let you change the baud rate to a rate that is too slow to be able to transmit all the data before the next update. Considering the factory default is to send three different sentences, five times a second, 9600bps is just too slow.

So yeah first reduce the frequency to 1 update per second using
Code: Select all
$PMTK300,1000,0,0,0,0*1C
then choose the messages you want (I just use GGA every update) using
Code: Select all
$PMTK314,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0*29
then you can change the baud rate to something slower.

Remember that you need to send the end of line and new line characters too - either using the drop down box in the arduino IDE, or the Serial.prinln() commands in your code.