GNSSpot C++
GNSSpot is an ESP32-based firmware that transforms a GNSS module into a fully networked GPS/NMEA server.
GNSSpot
Plug a u-blox GNSS module into an ESP32 and get a GPS server for your whole network. GNSSpot parses the NMEA-0183 stream and ships it out two ways: fixes as JSON over MQTT, raw sentences over TCP on port 10110. Anything on your LAN can subscribe.
What it is made of
- ESP32 firmware, PlatformIO. Runs on the MH-ET LIVE Minikit.
- Talks to a u-blox M7N GNSS module and an ILI9341 TFT over SPI.
- C++ library stack, one class per concern: GPS parsing, a pub/sub GPSDataHub, NMEA ring buffer and dispatcher, TCP server, MQTT bridge and publisher, web server, WiFi manager, TFT display with BIOS boot animation.
- PPS-disciplined RTC, ~10 ms sync.
- FreeCAD case model plus STL.
How it works
NMEA comes in over serial from the GNSS module. The parser splits it into typed sentences. The dispatcher fans them out. Fixes go to GPSDataHub, which publishes JSON over MQTT. The raw stream goes to a TCP server on port 10110, advertised as `_nmea-0183._tcp` so clients find it without config. The module's PPS disciplines the RTC to about 10 ms. WiFi runs AP+STA with failover; the web UI handles setup and OTA.
License: Apache License 2.0
- esp32
- gnss
- mdns
- nmea0183
- tcp-server