Parse GGA/GSA fix quality from NMEA, add PAIR command init sequence
Replace altitude-validity heuristic with authoritative GGA quality field (SPS/DGPS/RTK) and GSA nav mode (2D/3D) via TinyGPSCustom extractors. Send $PAIR062 commands at boot to filter NMEA output to only GGA/GSA/RMC/GSV and configure PPS for fix-only pulses. GpsPayload struct gains fix_quality field (16 -> 14 bytes packed).
This commit is contained in:
parent
80158e10d7
commit
7db4204d26
3 changed files with 143 additions and 13 deletions
|
|
@ -234,13 +234,24 @@ with sub-microsecond precision relative to the GPS epoch. The module's RTC
|
|||
battery backup enables warm starts (~5s) after initial cold start fix (~30-60s).
|
||||
|
||||
**UART notes:** The RYS352A defaults to 115200 baud NMEA output with `GN`
|
||||
talker ID (multi-constellation). The TX line (GPIO6) is optional — only needed
|
||||
to send `$PAIR` proprietary commands (Airoha AG3352 engine) for changing
|
||||
update rate (`$PAIR050`), constellation selection (`$PAIR066`), PPS config
|
||||
(`$PAIR752`), or NMEA sentence output rates (`$PAIR062`). See
|
||||
`docs/RYS352x_PAIR_Command_Guide.md` for the full command reference.
|
||||
The firmware uses TinyGPS++ v1.1+ to parse standard GGA/RMC sentences —
|
||||
v1.1 is required for `$GNGGA`/`$GNRMC` (multi-GNSS talker ID) support.
|
||||
talker ID (multi-constellation). The TX line (GPIO6) is used at boot to send
|
||||
`$PAIR` proprietary commands (Airoha AG3352 engine) that configure the GPS
|
||||
module for satellite tracking use. See `docs/RYS352x_PAIR_Command_Guide.md`
|
||||
for the full command reference.
|
||||
|
||||
**Boot-time PAIR init sequence:** The firmware sends `$PAIR062` commands at
|
||||
startup to filter NMEA output — only GGA (position/quality), GSA (fix mode/DOP),
|
||||
RMC (time/date/speed), and GSV (satellite visibility, every 5th fix) are enabled.
|
||||
Redundant sentences (GLL, VTG, ZDA, GRS, GST, GNS) are disabled to reduce parser
|
||||
load and latency. A `$PAIR752` command configures PPS to pulse only on 2D/3D fix
|
||||
with 100ms pulse width. Each command waits for `$PAIR001` ACK; failures are
|
||||
logged but non-fatal — the GPS works with defaults if PAIR commands are unsupported.
|
||||
|
||||
The firmware uses TinyGPS++ v1.1+ with custom field extractors (`TinyGPSCustom`)
|
||||
to read GGA quality (field 6: SPS/DGPS/RTK) and GSA nav mode (field 2: 2D/3D)
|
||||
directly from the NMEA stream, replacing the earlier heuristic that inferred
|
||||
fix type from altitude validity. Both `GN` and `GP` talker ID variants are
|
||||
registered for compatibility across constellation configurations.
|
||||
|
||||
## Full GPIO Map
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue