OpenWX
SDR - Streamlined Radiosonde Decoder
A lightweight, efficient radiosonde decoder for Raspberry Pi and x86_64 systems, designed to work with RTL-SDR, Airspy and KA9Q radio receivers. Built on the excellent rs1729/RS decoders embedded into this framework.
Current Version: 1.0.50 (June 15, 2026)
✨ What's New in v1.0.50
🔧 PTU Data Improvements
- Recency-Based PTU Merging: Improved text fallback matching handles frame number
- --softin Detection: Auto-detects decoder capabilities at startup with clear warnings*
- Conditional Environment: Only populates PTU when actual measurements exist
- Smarter Cache Management: Timestamp-based cleanup maintains last 100 entries
*We keep the rtl_fm --raw method for this release to keep a lean approach and reduce complexity
🎯 Interactive Sonde Analysis
- Context Menu: Right-click any active sonde for quick access to statistics and predictions
- Advanced Statistics Modal: 7 interactive Chart.js graphs showing:
- Altitude profile
- Vertical velocity
- Horizontal velocity
- RSSI (signal strength)
- SNR (signal-to-noise ratio)
- GPS satellites count
- Battery voltage
- Historical Data Viewer: Load and analyze logfiles from past flights with dropdown selector
- 24-Hour Time Format: All charts use UTC time in HH:mm format for professional meteorological analysis
- Gap Visualization: Charts correctly show data gaps where telemetry was unavailable
🗺️ Enhanced Map Features
- Launch & Landing Markers: Visual PNG icons mark takeoff and touchdown locations
- Flight Path Overlay: Display historical tracks from logfiles on the map
- Inactive Sondes Management: Track and manage previously decoded sondes with easy removal
- Position Details: Lat/Lon coordinates displayed in landing marker popups
🔮 Flight Path Prediction
- Tawhiri Integration: Real-time flight path prediction using Sondehub's Tawhiri API
- Intelligent Burst Altitude: Automatic burst height estimation based on sonde type:
- RS41: 30,000m (Bergen: 33,500m, Meppen: 25,000m)
- DFM: 17,500m
- Others: 25,000m
- Drag Compensation: Physics-based descent rate calculation accounting for air density
- Visual Prediction: Purple dashed line showing predicted trajectory
- Landing Details: Interactive popup with landing time, coordinates, and flight parameters
- Burst Marker: Shows estimated balloon burst location for ascending sondes
📊 Data Improvements
- Battery Tracking: Complete battery voltage history now recorded and displayed
- Satellite Data: GPS satellite count tracking throughout flight
- Enhanced Logfile Format: All telemetry fields properly logged with timestamps
- Live Data API: Real-time statistics for active sondes via REST API
- **Removing SNR/RSSI from Sondehub JSON output, fixed DFM and frequency fields
🔧 Technical Enhancements
- Flask Assets Serving: Proper static asset management for images and icons
- Chart.js Memory Management: Proper integrated chart management
- Responsive Design: Statistics and settings uses dynamic screen width for optimal viewing
🎯 Core Features
- 🎯 Automatic Signal Detection: Intelligent spectrum scanning with automatic radiosonde detection
- 🔧 Multiple Sonde Types: Supports RS41, RS92, DFM, M10*, M20*, iMet, LMS6, MRZ
- 📡 Dual SDR Support: Compatible with RTL-SDR, Airspy R2, Airspy Mini USB dongles
- 🎛️ Virtual Receivers: Configurable parallel decoding with KA9Q radio
- 🗺️ Modern Web Interface: Clean Leaflet-based map with real-time flight tracking
- 📤 OpenWX Integration: MQTT & UDP JSON output for seamless data upload
- 📤 Sondehub Integration: Direct upload to sondehub.org with listener statistics
- ⚡ Lightweight: Minimal overhead compared to other decoder solutions
- 🔧 One-Step Installer: Easy installation of all required packages
- Detection and handling of M10/M20 have been improved - tnx to Vigor for feedback!
💻 Hardware Requirements
- Raspberry Pi 4 / 5 / 400 / 500 (8GB recommended) or Intel x86_64 client
- Debian 13 "Trixie" or Raspberry Pi OS (64 Bit)
- RTL-SDR, Airspy R2, Airspy Mini dongle or KA9Q-compatible SDR
- Antenna tuned for 400-406 MHz
- Selective 400 MHz LNA
- SAW filter recommended