Overview
A complete GNSS Real-Time Kinematic (RTK) correction system built on ESP32, delivering centimeter-level positioning accuracy. The system supports three operational modes: base station (generates RTCM corrections), rover (receives corrections), and demo mode (synthetic data for testing).
Architecture
The system uses a modular 12-component design on ESP-IDF with FreeRTOS:
- GNSS Driver: u-blox F9P interface over I2C with survey-in capability
- RTCM Protocol: RTCM v3 message parsing and generation with CRC24Q validation
- Network Stack: Multi-transport support for TCP, UDP, ESP-NOW, and NTRIP
- Web Server: HTTP server with WebSocket for real-time dashboard updates
- Config Manager: Persistent settings via NVS with factory reset support
- OTA Manager: Firmware updates over WiFi with rollback protection
Constraints
- End-to-end RTCM latency target under 50ms
- Boot time under 5 seconds from power-on to operational
- Memory usage below 60% heap at peak load
- Must operate in WiFi-degraded conditions with ESP-NOW fallback
Stack
- Backend: ESP-IDF v5.1+, FreeRTOS, C
- Frontend: Vue 3, TypeScript, Tailwind CSS, Vite
- Protocols: RTCM v3, NTRIP, UBX (u-blox proprietary)
Outcomes
The modular architecture replaced a monolithic 28KB prototype with independently testable components. Demo mode enables full system validation without GPS hardware, supporting CI/CD integration and field demonstrations with identical APIs.