v1.15.2 - GNSS State Monitoring (2025-12-12)¶
What Changed?¶
This release adds comprehensive GNSS module state monitoring capabilities. A new GET_GNSS_STATE command returns the current operational state (INITIALIZING, SEARCHING, FIXING, FIXED, or ERROR), and the existing GET_GNSS command now includes state information in its response. This enables client applications to accurately track GNSS receiver status and make state-dependent decisions.
What's New¶
New Command: GET_GNSS_STATE¶
What it does: Returns the current operational state of the GNSS receiver module as a single numeric value (0-4). Allows applications to determine the current phase of GNSS acquisition and fix operation.
How to use it:
Send the command GET_GNSS_STATE (no arguments) via serial text protocol:
GET_GNSS_STATE
State Values:
0= INITIALIZING - Module booting, parser initializing (0-2 seconds)1= SEARCHING - Actively acquiring satellites, no valid fix yet2= FIXING - Valid position acquired, refining accuracy3= FIXED - Valid 3D fix with ≥4 satellites, reliable position/time4= ERROR - UART timeout, checksum failure, or communication error
Response Example:
{"type":"response","status":"ok","sent_at":1732046789,"state":3}
Enhanced Command: GET_GNSS¶
What changed:
The GET_GNSS command now includes the GNSS module state in its comprehensive response. Previously returned: position, time, satellite count, quality, validity, and HDOP. Now also includes the current operational state for complete status visibility in a single query.
Response Example (now includes state):
{
"type":"response",
"status":"ok",
"sent_at":1732046789,
"latitude":35.1234,
"longitude":137.5678,
"altitude":100.5,
"gnss_time":1732046789,
"satellites":12,
"quality":1,
"valid":true,
"hdop":2.5,
"state":3
}
Installation¶
Quick Start¶
# Get the release
git checkout vX.Y.Z
# Build
task build
# Upload
task upload
# Check it works
task monitor
What's Different from the Last Version?¶
✅ Added¶
GET_GNSS_STATEcommand - Query GNSS module operational state (0-4)statefield inGET_GNSSresponse - Complete status in single queryget_gnss_state()method in Command class - Access state from application code
🔧 Changed¶
GET_GNSSresponse format now includesstatefield (backward compatible JSON addition)
Is It Safe to Upgrade?¶
Backward Compatible: Yes
- Existing
GET_GNSSresponses remain valid - newstatefield is additive - No breaking changes to command behavior or existing response fields
- New
GET_GNSS_STATEcommand is purely additive, no impact on existing code - Works with ENABLE_GNSS=1 and ENABLE_DEVICE_RESPONSE=1 (standard development build)
Tests Passed¶
- ✅ Builds without errors (RAM 8.8%, Flash 26.6%)
- ✅ All pre-commit hooks passed
- ✅ GET_GNSS_STATE command registration verified
- ✅ GET_GNSS response payload includes state field
Release Details¶
- Date: 2025-12-12
- Version: v1.15.2
- Files Changed: 6
- include/command.h (added get_gnss_state() method declaration)
- src/command.cpp (implemented get_gnss_state() method)
- src/command/gnss.cpp (added handle_get_gnss_state() handler, updated GET_GNSS)
- src/command_manager.cpp (registered GET_GNSS_STATE in dispatch table)
- docs/releases/v1.15.2.md (release notes)
- uv.lock (dependency updates)
Next Steps¶
Future enhancements may include:
- State change notifications/callbacks for real-time state monitoring
- Historical state tracking for troubleshooting
- Integration with WiFi and cloud logging for remote GNSS diagnostics
- Extended state enumerations for fine-grained troubleshooting