UberSDR

Open Source Web Based HF SDR

UberSDR is a powerful, web-based SDR platform for amateur radio enthusiasts, providing real-time access to the entire HF spectrum and multi-band WSJT-X skimming. Support for third party software via SoapySDR as well as a native desktop client. Based on the affordable RX-888 MKII and generic PC hardware. Powered by ka9q-radio.

1 🐧 Install Ubuntu Server 24.04 or Debian 13
2 πŸ“‘ Plug in RX-888 MkII
3 ⬇️ Run the install command below
curl -fsSL https://ubersdr.org/install.sh | bash

Features

πŸ”Š

Smart Listen

Multi-Monitor allows listeners to perform real-time diversity receive using multiple UberSDR instances simultaneously. The Smart Listen feature automatically switches audio to the instance with the strongest SNR β€” so you always hear the clearest signal without any manual intervention.

πŸ“»
Net Monitoring

Listening to a net where a single instance can't hear all stations? Run multiple instances covering different locations and Smart Listen will seamlessly switch to whichever has the best reception for each transmission.

🎧
Stereo Diversity

Listen to two instances simultaneously β€” one routed to the left speaker and one to the right β€” for a true spatial diversity listening experience across two different locations or antennas.

Open Multi-Monitor β†’
πŸ“‘

Who Can Hear Me?

Wondering which UberSDR instances are likely to receive your signal? The Who Can Hear Me? tool uses your location (via GPS or GeoIP) and analyses WSPR propagation data reported by each instance to predict which ones could hear you transmitting SSB Phone at 100–200 W on each HF band.

πŸ—ΊοΈ
Propagation Map

Instances with Excellent or Good SSB predictions are shown on a world map with their matched Maidenhead grid squares highlighted. Lines connect your location to each coverage area.

🎯
Drag to Adjust

If your location marker is incorrect, simply drag it to the right position on the map β€” results update automatically for the new location.

Open Who Can Hear Me? β†’
πŸ“‘

Real-Time Spectrum Analysis

Monitor all HF bands in real-time with background data collection. Historical data is stored enabling analysis of propagation patterns over time.

πŸ‘₯

Many Users

Supports tens or even hundreds of simultaneous users, each independently accessing any HF band at the same time.

Efficient architecture ensures minimal resource usage per user for both demodulated and IQ channels.

πŸ”Š

Multiple Decoders

Support for all-band skimming of various digital modes including FT2, FT4, FT8, JS8 and WSPR.

PSKReporter and WSPRnet support built in.

β™Ώ

Accessibility Options

Keyboard shortcuts for every button ensure full control without a mouse.

Voice announcements for frequency and mode changes keep you informed while operating.

🎀

Speech to Text

Transcribe speech to text in real time for easier monitoring and logging.

Translate to and from multiple languages for international communications.

πŸ—ΊοΈ

Listener Map

Shows listeners on a world map in real-time. Each listener also appears on a frequency bar.

Easily see popular listener frequencies and discover what others are tuning into.

πŸ“Š

Band Conditions

Track propagation conditions and band activity with integrated monitoring tools.

πŸ”Œ

SoapySDR Driver

SoapySDR driver with authentication for wide IQ streams. Connect external SDR applications with secure access control.

CW Skimmer

CW Skimmer

Includes driver and monitoring tool for VE3NEA's Skim Server (8x192 KHz).

πŸ’¬

Live Chat

Talk to other users in real-time, hear what each other are listening to and synchronise with a user for collaborative listening sessions.

πŸ“»

Frequency Reference

Track a known accurate signal and provide offset information over time. Works with WWV or any stable reference signal for precise frequency calibration.

🧭

Rotator Control

Supports Hamlib Rotctl integration including automated scheduling and password protected remote control for antenna positioning.

πŸ€–

MQTT Support

MQTT support for real time metrics and decoder data. Perfect for automation and dashboards with Home Assistant and Node-RED.

πŸ“ˆ

Prometheus Endpoint

Prometheus endpoint for integration into Grafana to generate useful metric visualisations.

βš™οΈ

Admin Control Center

Web based Admin control center for configuration, management and access control. Includes configuring background decoders and monitoirng system health.

πŸ”“

Public or Private

Owners can make their instance public or keep it private. Public instances are discoverable by any client application.

Automatic TLS and DNS are available:

  • Zero config tunnel (ubersdr.org)
  • Port forward (ubersdr.org or own domain)
  • Cloudflare (own domain)
⚑

API Driven

Frontend is entirely API driven, making creating custom client applications easy.

Spectrum and decoded data is also available via APIs for offline analysis.

KiwiSDR compatible port available for integrating with existing applications.

πŸ’»

Modest Hardware

Minimal CPU requirements means even 10 year old mini PCs can support 50+ simultaneous channels.

An Intel N100 can support multiple users and modest skimming.

For multi mode all band skimming, high performance stations with good all band SNR should consider a more powerful CPU, such as a 13th Gen i7 or Ryzen equivalent MiniPC.

Public Instance Directory

Explore publically accessible instances of UberSDR. The owner of each instance can choose to make it public and be added to the directory service.

The directory is integrated into all clients to make discovering other instances quick and easy.

Extensions

Extensions allow client applications to decode various common HF signals without the need to pipe audio to external applications.

CW Spots Display real-time CW spots from CW Skimmer βœ… Complete
Digital Spots Display real-time FT8, FT4, FT2, WSPR, and JS8 spots from the multi-decoder βœ… Complete
DX Cluster Display DX spots from amateur radio DX clusters in real-time βœ… Complete
FreeDV Decoder FreeDV digital voice decoder β€” decodes RADE/FreeDV signals on USB/LSB and plays decoded audio βœ… Complete
FSK/RTTY Decoder FSK/RTTY decoder supporting ITA2 (Baudot), ASCII, and CCIR476 (SITOR-B) modes β€” backend-based decoder βœ… Complete
FlexControl Control the SDR with a FlexControl USB controller using the Web Serial API βœ… Complete
FT8/FT4 Decoder FT8 and FT4 weak signal digital mode decoder ⚠️ Partial
MIDI Control Control the SDR with a USB MIDI controller (DJ controller). Map knobs, faders, buttons and encoders to radio functions βœ… Complete
Morse Code Decoder Multi-channel Morse code decoder with adaptive WPM detection β€” decodes up to 5 simultaneous signals ❗ Under Development
NAVTEX Decoder NAVTEX FSK decoder for maritime communications βœ… Complete
Radio Sync Synchronize frequency and mode with external radios via serial port ⚠️ Partial
SSTV Decoder Slow Scan Television (SSTV) decoder supporting 47 modes including Martin, Scottie, Robot, PD, and MMSSTV ⚠️ Partial
WEFAX Decoder Weather Fax (WEFAX) decoder for receiving weather charts and satellite images βœ… Complete
Speech-to-Text Real-time speech-to-text transcription βœ… Complete

Desktop Client

Access UberSDR from your desktop even if you don't run an instance yourself.
The client acts like a physical radio with audio routing and CAT control allowing direct use with popular applications like WSJT-X and Fldigi. Also supports TCI for combined CAT/audio over the network for software like JTD-X and SDC (Software Defined Connectors).

Download the UberSDR desktop client for your operating system to access instances with a native application experience.

  • Public instance discovery
  • Rigctl, Flrig, OmniRig & TCI
  • MIDI controller support
  • High bandwidth IQ streams
  • Full GUI or headless CLI
  • Flexible audio routing

Minimal Audio Client

A lightweight audio client for Linux and Windows, ideal for tuning into specific frequencies and piping audio to any output device. Supports saving profiles which store the instance, frequency, mode and audio options for quick recall.

  • Lightweight & fast
  • Tune to any frequency
  • Pipe audio to any output device
  • Save and load profiles
  • Profiles store instance, frequency, mode & audio options
  • Real time signal, SNR and audio levels
  • FLRig Sync β€” synchronise with a physical transceiver (set Rig to 'none' if no physical radio)
  • Sync other applications e.g. FLDigi and WSJT-X via FLRig

Windows Utilities

For Windows users, these free utilities are highly recommended for routing audio and creating virtual serial ports. They enable seamless integration with third-party applications like WSJT-X and Fldigi.

Browser Extensions

Browser extensions that enhance your UberSDR experience directly from your web browser β€” no installation on the SDR host required.

IQ Recorder

Record multiple IQ streams up to 192 KHz each for later analysis and playback. Perfect for capturing contest weekends, rare DX openings, or monitoring multiple bands simultaneously.

  • Record multiple IQ streams simultaneously
  • Up to 192 KHz bandwidth per stream
  • Built-in spectrum monitoring output
  • SSB and CW demodulation
  • Configurable automatic scheduler
  • Perfect for contest weekend recording

Example use case: Schedule recordings across 20m, 40m, and 80m during a major contest weekend. The automatic scheduler can start and stop recordings based on time and day, capturing all the action for playback afterwards with software such as SDR++.

Drivers

Drivers for third party applications so they can talk to UberSDR instances.

CW Skimmer

CW Skimmer

Driver for SkimServ. Connect to your local instance for CW skimming.

VE3NEA's Skim Server DLL, also works with CWSL.

⬇️ Download
πŸ”Œ

SoapySDR

Driver for SoapySDR. Supports both local and public instances.

Works with SDR++, Gqrx, GNU Radio and many others.

⬇️ Download
πŸ“‘

HPSDR

Bridge application for the UberSDR host machine. Allows applications like SparkSDR and Thetis to connect using Hermes-Lite compatible protocol with 10 available slices up to 192 KHz each.

This is automatically installed by the installation script. Click here to download manually.

KiwiSDR

KiwiSDR

UberSDR has KiwiSDR emulation and frontend built in on port 8073.

Any KiwiSDR compatible client can connect to it and will act like the real hardware.

Host: ubersdr.local   Port: 8073

Note: There is a known issue with waterfall alignment but the demodulated audio is accurate.

πŸ“»

RTL-TCP

UberSDR has RTL-TCP emulation on port 1234.

Connect any compatible RTL-SDR client with network support to your local UberSDR instance. This includes SDR Console.

Host: ubersdr.local   Port: 1234

Note: Set the bandwidth to 250 KHz in your client and it will receive 192 KHz of bandwidth.

Addons

Optional add-ons that extend UberSDR with additional decoding capabilities. Each addon runs as a background service on your UberSDR machine, continuously decoding 24/7 without any user interaction required. Each requires UberSDR to be installed first.

✈️

HFDL β€” HF Aircraft Tracking

Decode HFDL transmissions and track aircraft in real time on HF frequencies. No additional hardware required.

β€Ί
πŸ“‘

Monitor All Frequencies Simultaneously

During the training phase, UberSDR monitors all HFDL frequencies at once to learn which ground stations and frequencies are active in your region. No manual tuning required.

🧠

Optimisation Tips After Training

Once training is complete, the system analyses activity patterns and provides tailored recommendations to reduce CPU usage β€” focusing only on the frequencies that matter for your location.

πŸ“Ά

Ground Station Frequencies

View the frequencies used by each HFDL ground station. Identify the most active stations and frequencies for your antenna and location.

πŸ“Š

Performance Metrics

Detailed decode statistics including message counts, error rates, and per-frequency performance β€” giving you full visibility into how well your setup is performing.

πŸ—ΊοΈ

Live Aircraft Map

A real-time map shows all currently active aircraft decoded from HFDL transmissions, including flight identifiers, positions, and ground station associations.

⚑

One-Command Installation

Install the UberSDR HFDL application with a single command on the same machine as your UberSDR instance. It integrates directly with your existing setup.

HFDL Installation

⚠️ This is an add-on for UberSDR. You must have UberSDR installed first.
Run this command on the same machine as your UberSDR installation.

curl -fsSL https://raw.githubusercontent.com/madpsy/ubersdr_hfdl/refs/heads/main/install.sh | bash

Once installed, enable the HFDL Addon in Admin β†’ Addons tab to activate it.

You can feed your favourite exchange by adding output options to:
EXTRA_ARGS in ~/ubersdr/hfdl/docker-compose.yml
For example:
--output decoded:basestation:tcp:address=adsb.example.com,port=32010

πŸ“·

SSTV β€” Slow Scan Television Receiver

Decode SSTV transmissions in the background and browse a gallery of received images β€” complete with SNR data, callsign mapping, and real-time waterfall monitoring.

β€Ί
πŸ–ΌοΈ

Image Gallery

All received SSTV images are stored and presented in a browsable gallery. View decoded images from amateur radio operators around the world, accessible entirely from your web browser.

πŸ“Ά

Signal-to-Noise Ratio

Each received image is tagged with its SNR at the time of decode, giving you a clear picture of reception quality and helping you identify the best frequencies and times for SSTV.

πŸ—ΊοΈ

Callsign Map

Callsigns decoded from received images are plotted on a world map, showing you where transmitting stations are located and giving a visual overview of your reception coverage.

πŸ”Š

Real-Time Audio & Waterfall

Monitor the audio and waterfall display in real time directly in your browser. Watch SSTV signals appear and decode live without any additional software.

🧹

Automatic Cleanup

Poor quality or incomplete decodes are automatically detected and removed. Configurable retention settings let you control how long images are kept before being cleaned up.

πŸ“Š

Decode Statistics

Detailed statistics on decode counts, success rates, and activity over time β€” giving you full visibility into how your SSTV station is performing.

SSTV Installation

⚠️ This is an add-on for UberSDR. You must have UberSDR installed first.
Run this command on the same machine as your UberSDR installation.

curl -fsSL https://raw.githubusercontent.com/madpsy/ubersdr_qsstv/refs/heads/main/install.sh | bash

Once installed, enable the SSTV Addon in Admin β†’ Addons tab to activate it.

πŸ“‘

CW Skimmer β€” All-Band CW Decoding

Full all-band CW skimming using Afreet SkimServ in a Linux Desktop environment, with RBN aggregation and automatic PSK Reporter integration.

β€Ί
πŸ“‘

All-Band CW Skimming

SkimSrv runs inside a Linux Desktop environment, providing simultaneous all-band CW skimming across the entire HF spectrum without any manual tuning.

πŸ–₯️

VNC Desktop Access

Access the full Linux Desktop environment via VNC directly from your browser. Monitor SkimSrv in real time and adjust settings without needing a separate machine.

πŸ“Ά

RBN Aggregator

The Reverse Beacon Network aggregator comes pre-installed and pre-configured, so your spots are automatically submitted to the RBN with no additional setup required.

πŸ“Š

PSK Reporter Integration

PSK Reporter is automatically enabled via UberSDR, reporting your decoded spots to the global PSK Reporter network without any manual configuration.

CW Skimmer Installation

⚠️ This is an add-on for UberSDR. You must have UberSDR installed first.

To set up CW Skimmer, open the CW Skimmer tab in the Admin panel and follow the on-screen instructions.

βš“

NAVTEX β€” Maritime Navigation Telex Receiver

Decode NAVTEX broadcasts in the background, monitoring both international and national frequencies simultaneously for maritime safety and navigational warnings.

β€Ί
πŸ“‘

Simultaneous Frequency Monitoring

Monitors both the international NAVTEX frequency (518 kHz) and national frequencies (490 kHz / 4209.5 kHz) at the same time β€” no manual switching required. All channels are decoded in parallel so no message is ever missed.

πŸ“‹

Complete Message History

Every received NAVTEX message is stored in full, including station identifier, message type, and sequence number. A built-in history function lets you browse and search past messages at any time.

πŸ“Š

SNR Monitoring & Error Rate Display

Real-time signal-to-noise ratio monitoring gives you instant feedback on reception quality. A live error rate display shows character error statistics per message, helping you assess antenna performance and propagation conditions.

πŸ”Š

Live Audio Monitoring

Listen to the raw NAVTEX audio directly in your browser alongside the decoded text. Useful for verifying signal quality and hearing the characteristic FSK tones of NAVTEX transmissions in real time.

NAVTEX Installation

⚠️ This is an add-on for UberSDR. You must have UberSDR installed first.
Run this command on the same machine as your UberSDR installation.

curl -fsSL https://raw.githubusercontent.com/madpsy/ubersdr_navtex/refs/heads/main/install.sh | bash

Once installed, enable the NAVTEX Addon in Admin β†’ Addons tab to activate it.

🌦️

WEFAX β€” Weather Fax Receiver

Decode Weather Fax (WEFAX) broadcasts in the background, monitoring multiple HF frequencies simultaneously and saving received images with full signal metadata.

β€Ί
πŸ“‘

Multi-Frequency Monitoring

Monitors multiple WEFAX frequencies simultaneously, ensuring no broadcast is missed regardless of which frequency is active at any given time. No manual retuning required.

πŸ–ΌοΈ

Image Gallery

All received WEFAX images are stored and presented in a browsable gallery. View weather charts, sea state maps, and satellite imagery received directly from meteorological services.

πŸ“Š

Signal Metadata

Each saved image is tagged with full signal metadata including SNR, frequency, timestamp, and reception quality β€” giving you a complete record of every decode.

🧹

Automatic Cleanup

Configurable retention settings automatically remove old images, keeping storage usage under control while preserving recent weather data for review.

WEFAX Installation

⚠️ This is an add-on for UberSDR. You must have UberSDR installed first.
Run this command on the same machine as your UberSDR installation.

curl -fsSL https://raw.githubusercontent.com/madpsy/ubersdr_wefax/refs/heads/main/install.sh | bash

Once installed, enable the WEFAX Addon in Admin β†’ Addons tab to activate it.

Build Your Own UberSDR Instance

Set up your own UberSDR instance with affordable hardware and our Docker-based software. Join the network and share your local radio spectrum with the community.

What You Need

RX-888 MkII
$150

SDR Hardware

RX-888 MkII

High-performance SDR receiver available from AliExpress. Offers excellent dynamic range and wide frequency coverage.

Please note the RX-888 MkII is the only currently supported hardware. UberSDR runs the 888 at 64 MSPS and does not require any additional cooling.

πŸ“‘
$10-50

Antenna

Receive Antenna

An active loop or random long wire make great receive antenna choices for HF reception.

Optionally add a low and/or high pass filter.

  • ~1 MHz high pass filter
  • ~40 MHz low pass filter

Filters are only really neccessary if you live near a high power radio transmitter.

Mini PC
$150

Computer

Computer Options:

  • Low: N100/N150 based MiniPC (new)
  • Medium: HP EliteDesk 800 G2 i7-6700 MiniPC (eBay)
  • High: Intel 13th Gen i7 or Ryzen equivalent MiniPC

Medium spec is sufficient for most stations wanting all band FT8 skimming and several web users. AVX2 is a requirement which is any Intel CPU from Haswell (2013) onwards.

🐳
$0

Software

Docker-Based Deployment

UberSDR runs in Docker containers for easy installation and management. Simply pull the image and configure your setup.

Both Ubuntu 24.04 and Debian 13 (Trixie) have been tested and known to work with the installation script.

⚠️
A note on virtualisation: Running UberSDR inside a virtual machine can work, but is known to have issues with Oracle VirtualBox. Success has been reported with Proxmox. Installing on bare metal is absolutely the recommended approach.

Why Build Your Own?

🌍

Contribute to the global SDR network

πŸ”§

Full control over your SDR setup

πŸ’°

Affordable hardware options

⚑

Low power consumption

Installation Instructions

1
Mini PC

Grab Your Mini PC

Will need a monitor/keyboard and USB memory stick to install Ubuntu.

2
Ubuntu

Install Ubuntu Server 24.04

Create a bootable Ubuntu USB memory stick and install Ubuntu Server 24.04. Ensure to choose Ubuntu Server as we do not want a GUI. Make sure you select to install OpenSSH Server when asked.

3
RX-888 MkII

Plug in RX-888 MkII

Using the provided USB 3 cable plug the SDR into the computer. Probably a good idea to attach the antenna at this point. Ensure it is plugged into the SMA socket marked 'H'.

4
UberSDR

Install UberSDR

SSH into your newly installed UberSDR computer and run the following:

curl -fsSL https://ubersdr.org/install.sh | bash
5
βš™οΈ

Configure UberSDR

Open a web browser on your desktop/laptop: http://ubersdr.local:8080/admin.html and log in with the password you set during install.

6
🌍

Download Desktop Client

Download the desktop client for your operating system. You can also access the web interface directly.

7
πŸ”“

Enable Public Access (optional but encouraged!)

If you have bandwidth to spare and want to make your instance publicly accessible, use the public access wizard. Automatic TLS and DNS are available:

  • Zero Config Tunnel (ubersdr.org) - easiest / recommended
  • Port forward (ubersdr.org or own domain) - lower latency
  • Cloudflare (own domain)

One web user requires between 100-200 kbps (bits not bytes!). The Zero Config Tunnel has been successfully tested with Starlink.

Getting Started

1

Choose an Instance

Browse the available instances map and select one near you or in a location of interest.

2

Connect

Click on an instance to access its web interface and start exploring the radio spectrum.

3

Tune & Listen

Select your frequency, adjust settings, and enjoy real-time SDR reception.

πŸ”Œ

Install SoapySDR Driver

For Debian or Ubuntu, the easiest way to install the SoapySDR driver is with a single command:

curl -fsSL https://ubersdr.org/install-soapy.sh | sudo bash

β€” or β€”

⬇️ Download ZIP instead