Documentation
Onboarding
Getting Started
Power & Battery
Hardware & Components
Build & Assembly
Radio & RF Design
Frequencies & Regulations
Firmware & Software
USB & Connectivity
GPS & Navigation
Morse & Communication
Modes & Operation
Field Operations & Rescue
Building Effectively
Build Variants
Project & Reference
Docs GPS & Navigation GPS NMEA Sentences

GPS NMEA Sentences

Edit on GitHub

The NMEA 0183 sentences a NEO-6M emits, what each field means, and which ones the firmware actually uses.

GPS NMEA Sentences

The NEO-6M speaks NMEA 0183 at 9600 baud. Every line is a sentence: a $ prefix, a talker ID, a sentence type, comma-separated fields, a checksum, and a line ending.

The sentence family

A NEO-6M with default settings emits several sentence types. The most important:

SentenceContent
GGAFix data: time, position, quality, satellites, altitude
RMCRecommended minimum: time, status, position, speed, date
GSADOP values and satellites used
GSVSatellites in view with signal levels
GLLGeographic position, lat/lon
VTGCourse and speed over ground

Anatomy of a GGA sentence

CODE
$GPGGA,123519,4807.038,N,01131.000,E,1,08,0.9,545.4,M,46.9,M,,*47
FieldValue hereMeaning
1123519UTC time hhmmss
24807.038Latitude in DDM
3NHemisphere
401131.000Longitude in DDM
5EHemisphere
61Fix quality (1 = GPS fix)
708Satellites used
80.9HDOP
9545.4Altitude, meters
10MAltitude unit

The checksum *47 is the XOR of all bytes between $ and *, written in hex.

RMC sentence

RMC carries the fix status: A means active (valid), V means void (no fix). The firmware checks this flag as a second gate on top of the GGA quality field.

What the firmware keeps

The parser extracts latitude, longitude, altitude, fix quality, satellite count and HDOP from GGA, plus the status from RMC. Everything else is ignored, which keeps the parse fast enough to run between radio events.