NMEA and RTK
Can I Really Use NMEA with a High Precision GPS Receiver?
Yes! Except that NMEA sentences are right on the edge of enough precision. NMEA sentences look something
like this:
$GNGGA,012911.00,4003.19080,N,10416.95542,W,1,12,0.75,1647.1,M,-21.3,M,,*4F
NMEA outputs coordinates in the ddmm.mmmmm format. So what is the weight of the least significant digit? Said
differently, what is the impact of one digit change?
104 16.95542
vs
104 16.95543
If we know 1 degree of latitude is 111.3km at the equator, we can glean the change of a fraction of a minute:
1 degree = 60 minutes
1 minute = 1 degree/60 = 111.32km / 60 = 1.855km
1 minute = 1855m
0.1min = 185.5m
0.01min = 18.55m
0.001min = 1.855m
0.0001min = .1855m = 185.5mm
0.00001min = 0.0185m = 18.55mm = 1.855cm
Using the NMEA sentence, the NEO-M8P will only be able to communicate a change of ~1.5cm location change
for each digit in the 5th position. This is pretty close to the 2.5cm accuracy of the module. If you want additional
precision, you should consider using the UBX protocol which can output up to 8 digits of precision in dd.dddddddd
format which will get you down to 1.11mm of precision!
Resources and Going Further
Have fun with your new found super power: sub decimeter grade GPS!
For more on the GPS-RTK, check out the links below:
Schematic (PDF)
Example RTCM output from the NEO-M8P-2
NEO-M8P-2 Datasheet (PDF)
Using U-Center to configure the NEO-M8P for base station RTCM output
NEO-M8P Hardware Integration Manual (PDF)
NEO-M8P Product Summary (PDF)
Ublox M8 Series Protocol
U-blox ECCN notice
GitHub
Arduino Library
Product Repo
SFE Product Showcase
Need help?
Do you have a question about the NEO-M8P-2 and is the answer not in the manual?
Questions and answers