Skip to content

Conformance posture: NMEA 0183

Adapter: src/nous/interop/nmea0183.py (BL-033)

Standard: NMEA 0183 v4.10. The simulator emits the $GPGGA sentence (essential GPS fix data).

Current posture: Encode produces a fully-specified $GPGGA sentence with all fourteen fields (UTC, lat, NS, lon, EW, fix quality, satellites, HDOP, MSL altitude with M units, geoid separation, M, DGPS age, DGPS station), XOR checksum, ASCII-only enforcement, and explicit lat / lon range validation. Decode parses the sentence back to the structured fields, validates the checksum, and rejects non-ASCII payloads. Encoder refuses to emit when the source estimate is older than max_age_s (default 5 s).

What is supported: $GPGGA encode and decode with checksum verification. The encoded string carries the trailing \r\n per spec and is byte-compatible with any NMEA 0183 4.10 consumer.

What is omitted: Other sentences ($GPRMC, $GPGSA, $GPGSV), multi-talker prefixes (GL, GN, GA, GB); these would slot in behind the same encode / decode surface.

Conformance claim: None. The 2026-05-23 audit confirmed the GGA field completeness (closes the baseline H5 finding).