A radiosonde receiver firmware for the TTGO LoRa32 / T-Beam and M5Stack Core family. It decodes RS41, RS92, DFM06/09/17, M10/M20 and MP3-H1 telemetry with an SX1276/78 in FSK packet mode, shows it on the board's own display, serves a live map over WiFi, and forwards it to SondeHub, MQTT, the OpenWX import server and to phone apps over Bluetooth.
This started 2022 as a fork of the genious rdzTTGOsonde firmware from Hans Reiser, DL9RDZ after several commits between 2017 and 2022. dl9rdz/rdz_ttgo_sonde. All of the decoder work, the screen system and the board support come from that project; what this fork adds is described below.
Main features of this new firmware are:
- optimization for OpenWX upload via MQTT
- NEW! persistence of last 15 decoded sondes after reboot (without SD card !)
- NEW! complete WebUI redesign and OpenWXSDR compatibility
- NEW! bluetooth and WiFi support for mobile devices
- NEW! compatibility with MySondy BT protocol (with support of rdzwx-go, MySondyGo, TrovaLaSonda, Sonde Hunter use each app with this single firmware)
- full Sondehub.org upload feature (data format from rdzTTGOsonde unchanged) respecting Sondehub upload guidelines
- remove of APRS, that is no more APRS support by this firmware
- ready to integrate into OpenWX Fleet Monitor management via new TTGO API
- detailed user guide and documentation
- all bug fixes from 2022 - 2026 in rdzTTGOsonde included (> 20 commits)
The following hardware boards are supported and have been tested:
- TTGO/LilyGO/Heltec boards
- M5 Basic/Core/Core2
- OLED displays (SSD1306, SH1106)
- TFT displays (ILI9225, ILI9341/9342).
The WebUI and livemap have been completely redesigned and fit seemless to the new layout introduced with https://github.com/DL2MF/OpenWXSDR in May 2026
The user manual covers the whole firmware in 20 chapters: first run, the device itself, the live map, every configuration tab, flight-track storage, GPX, the upload paths, the HTTP API and troubleshooting.
Open it in your favorite webbrowser.
- Live map web interface - the receiver's own page: sondes and their tracks on a Leaflet map, a station popup with the last 8 hours of receptions, tunable from the browser, a spectrum view, and a system dashboard.
- Flight-track storage - every decoded sonde's path is sampled to SPIFFS and kept for 72 hours, at a rate that follows the flight phase (one point per minute climbing, down to one per second in the last 250 m), so a landing is recorded in detail without filling the flash.
- GPX export and import - a track per stored sonde, plus the landing position as a waypoint; imported files are drawn on the map as an overlay.
- A queued SondeHub uploader - frames are queued and acknowledged rather than sent blind, which raised the accepted-frame rate roughly tenfold on a busy station.
- MQTT - decoded frames and a station heartbeat, with topics built from the station callsign.
- MySondy GO protocol v4.1 over the USB serial port and over BLE, for the below listed sonde field apps.
- M5Stack Core2 and Core Basic/Gray support, build with flag
FEATURE_M5inRX_FSK/features.h. - A Board selector on the Hardware tab that pins a board's complete pinout when the GPIO autodetection guesses wrong.
The OpenWXTTGO firmware is supporting all major Android/iOS apps currently used by sondehunters in the field:
- rdwwx-GO from Hansi Reiser, DL9RDZ (WiFi only)
- MySondyGO from Mirko Dalmonte, IZ4PNN (Bluetooth, Serial-over-USB)
- TrovaLaSonda from Buttim (Bluetooth)
- HunterTracker from Giovanni, IN3ISU (WiFi, Bluetooth)
OpenWXSDR Fleet Monitor is our Add-On to manage several OpenWXSDR and OpenWXTTGO receivers in a network or remote locations.
The fleet monitor watches the status of your receivers including each connected RTL-SDR, Airspy or Airspy Mini, providing live spectrum, frequency management and sonde statistics.
OpenWXSDR Fleet Monitor will be released within the next days to the public. Write a mail to DL2MF@darc.de if you want to attend the release test.
PlatformIO:
pio run
Arduino IDE: open RX_FSK/RX_FSK.ino, ESP32 Arduino core 2.0.6, partition
scheme with a large app (the binary is about 1.6 MB). Upload the SPIFFS image
from RX_FSK/data as well - the web interface lives there, and a firmware
without a matching data image shows stale pages.
The board you select in the IDE does not decide the pinout: the SX1278 and display pins come from the board detected at runtime, so one binary runs on a TTGO, a T-Beam and an M5. If a board is misdetected, set Board on the Hardware tab and reboot.
RX_FSK/data/config.txt and RX_FSK/data/networks.txt ship with placeholder
values. Put your WiFi network in networks.txt (SSID on one line, password on
the next) before building the data image, or let the receiver come up as an
access point and configure it from the browser.
As upstream: GPL, see Licenses/. The decoders and much of the board support
are the work of dl9rdz and the contributors to rdz_ttgo_sonde.