What is inside an NMEA 0183 sentence?
A GNSS module prints one line of text per message. Each line starts with $, carries comma-separated fields, and ends with * and a two-digit checksum. The first field, the address, names the source and the message type.
$GPRMC,123519,A,4807.038,N,01131.000,E,022.4,084.4,230394,003.1,W*6A
- Start character
- Talker: which receiver speaks
- Sentence type
- Data fields
- Checksum
The talker tells you which system produced the data. GN means the module combined several systems.
| Talker | System | Example address |
|---|---|---|
| GP | GPS | GPGGA |
| GL | GLONASS | GLGSV |
| GA | Galileo | GAGSV |
| GB, BD | BeiDou | GBGSV |
| GQ | QZSS | GQGSV |
| GN | Combined systems | GNRMC |
Which sentences does this decoder read?
Six sentence types give the position, the speed and the health of the fix. Any other type is listed and its checksum is verified, but its fields are not decoded.
| Type | What it gives | Fields you will use |
|---|---|---|
| RMC | Time, date, position, speed, course | Status A or V, latitude, longitude, speed in knots, date |
| GGA | Position and fix data | Fix quality, satellites used, HDOP, altitude |
| GSA | Dilution of precision and satellites used | Fix type 1, 2 or 3, PRN list, PDOP, HDOP, VDOP |
| GSV | Satellites in view | PRN, elevation, azimuth, C/N0 in dB-Hz |
| VTG | Course and speed over ground | Course, speed in knots and in km/h |
| GLL | Position and time | Latitude, longitude, time, status |
How are coordinates and speed converted?
NMEA writes latitude as ddmm.mmmm and longitude as dddmm.mmmm. The first digits are whole degrees. The rest are minutes. Divide the minutes by 60 and add them to the degrees.
Speed over ground is written in knots. A knot is one nautical mile per hour, and a nautical mile is exactly 1852 m, so 1 knot is 1.852 km/h. Track distance uses the haversine formula on a sphere with the mean Earth radius of 6371.0088 km, which is accurate to about half a percent.
What do the GGA fix quality codes mean?
The quality field in GGA is one digit. Code 0 means the module has no valid position. Codes 4 and 5 appear only with an RTK source.
| Code | Meaning |
|---|---|
| 0 | Invalid, no fix |
| 1 | GPS fix (standalone) |
| 2 | Differential GPS |
| 3 | PPS fix |
| 4 | RTK fixed |
| 5 | RTK float |
| 6 | Estimated (dead reckoning) |
| 7 | Manual input |
| 8 | Simulation |
Is the signal good enough to install?
The Signal check tab compares four values with limits you can change. The starting values are typical, not a standard.
| Check | Starting limit | Why it matters |
|---|---|---|
| Valid fix | Status A, or GGA quality 1 or moretypical | Without a fix there is no position to judge. |
| Satellites used | 6 or moretypical | More satellites hold the fix when buildings or a cab roof block part of the sky. |
| HDOP | 2.0 or lowertypical | A high HDOP means the satellites are bunched together and the position can wander. |
| Average C/N0 | 30 dB-Hz or moretypical | Weak signals come from a poor antenna position, a metal roof or a damaged cable. |
Replace the starting limits with the ones in your installation procedure or your customer specification. Verify them against the current official text of any standard you work to.
Worked example
This example uses a widely published RMC sentence. Paste it into the decoder to follow the steps, or use your own.
$GPRMC,123519,A,4807.038,N,01131.000,E,022.4,084.4,230394,003.1,W*6A
- Latitude 4807.038 N is 48 + 7.038 ÷ 60 = 48.1173°.
- Longitude 01131.000 E is 11 + 31.000 ÷ 60 = 11.516667°.
- Speed 22.4 knots × 1.852 = 41.48 km/h.
- Date 230394 is 23 March 1994, time 12:35:19 UTC. Status A means the fix is valid.
- The checksum is the XOR of the characters between $ and *. For this line it is 6A, which matches the end of the sentence.
What usually goes wrong?
- V in RMC, quality 0 in GGA. The module has no fix. Check the sky view, the antenna cable and the time since power-on.
- Wrong checksum on every line. Check the baud rate and the ground connection. Garbled text points to a wrong rate.
- Wrong checksum on one line. A character was lost on the cable, or an editor changed the line while you copied it.
- No GSV lines. Some modules print them only when you turn them on. Without GSV the signal strength cannot be checked.
- Positions that jump. Look at HDOP and the satellite count at the same time stamp. A high HDOP explains most jumps.
Assumptions and limits
- The tool decodes RMC, GGA, GSA, GSV, VTG and GLL from NMEA 0183. Later versions add fields that this tool shows when present and ignores otherwise.
- Sources, checked 3 November 2026: the nautical mile of exactly 1852 m is in NIST SP 811, Appendix B, and 6371.0088 km is the mean radius R1 of GRS 80, published by the IAG. NMEA 0183 is a paid standard, now at version 4.30, so the talker identifiers, sentence fields and fix quality codes follow public summaries: verify them against the current official text.
- A correct checksum shows the line arrived intact. It does not show that the position is accurate.
- Satellites are matched to the GSA list by number and, where the sentence says so, by system. A number that exists in two systems is matched by the talker of the GSV line.
- Distance and speed come from the fixes you paste. The tool does not match positions to roads.
- Everything runs in your browser. The pasted text is not uploaded, stored or sent, except inside a share link you copy yourself, and only when it is short.
- Whether a Tracom device prints NMEA on a diagnostic port depends on the model and firmware. Ask Tracom before you build on it.