ESP32 RTK System

Production-grade GNSS RTK correction system for centimeter-level positioning on embedded hardware. Supports base station, rover, and demo modes.

EmbeddedGNSSESP-IDF

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.


← Back to Projects