High Checksum Errors with u-blox NEO-6M GPS and Arduino

I’m trying to implement some of my own code to read my GPS and I noticed the checksums were really high. I looked back at my initial test of the GPS and found I was getting high errors then too.

Upon further research I found that the SoftwareSerial port is getting constant buffer overflows – data is coming out of the GPS faster than the GPSTinyPlus library can decode it.

My u-blox GPS came with the baud rate set to 9600 baud. I lowered that to 4800 baud and I am able to process the GPS output with no errors.

DIAGS      Chars=37808 Sentences-with-Fix=78 Failed-checksum=87 Passed-checksum=

Using a baud rate of 4800 has an error rate of only 15%. With a baud rate of 9600, the error rate was 62%.

To change the baud rate, first I bring up the text console to verify I have good connectivity:



Now go to View | Messages View


In the Messages Tree, go to UBX | CFG | PRT and change the baud rate to 4800.


Now click on send to do an update:


At this point, the text console should stop because the baud rate has changed. Change the baud rate for u-center:


The text console should start showing messages again, indicating you have connectivity. Now save the changes to flash:


And finally do the following:


This entry was posted in c-arduino and tagged . Bookmark the permalink.

One Response to High Checksum Errors with u-blox NEO-6M GPS and Arduino

  1. Pingback: Arduino, GPS, and SMS: Where Are You Arny the Arduino? | Big Dan the Blogging Man

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s