The Quectel LC29HEA low cost RTK receiver uses a proprietary message for position fix accuracy that is not recognized by popular tools such as SW Maps. This repo is very simple program that runs on an ESP32 and sits between the receiver and SW MAPS. It reads the proprietary $PQTMEPE message and generates a standard $GPGST message and injects it into the data stream. It also relays RTCM correction data coming from SW MAPS to the LC29HEA.
LCH29HEA <-----> ESP32 <-----> SW MAPS
- Uses an ESP32 classic as Android devices don't recognize the onboard USB of ESP32-S3 and ESP32-C3
- SW-MAPS is tricky to setup with BLE (ESP32-C3)
- Bluetooth works for NMEA commands and data, but doesn't work with RTCM correction data. This is due to SW-MAPS sending data over Bluetooth in one chunk, which overloads the internal Bluetooth buffer on the ESP32. This could be fixed by having the RTCM data handled entirely by a separate core. Given the GNSS needs power anyway (USB), decided this wasn't worth the effort at this point.
- We use large TX and RX buffers to handle the fairly high baud rates.
- Originally started with Micropython, but then couldn't use the onboard USB on the ESP32 module, due to being unable to disable REPL, so RTCM data stream was causing reboots etc. Switched to Arduino, which works well with the onboard UART-USB chip.
- I'm using an Wemos Lolin32 Lite, if Bluetooth worked, this board could charge a battery (18650, or 21700), and be totally wireless between phone and receiver.
- The battery would probably give quite reasonable run times, but would be slow to charge (8hrs+)
- Compact board
- Flat back, easy to stick with double sided tape