SDRoxide: The Universal Open-Source SDR Transceiver and Panadapter Forged in Rust
TL;DR: SDRoxide by dividebysandwich is a high-performance, cross-platform Software-Defined Radio transceiver application written from the ground up in Rust. Featuring pure-Rust native drivers for over 20 hardware families (RTL-SDR, RX-888 Mk2, HackRF, LimeSDR, Icom LAN, FlexRadio, and WebSDR/KiwiSDR), SDRoxide integrates GPU-accelerated waterfalls (
wgpu), neural noise reduction (DeepFilterNet3 and RNNoise), built-in digital modems (FT8/FT4/FT2, JS8, WSPR, FreeDV RADE, Winlink radio email, DRM, and 868 MHz ISM weather sensors), automated satellite tracking with real-time Doppler correction, and a live 3D space-weather globe.
What Is SDRoxide?
SDRoxide is an open-source, high-performance Software Defined Radio transceiver and panadapter suite written in Rust that unifies over twenty SDR hardware interfaces, native in-process digital modems, neural noise reduction, automated satellite tracking, and real-time 3D space-weather visualization into a single zero-dependency binary.
+-----------------------------------------------------------------------------------+
| SDROXIDE WORKSPACE |
+-----------------------------------------------------------------------------------+
| [VFO A: 14.074.000 USB] [VFO B: 14.070.000 LSB] [RIT/XIT] [SPLIT] [DUPLEX/CTCSS] |
| [Radio: Native RX-888 Mk2 / LimeSDR] [NR: DeepFilterNet3] [Panadapter: 60 FPS] |
+-----------------------------------------------------------------------------------+
| |
| ========================= GPU-ACCELERATED PANADAPTER ========================= |
| - Real-Time Spectrum Trace & High-Resolution Multi-Color Waterfall (wgpu) |
| - Live Band Plan Overlays, CW/PSK/RTTY Skimmer Labels & DX Cluster Spots |
| - Passband Drag Tuning, Flywheel Inertia Dial & Multi-VFO Sub-Receivers |
| |
+-----------------------------------------------------------------------------------+
| [Digimodes: FT8/FT4/FT2/JS8/WSPR] [Winlink Mailbox] [DRM Shortwave] [868M ISM] |
| [3D Space Weather: Solar SDO / Aurora OVATION] [Satellite: SGP4 Doppler Lock] |
+-----------------------------------------------------------------------------------+
| Local: 12:45 | UTC: 04:45 | S-Meter: S9+10dB | PTT: Standby | PureSignal: Active |
+-----------------------------------------------------------------------------------+
For decades, amateur radio operators and SDR enthusiasts had to string together a chaotic web of separate programs: an SDR receiver client (such as SDR++, GQRX, or SDR#), virtual audio cables, external digital decoding suites (WSJT-X, JS8Call, FLDIGI, MMSSTV), CAT control utilities, satellite trackers (Gpredict), rotctld daemons, and browser tabs for space weather and propagation forecasts.
SDRoxide reimagines the entire amateur radio digital signal processing stack by implementing every subsystem directly inside a memory-safe, multithreaded Rust codebase. Whether you are running a $20 RTL-SDR dongle, a 16-bit direct-sampling RX-888 Mk2, a full-duplex LimeSDR with LimeRFE, an Icom IC-705 over WiFi, or connecting to remote KiwiSDR servers, SDRoxide delivers a seamless, all-in-one transceiver workstation.
Twenty Radio Interface Families: Native Pure-Rust Drivers
A major breakthrough in SDRoxide is its collection of native, pure-Rust USB and network drivers. Unlike traditional SDR applications that rely on complex chains of shared libraries (e.g. libusb, libhackrf, libairspy, gr-elad, or SoapySDR modules), SDRoxide communicates directly with hardware endpoints over raw USB transfers, eliminating external dependencies.
+-----------------------------------------------------------------------------------+
| SDROXIDE HARDWARE INTERFACE BACKENDS |
+-----------------------------------------------------------------------------------+
| 1. Pure-Rust Native USB: |
| - RTL-SDR (RTL2832U, R820T/T2, R828D, Blog V4, Direct Sampling) |
| - RX-888 & RX-888 Mk2 (16-bit LTC2208 ADC, FX3, VHF/UHF R828D dual-port) |
| - HackRF One, Jawbreaker, rad1o (1 MHz - 6 GHz TX/RX) |
| - Airspy HF+ (Dual, Discovery, Ranger) & Airspy R2 / Mini |
| - HydraSDR RFOne (3 RF ports: ANT, CABLE1, CABLE2 @ 12 Msps) |
| - RigExpert FobosSDR & ELAD FDM-DUO / FDM-S2 |
| |
| 2. Full-Duplex & Advanced SDRs: |
| - LimeSDR (USB, Mini, PCIe) + LimeRFE Front-End (Diversity & PureSignal DPD) |
| - SDRplay RSP (RSP1 through RSPdx R2 via native API) |
| - ADALM-Pluto (PlutoSDR via native IIOD client) |
| - OpenHPSDR (Hermes-Lite 2, Apache Labs Protocol 1 & 2) |
| |
| 3. Network & Transceiver Remote: |
| - Icom LAN (IC-705, IC-7300MK2, IC-7610, IC-9700, IC-R8600 via RS-BA1 IP) |
| - SmartSDR DAX IQ (FlexRadio FLEX-6000 / 8000 series) |
| - TCI WebSocket (ExpertSDR3 / SunSDR) |
| - Network Servers: rtl_tcp, rsp_tcp (16-bit extended), SpyServer, KiwiSDR |
| - CAT / Audio: Hamlib, Flrig, CI-V, Kenwood, Yaesu, Xiegu |
+-----------------------------------------------------------------------------------+
1. Direct-Sampling HF and Wideband VHF/UHF (RX-888 Mk2)
On the RX-888 and RX-888 Mk2, SDRoxide uploads the required Cypress FX3 firmware automatically at startup. It samples 0 to 32 MHz HF directly through a 16-bit LTC2208 ADC at up to 129.6 Msps, feeding a wideband panoramic scope. On Mk2 hardware, SDRoxide drives the secondary R828D tuner to cover VHF and UHF seamlessly, switching between HF and VHF antenna ports automatically.
2. Full Duplex, Diversity Reception, and PureSignal DPD (LimeSDR)
For LimeSDR hardware, SDRoxide provides:
- Full Duplex Transceiving: The receiver continues streaming and updating the waterfall even during your active transmission.
- LimeRFE Front-End Control: Automatically switches preselector bandpass filters, low-noise amplifiers, power amplifier stages, and T/R relays following the VFO dial.
- Dual-Antenna Adaptive QRM Phasing: Combines signals from two separate antennas to steer deep adaptive nulls onto localized noise sources or perform diversity combining to smooth out HF fading.
- PureSignal Adaptive Digital Predistortion (DPD): Feeds a sample of the transmitted RF from a directional coupler back into the secondary receive chain, applying inverse distortion to reduce transmitter intermodulation distortion (IMD) by up to 20 dB.
3. Panadapter Sharing for CAT Transceivers
If you own a traditional desktop transceiver (such as an Icom IC-7300, Yaesu FT-DX10, Kenwood TS-590SG, or Xiegu G90) alongside a separate SDR receiver, SDRoxide fuses them into a single coherent radio:
- Pick your SDR under Panadapter -> Receiver on the transceiver tab.
- The transceiver tab gains a full 60 FPS wideband waterfall, sub-receiver, digimodes, and skimmer overlays.
- Tuning the SDR waterfall moves the rig frequency via CAT; spinning the physical transceiver dial moves the waterfall marker in real time.
All-In-One Digital Modem Stack: Zero External Software
Forget installing virtual audio cables or configuring third-party decoders. SDRoxide implements a comprehensive digital modem suite natively in Rust:
+-----------------------------------------------------------------------------+
| SDROXIDE NATIVE MODEM SUITE |
+-----------------------------------------------------------------------------+
| [FT8 / FT4 / FT2] Auto-sequencing QSO engine, world map & automatic logging |
| [JS8Call] Full 4-speed keyboard messaging with directed framing |
| [WSPR] Multi-band beaconing, hopping & WSPRnet path uploads |
| [FreeDV RADE V1] Neural digital voice for weak-signal HF SSB |
| [Winlink Email] B2F/FBB radio email over Internet CMS or AX.25 Packet |
| [DRM Broadcast] Digital Radio Mondiale AAC receiver with constellation |
| [CW / PSK / RTTY] Auto-tracking skimmers & type-ahead keyboard sending |
| [Weak-Signal] Olivia, THOR, FSQCALL, Hellschreiber, SSTV, RIFP, WEFAX |
| [Telemetry / ISM] 868 MHz ISM weather sensors, APRS, AIS, ADS-B, VDL Mode 2 |
+-----------------------------------------------------------------------------+
1. High-Speed FT8, FT4, and FT2
Includes an automated sequencing QSO engine, real-time Maidenhead grid locator mapping, and automatic logging. It also supports FT2, which turns around complete amateur radio contacts in just 6 seconds per slot.
2. FreeDV RADE V1 Neural Digital Voice
SDRoxide links the cutting-edge RADE V1 (Robust Audio Digital Exchange) neural speech codec directly into its DSP pipeline, delivering clear digital voice over HF channels well below the traditional SSB signal-to-noise threshold.
3. Built-In Winlink Radio Email
SDRoxide features a native, self-contained Winlink client supporting B2F/FBB protocols, LZHUF message compression, and secure authentication:
- Full email client interface (Inbox, Outbox, Sent, Drafts, Archive, and Attachments).
- Dual routing: Send email via Internet CMS gateways or directly over the air using AX.25 Packet (1200/9600 baud FM or 300 baud HF sideband) to RMS Packet stations.
- Mailboxes are stored on the host machine and served cleanly to remote desktop and web clients.
4. Digital Radio Mondiale (DRM) Shortwave Broadcasts
Includes a built-in DRM receiver wrapping the Dream 2.2 engine and a statically linked faad2 AAC audio decoder. Displays real-time OFDM constellation diagrams, MER/SNR quality history curves, station identification, and scrolling text broadcasts.
5. 868 MHz ISM Sensor Burst Decoder
Monitors four fixed license-exempt ISM channels simultaneously (868.300, 868.420, 868.950, and 869.525 MHz) within a single 2 Msps IQ passband. Automatically parses telemetry from LaCrosse IT+, Fine Offset / Ecowitt (WH51 soil, WS80/90 weather, WH57 lightning strike counters), and Bresser 6-in-1 environmental sensors.
Neural Noise Reduction and Advanced DSP
Noise processing in SDRoxide leverages state-of-the-art machine learning models running locally on your CPU/GPU without external cloud services:
+-----------------------------------------------------------------------------+
| FOUR NOISE REDUCTION ENGINES |
+-----------------------------------------------------------------------------+
| 1. DFNR (DeepFilterNet3) : Deep neural network filtering (6/12/24 dB) |
| 2. RNN (RNNoise) : Real-time recurrent neural network speech filter|
| 3. SPEC (libspecbleach) : Adaptive spectral subtraction audio cleaner |
| 4. Built-in Spectral NR : Fast parametric spectral noise gate |
+-----------------------------------------------------------------------------+
- DeepFilterNet3 (DFNR): Uses deep learning to reconstruct clean human speech out of heavy atmospheric static, thermal hiss, and power-line hum.
- Adaptive Auto-Notch (ANC): Automatically hunts down and eliminates multiple continuous heterodyne tones, tuner carriers, and whistling interference.
- Repeater Duplex & Tone Burst: Features automatic repeater offset shifting, 50-entry CTCSS encoder/decoder, 104-code DCS coded squelch, and a configurable 1750 Hz tone burst for European repeater access.
3D Solar System, Live Space Weather, and Satellite Tracker
SDRoxide turns your ham shack display into a full-scale space command center, combining real-time NASA and NOAA telemetry with your station’s own receptions.
+-----------------------------------------------------------------------------+
| SDROXIDE 3D SPACE WEATHER & SATELLITE HUB |
+-----------------------------------------------------------------------------+
| |
| [ NASA SDO Solar Disk ] [ 3D Earth Globe with OVATION Aurora ] |
| - Live AIA 171/193/304 Imagery - Glowing Altitude Emission Shells |
| - Sunspot & Flare Probabilities - Real-Time 3D Cloud Cover & Lightning|
| - DONKI CME Trajectory Warnings - Ionospheric Midpoint Propagation Map|
| |
| ------------------------------------------------------------------------- |
| SATELLITE TRACKER (SGP4 Engine & Hamlib rotctld Integration): |
| - Continuous Rx & Tx Doppler Correction (pre-corrected on transmission) |
| - Automatic Rotator Azimuth & Elevation Tracking (AOS to LOS) |
| - Auto-updating CelesTrak TLE Subscriptions (Cached for Offline Operation) |
| |
+-----------------------------------------------------------------------------+
1. Live Sun & Space Weather
- NASA Solar Dynamics Observatory (SDO): Displays high-resolution solar imagery (HMI continuum for sunspots, AIA 171/193/304 for coronal loops) with real-time flare probabilities.
- Coronal Mass Ejection (CME) Alerts: Tracks interplanetary plasma cones from NASA DONKI, calculating estimated Earth arrival times and geomagnetic storm intensity.
- NOAA OVATION Aurora Model: Visualizes glowing auroral ovals over the poles in 3D, showing exact auroral absorption probabilities over your Maidenhead grid.
- Live Lightning & Cloud Cover: Plots global thunderstorm lightning strikes and cloud formations updated every ten minutes.
2. Measured Ionospheric Propagation vs GIRO Sounders
SDRoxide plots an empirical HF propagation heat map on the 3D globe by projecting the ionospheric midpoints of all received WSPR, FT8, FT4, JS8, and Reverse Beacon Network (RBN) spots. It calculates a local Measured MUF (Maximum Usable Frequency) from what your receiver actually hears, comparing it against the nearest GIRO ionosonde sounder.
3. Automated Hands-Free Satellite Operation
Select any amateur satellite (e.g. QO-100, ISS, AO-7, SO-50, RS-44) and click LOCK ON:
- Continuous Bidirectional Doppler Correction: SGP4 calculates orbital motion multiple times per second, correcting receive frequencies in DSP and pre-correcting transmit uplink frequencies continuously during your transmission.
- Hamlib rotctld Tracking: Automatically points your azimuth/elevation rotator toward the satellite from Acquisition of Signal (AOS) to Loss of Signal (LOS), then parks the array.
Logbook, DX Cluster, and Award Tracking
SDRoxide includes a modern, session-based amateur radio logbook:
- Telnet DX Cluster & Spots: Overlays live DX spots, POTA, SOTA, PSK Reporter, and FreeDV Reporter spots directly onto the panadapter and world map. Click any spot to tune frequency, select mode, and populate station details.
- Automatic Callsign Lookup: Automatically fetches operator names, grid locators, and QTH details from QRZ.com or HamQTH.
- Real-Time Award Tallies: Tracks progress for DXCC, WAS (Worked All States), WAZ (Worked All Zones), and grid squares, highlighting unworked entities the moment a spot appears.
- Seamless QSL Integration: One-click upload to eQSL, QRZ Logbook, Club Log, and ADIF export for ARRL Logbook of The World (LoTW) with automatic confirmation matching.
Technical Comparison: SDRoxide vs Traditional SDR Software
| Feature / Architecture | SDRoxide (Rust) | SDR++ (C++) | GNU Radio / GQRX | WebSDR / OpenWebRX |
|---|---|---|---|---|
| Language & Core | Memory-Safe Rust (wgpu) | C++ (OpenGL / ImGui) | C++ / Python (Qt) | C / Python (Web Canvas) |
| Driver Architecture | Native Pure-Rust (No libusb) | C++ Plugin Modules | Gr-osmosdr / SoapySDR | Kernel / libusb drivers |
| Digimodes Built-In | FT8/FT4/FT2, JS8, WSPR, SSTV | Basic demodulators only | Flowgraph modems | JS-based FT8 / WSPR |
| Digital Voice | FreeDV RADE V1 Built-In | External plugin | External pipe | FreeDV plugin |
| Winlink Radio Email | Native B2F Client (Net/AX.25) | No | No | No |
| Noise Reduction | DeepFilterNet3, RNNoise, SPEC | Basic spectral filter | DSP flowgraph blocks | Basic spectral noise gate |
| 3D Space Weather | Live SDO, CME, Aurora, MUF | No | No | No |
| Satellite Tracking | SGP4 Doppler + Hamlib rotctld | Orbitron / external | Gpredict integration | Doppler tracking plugin |
| Panadapter Sharing | Dual SDR-Transceiver Bridge | Rigctl sync only | Rigctl sync only | No |
| Remote Operation | WASM Web UI + Native Client | SDR++ Server protocol | TCP streaming | Native web browser |
| License | Open Source (GPLv3) | Open Source (GPLv3) | Open Source (GPLv3) | Open Source (AGPL/GPL) |
How to Install and Run SDRoxide
SDRoxide is distributed as standalone binaries for 64-bit Linux, macOS, and Windows, as well as via cargo.
+---------------------------------------------------------------------------+
| SDRoxide Installation Methods |
+---------------------------------------------------------------------------+
| |
| Method 1: Pre-Compiled Packages (Windows .msi, macOS .dmg, Linux .deb) |
| Method 2: Arch Linux AUR: |
| $ paru -S sdroxide |
| Method 3: Build from Source with Rust Cargo: |
| $ cargo install --git https://github.com/dividebysandwich/sdroxide
| |
+---------------------------------------------------------------------------+
Running Modes
- Native Desktop Application:
sdroxide - WebAssembly Browser Server Mode (Stream full UI to any remote browser):
sdroxide --server 0.0.0.0:8080 - Headless Remote Client:
sdroxide --connect 192.168.1.100:8080 - Terminal ASCII Waterfall Mode:
sdroxide --console
Frequently Asked Questions (FAQ)
What makes SDRoxide different from other SDR software?
SDRoxide is written in memory-safe Rust with pure-Rust hardware drivers, eliminating external library dependencies. It builds an entire ham shack ecosystem (digimodes, Winlink email, DRM, neural noise reduction, satellite tracking, and 3D space weather) directly into a single application.
Can SDRoxide transmit as well as receive?
Yes. SDRoxide supports transmission on capable SDR hardware (such as HackRF, LimeSDR, PlutoSDR, and ELAD FDM-DUO) and CAT-controlled transceivers across all voice, CW, and digital modes.
Do I need external software like WSJT-X or FLDIGI for digital modes?
No. SDRoxide includes native in-process modems for FT8, FT4, FT2, JS8Call, WSPR, PSK31, RTTY, Olivia, Hellschreiber, SSTV, and FreeDV RADE V1, with no virtual audio cables required.
What is panadapter sharing in SDRoxide?
Panadapter sharing allows a traditional CAT-controlled transceiver without wideband output to borrow a secondary SDR receiver, creating an integrated panadapter and waterfall that tracks your transceiver dial bidirectionally.
Can I run SDRoxide remotely on a Raspberry Pi or headless server?
Yes. Running sdroxide --server hosts the complete user interface as a WebAssembly application accessible from any modern web browser over the local network or internet behind password authentication.
Sources and Further Reading
- SDRoxide Official Website: sdroxide.com
- SDRoxide GitHub Repository: github.com/dividebysandwich/sdroxide
- SDRoxide User Manual: github.com/dividebysandwich/sdroxide/blob/main/docs/USER_MANUAL.md
- FreeDV & RADE Neural Speech Codec: freedv.org
- DeepFilterNet Neural Audio Noise Reduction: github.com/Rikorose/DeepFilterNet
- NASA Solar Dynamics Observatory (SDO): sdo.gsfc.nasa.gov



Post Comment