Closed evaherrada closed 4 years ago
@kattni
This GPS module uses the NMEA 0183 protocol.
This data is formatted by the GPS in one of two ways.
The first of these is GGA. GGA has more or less everything you need.
Here's an explanation of GGA:
11
1 2 3 4 5 6 7 8 9 10 | 12 13 14 15
| | | | | | | | | | | | | | |
$--GGA,hhmmss.ss,llll.ll,a,yyyyy.yy,a,x,xx,x.x,x.x,M,x.x,M,x.x,xxxx*hh
The second of these is RMC. RMC is Recommended Minimum Navigation Information.
Here's an explanation of RMC:
11
1 2 3 4 5 6 7 8 9 10 | 12 13 14 15
| | | | | | | | | | | | | | |
$--RMC,hhmmss.ss,llll.ll,a,yyyyy.yy,a,x,xx,x.x,x.x,M,x.x,M,x.x,xxxx*hh
Feather boards and many other circuitpython boards will round to two decimal places like this:
This isn't ideal for gps data and other applications that require high amounts of accuracy as this lowers the accuracy from 0.1m to 11m.
This can be fixed by using string formatting when the gps data is outputted.
An implementation of this can be found in examples/gps_simpletest.py
These two lines are the lines that actually solve the issue:
Extra stuff: This Image explains what the is in the GNSS list quite well.
Click here to learn about decimal degrees, which is the format that the GPS library outputs lat and long data
Click here to learn about geographic coordinate conversion.