nmea0183-knowledge-patch
NMEA 0183 Knowledge Patch
Claude knows basic NMEA 0183 sentence format and common sentences (GGA, RMC, GSV, GSA). This skill provides the full field value tables and multi-GNSS extensions through v4.30 (December 2023) that are needed for writing correct parsers and validators.
Index
| Topic | Reference | Key features |
|---|---|---|
| Sentence Fields | references/sentence-fields.md | GGA quality 0-8, full FAA mode table, GGA-to-FAA mapping, satellite ID ranges |
| Multi-GNSS Extensions | references/multi-gnss-extensions.md | GSA System ID, GSV Signal ID, RMC Nav Status, v4.30 new sentences |
Quick Reference
GGA Quality Indicator (field 6)
Values 0-2 are well-known. Values 3-8 are critical for RTK and precision applications:
| Value | Meaning | Typical use |
|---|---|---|
| 0 | No fix | Receiver searching |
| 1 | GPS (SPS) fix | Standard autonomous positioning |
| 2 | DGPS fix | Differential corrections (SBAS/WAAS) |
| 3 | PPS fix | Precise Positioning Service (military) |
| 4 | Real Time Kinematic (fixed) | cm-level, integer ambiguity resolved |
| 5 | Float RTK | dm-level, ambiguity not fully resolved |
| 6 | Estimated (dead reckoning) | IMU/wheel sensor extrapolation |
| 7 | Manual input | Position entered manually |
| 8 | Simulation | Testing/demo mode |
RTK fix progression: 0 → 1 → 5 (float) → 4 (fixed). Quality 4 is required for survey-grade work. Receivers may oscillate between 4 and 5 in challenging environments (urban canyons, tree canopy).
FAA Mode Indicator (NMEA 2.3+)
Added in NMEA 2.3 as the last field before checksum on RMC, VTG, GLL, BWC, XTE, and other sentences.
| Value | Meaning | Since |
|---|---|---|
| A | Autonomous | NMEA 2.3 |
| D | Differential (DGPS) | NMEA 2.3 |
| E | Estimated (dead reckoning) | NMEA 2.3 |
| F | RTK Float mode | NMEA 2.3 |
| M | Manual input | NMEA 2.3 |
| N | No fix / not valid | NMEA 2.3 |
| P | Precise (no degradation) | NMEA 4.00 |
| R | RTK Integer mode (fixed) | NMEA 2.3 |
| S | Simulator | NMEA 2.3 |
GGA Quality to FAA Mode Mapping
When cross-referencing GGA and RMC from the same fix:
| GGA quality | FAA mode |
|---|---|
| 0 (no fix) | N |
| 1 (GPS) | A |
| 2 (DGPS) | D |
| 4 (RTK fixed) | R |
| 5 (RTK float) | F |
| 6 (estimated) | E |
| 7 (manual) | M |
| 8 (simulation) | S |
Satellite ID Ranges
Parsers handling multi-constellation GSV sentences need these boundaries to map satellite numbers to constellations:
| Range | System | Notes |
|---|---|---|
| 1-32 | GPS | PRN number |
| 33-54 | SBAS | WAAS, EGNOS, MSAS, GAGAN |
| 65-88 | GLONASS | 64 + slot number |
| 173-182 | IMES | Indoor Messaging System |
| 193-197 | QZSS | Quasi-Zenith Satellite System |
| 201-235 | BeiDou | u-blox non-standard mapping |
| 301-336 | Galileo | Standard NMEA mapping |
| 401-437 | BeiDou | NMEA standard mapping |
GLONASS dual behavior: With $GL talker, IDs are 1-32 (slot number — add 64 for global). With $GN talker, IDs are already 65-96 (global numbering). Parsers must check the talker ID before mapping.
BeiDou dual range: 201-235 is used by u-blox receivers (non-standard but widely deployed). 401-437 is the NMEA standard range. Accept both ranges.
NMEA 4.1+ Multi-GNSS Additions
These changes are backward-incompatible for parsers that assume a fixed field count.
GSA — System ID (field 18)
Multi-constellation receivers emit one GSA sentence per constellation under a $GN talker:
$GNGSA,A,3,80,71,73,79,69,,,,,,,,1.83,1.09,1.47,1*17
^-- System ID
| System ID | Constellation |
|---|---|
| 1 | GPS |
| 2 | GLONASS |
| 3 | Galileo |
| 4 | BeiDou (BDS) |
| 5 | QZSS |
| 6 | NavIC (IRNSS) |
Legacy parsers expect 17 fields. When $GP talker is used, System ID may be absent.
GSV — Signal ID (last field before checksum)
Signal ID values are per-system. GPS signal IDs:
| ID | Signal |
|---|---|
| 1 | L1 C/A |
| 5 | L2C-M |
| 6 | L2C-L |
| 7 | L5-I |
| 8 | L5-Q |
Receivers tracking multiple signals per constellation emit separate GSV groups per Signal ID. Total message count in field 1 is per-signal, not per-constellation — parsers that sum GSV messages without checking Signal ID will double-count satellites.
RMC — Nav Status (field 13)
Added after the FAA mode indicator (field 12):
$--RMC,hhmmss.ss,A,ddmm.mm,a,dddmm.mm,a,x.x,x.x,xxxx,x.x,a,m,s*hh
^-- Nav Status (4.1+)
| Value | Meaning |
|---|---|
| A | Autonomous |
| D | Differential |
| E | Estimated (dead reckoning) |
| M | Manual input |
| N | Not valid |
| S | Simulator |
| V | Valid (older specs, equivalent to A) |
The checksum position shifts by one field. Parsers must count fields dynamically or check NMEA version support. Field 12 (FAA mode) was added in NMEA 2.3; field 13 (Nav Status) in NMEA 4.1.
NMEA 0183 v4.30 (December 2023)
Latest version, replaces v4.11 (2018). New sentences for modern multi-GNSS use cases:
| Sentence | Purpose |
|---|---|
| GIR | GNSS integrity information |
| GRP | High-accuracy positioning |
| GGC | Autonomous platform guidance (course) |
| GCF | Autonomous platform guidance (fix) |
| GSN | SBAS status and correction data |
| SMV | SafetyNet maritime distress messaging |
The standard is proprietary ($1,150-$10,000) so field-level details for v4.30-specific sentences are not publicly available.
Reference Files
| File | Contents |
|---|---|
| sentence-fields.md | Full GGA quality table with use cases, complete FAA mode indicator table with version history, GGA-to-FAA mapping, satellite ID ranges with GLONASS/BeiDou dual-numbering details, RTK quality progression |
| multi-gnss-extensions.md | GSA System ID field with parsing implications, GSV Signal ID field with GPS signal table, RMC Nav Status field with version history, v4.30 new sentence summary |
More from nevaberry/nevaberry-plugins
dioxus-knowledge-patch
Dioxus changes since training cutoff (latest: 0.7.4) — Signals replacing use_state, RSX macro overhaul, server functions, asset!() system, dx CLI, Element-as-Result. Load before working with Dioxus.
46rust-knowledge-patch
Rust changes since training cutoff (latest: 1.94.0) \u2014 Rust 2024 Edition, async closures, trait upcasting, new std APIs, cargo resolver v3. Load before working with Rust.
20postgresql-knowledge-patch
PostgreSQL changes since training cutoff (latest: 18.1) — JSON_TABLE, SQL/JSON functions, MERGE RETURNING, virtual generated columns, UUIDv7, temporal PRIMARY KEY. Load before working with PostgreSQL.
16bun-knowledge-patch
Bun changes since training cutoff (latest: 1.3.10) \u2014 S3 client, built-in SQL/Redis, route-based HTTP server, CSS bundler, V8 compatibility. Load before working with Bun.
14nextjs-knowledge-patch
Next.js changes since training cutoff (latest: 16.1) — proxy.ts, \"use cache\", Cache Components, navigation hooks, typed routes, auto PageProps, React 19.2. Load before working with Next.js.
14postgis-knowledge-patch
PostGIS changes since training cutoff (latest: 3.6.1) — SFCGAL CG_* rename, ST_CoverageClean, ST_AsRasterAgg, topology bigint IDs, viewport simplification, 3D SFCGAL ops. Load before working with PostGIS.
13