wsrx Installation

wsrx Radiosonde decoder, monitoring, scan and decoder status


With wsrx, you can send radiosonde telemetry to wettersonde.net via API. Radiosondes are automatically detected by the scanner.

The decoders were developed by rs1729, and the open-source code can be found on GitHub (https://github.com/rs1729/RS). Many thanks to him for his great work.

What this software can do!

    - Send data to wettersonde.net via API
    - Send data to radiosondy.info or similar sites via APRS.
    - Send data via AXUDP to aprsmap or udpgate4
    - Use radar to locate radiosondes in the sky
    - List of all detected radiosondes
    - Detailed information on each radiosonde
    - The entire radiosonde frequency range is scanned
    - Radiosondes are automatically detected
    - Simultaneous decoding of multiple radiosondes


wsrx main screen
wsrx radar screen wsrx radiosonde information screen

Table of Contents



Hardware required :

    - Raspberry PI 4
    - Airspy mini or SDR-Play or RTL-SDR

This guide installs KA9Q Radio, the wsrx radiosonde receiver software and the required decoder programs. wsrx uses KA9Q as SDR backend and expects all decoder binaries in the decoder subdirectory next to the wsrx application.

Requirements

The installation is intended for Linux systems such as Raspberry Pi OS, Debian or Ubuntu with an Airspy Mini receiver. Run the commands as a user with sudo rights.

sudo apt update

sudo apt install -y avahi-utils build-essential make gcc g++ git wget unzip rsync time \
              libairspy-dev libairspyhf-dev libavahi-client-dev libbsd-dev libfftw3-dev \
              libhackrf-dev libiniparser-dev libncurses5-dev libopus-dev librtlsdr-dev \
              libusb-1.0-0-dev libusb-dev portaudio19-dev libasound2-dev libogg-dev \
              uuid-dev libsamplerate-dev

sudo apt install -y curl

Installing wsrx


cd $home

git clone https://github.com/DO2JMG/wsrx.git

cd ~/wsrx

make clean
make

cd decoder
make clean
make

Configuring wsrx


cd ~/wsrx 
nano config.ini

Change your call sign and your coordinates. The call sign does not have to be an amateur radio call sign.

[station]
callsign = NOCALL
lat = 52.123456
lon = 8.123456
alt = 100

Make the executables and start scripts executable:

cd ~/wsrx
chmod +x wsrx.sh
chmod +x update.sh

Starting wsrx and the web interface


Warning KA9Q must be fully installed before wsrx is started.
Start wsrx manually:

cd ~/wsrx
./wsrx.sh

Stop wsrx manually:

cd ~/wsrx
./wsrx.sh stop

The web interface listens on port 8073 by default. Open it in your browser with the IP address of your receiver, for example:

http://receiver-ip-address:8073/

Update wsrx:

cd ~/wsrx
./update.sh

Automatically delete radiosondes that are older than 24 hours. Add a cronjob.

crontab -e

0 * * * * find /home//wsrx/logs/sondes -name "*.json" -mtime +1 -delete
0 3 * * * truncate -s 0 /home//wsrx/logs/wsrx.log


Installing KA9Q Radio

KA9Q Radio is used as the SDR backend. The example below builds KA9Q from source and installs it system-wide.

cd ~
git clone https://github.com/ka9q/ka9q-radio.git
cd ka9q-radio
git checkout e1224dcd1991637ba8e1caa68cd802e1b22933de
make -j$(nproc)
sudo make install

Add your user to the radio group and log out/in afterwards:

sudo usermod -aG radio $(whoami)

For best performance, create FFTW wisdom for the Airspy Mini. This can take a long time.

cd /etc/fftw
sudo fftwf-wisdom -v -T 1 -o nwisdom rof300000 cob2400 cob1250 cob1202 cob1200
sudo cp -i nwisdom wisdomf

Configuring KA9Q for Airspy Mini

Create a udev rule for Airspy

echo 'SUBSYSTEM=="usb", ATTR{idVendor}=="1d50", ATTR{idProduct}=="60a1", GROUP="radio", MODE="0660"' | sudo tee /etc/udev/rules.d/52-airspy-radio.rules

Create the KA9Q radiod configuration:


sudo nano /etc/radio/radiod@wettersonde_rx.conf

[global]
hardware = airspy
mode = fm
status = wettersonde.local
iface = lo
ttl = 0
data = wettersonde-pcm.local

[airspy]
device = airspy
description = "wettersonde_rx"
frequency = 407m0

[telemetry]
freq = "401m50"

[manual-400]
freq = 0
ttl = 0

Enable and start KA9Q:

sudo systemctl daemon-reload
sudo systemctl enable radiod@wettersonde_rx
sudo systemctl start radiod@wettersonde_rx

Check if KA9Q is running:

systemctl status radiod@wettersonde_rx --no-pager
avahi-browse -art | grep -E "wettersonde|ka9q|pcm"

Optional: systemd service files


The included start scripts already write log files into the wsrx directory. If you want wsrx and the web interface to start automatically after boot, create these systemd services.

sudo nano /etc/systemd/system/wsrx.service

Chance (username) to your username

[Unit]
Description=wsrx radiosonde receiver
After=network-online.target radiod@wettersonde_rx.service
Wants=network-online.target radiod@wettersonde_rx.service

[Service]
Type=forking
WorkingDirectory=/home/(username)/wsrx
ExecStart=/home/(username)/wsrx/wsrx.sh start
ExecStop=/home/(username)/wsrx/wsrx.sh stop
Restart=always
RestartSec=10

[Install]
WantedBy=multi-user.target

Enable and start both services:

sudo systemctl daemon-reload
sudo systemctl enable wsrx.service 
sudo systemctl start wsrx.service

Show logs:

cd ~/wsrx
tail -f logs/wsrx.log
tail -f logs/wsrx-web.log

Optional: APRS Upload


Optionally, you can also use an APRS client to send data to an APRS server. The APRS client is located in the aprs subdirectory.

cd ~/wsrx/aprs
make clean
make

You need to configure your APRS client in the aprs.ini file.

Change your call sign and your coordinates. You'll need to set a passcode for your call sign.

cd ~/wsrx/aprs
nano aprs.ini

Starting and stopping the APRS client

cd ~/wsrx/aprs
./aprs.sh start
./aprs.sh stop



© wettersonde.net - Jean-Michael (DO2JMG) - 2026