v1.11.2 - GNSS Fields Always Output in Detection Events (2025-12-06)¶
What Changed?¶
This patch release fixes GNSS field visibility in JSONL output format. Previously, GNSS satellite positioning data was silently omitted when no satellite fix was available, preventing diagnostic of cold starts or module disconnection. Now all GNSS fields are always output, including fix validity status, enabling clients to monitor module initialization and acquisition progress.
What's New¶
Fix: GNSS Fields Always Output (Unconditional Output)¶
What it does:
The JSONL output format (STREAM_FORMAT=3) now always includes GNSS fields when ENABLE_GNSS=1, regardless of fix validity. Previously, the fields were completely omitted when gnss_fix_valid=false, making it impossible to diagnose GNSS module state during cold start or signal loss.
Why this matters:
- Diagnostic visibility: Monitor satellite acquisition progress (satellite count increasing from 0)
- Cold start detection: Track module initialization (satellites gradually increase from 0)
- Disconnection detection: Identify GNSS module failure (satellites stuck at 0 for extended period)
- Fix quality monitoring: Check HDOP and fix_quality values even during partial acquisition
Example output (before vs after):
Before (GNSS data missing when no fix):
{"type":"data","hit1":100,"hit2":100,"hit3":100,"adc":1571,...,"unix_timestamp":11}
After (GNSS fields always present):
{"type":"data","hit1":100,"hit2":100,"hit3":100,"adc":1571,...,"unix_timestamp":11,"gnss_latitude":0.0,"gnss_longitude":0.0,"gnss_altitude":0.0,"gnss_satellites":0,"gnss_fix_quality":0,"gnss_hdop":0.0,"gnss_fix_valid":0}
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¶
- GNSS fields now always included in JSONL output when
ENABLE_GNSS=1 - New
gnss_fix_validfield (0/1) for explicit fix validity indication
🔧 Changed¶
- JSONL format (
STREAM_FORMAT=3) output structure: GNSS fields no longer conditionally omitted - Behavior: GNSS data now output with zero values when no satellite fix available (was previously omitted entirely)
🐛 Fixed¶
- GNSS diagnostic visibility: Module state now visible during cold start and signal loss scenarios
Is It Safe to Upgrade?¶
Backward Compatible: Yes
- Impact on existing users: GNSS output format changed (fields always present), but all values are numeric with defined defaults (0 or false when invalid). Clients parsing JSONL output may need to adjust to unconditional field presence, but backward-compatible if client gracefully handles zero values.
Tests Passed¶
- ✅ Builds without errors (esp32dev-dev profile)
- ✅ JSONL output includes all GNSS fields unconditionally
- ✅ GNSS fields output with zero/false values when no fix available
- ✅ Memory usage within budget (RAM: 8.8%, Flash: 26.5%)
Release Details¶
- Date: 2025-12-06
- Version: v1.11.2
- Files Changed: 1 (src/stream_formatter.cpp)
- Commits: 1 (2182a2a)
- Binary Size Impact: +36 bytes (negligible, ~0.01% of Flash budget)
Next Steps¶
- v1.11.3+: Response schema standardization (payload wrapper design, Phase 2 implementation)
- v2.0: Formal API schema definition (JSON Schema or TypeScript types) with client code generation
- Roadmap: WiFi AP mode web interface, GNSS position logging, advanced data export formats