Estimated reading time: 5 minutes
WSPR (pronounced „whisper“, Weak Signal Propagation Reporter) is a digital radio protocol for probing potential propagation paths with low-power transmissions. The WSPR protocol can decode signals with a SNR (Signal-to-noise ratio) as low as -28 dB. A typical transmission contains your call sign, your grid locator and transmitter power in dBm. Read on if you want to know how to receive WSPR with RTL-SDR.
WSPR signals can be received by any SSB (single-sideband) capable transceiver such as the Yaesu FT-817ND. In order to decode WSPR a special software called WSJT-X is used which is available for several operating systems (Windows 7/8/10, Ubuntu 18.04 LTS, 20.04 LTS, …) and does not require installation. In order to receive WSPR signals you need to connect your transceivers audio output to the audio input of your computer. WSJT-X is then processing the received audio signal and decodes it, displaying a list containing all received stations with relevant information such as their call sign, grid location, distance etc.
Instead of a dedicated transceiver I prefer to use a RTL2838 based DVB-T stick as a SDR (Software-Defined Radio) which allows me to receive signals between 25 MHz to 1750 MHz. I use the NESDR SMArt v4 which has two advantages: a TCXO (temperature-compensated crystal oscillator) and a SMA antenna connector. The TCXO provides improved frequency stability while the SMA connector is well known among ham radio operators – unlike the MCX connector found on many DVB-T sticks.
The RTL-SDR device is controlled by the well-known open source SDR receiver software Gqrx which can be easily installed via packet manager. In order to receive WSPR with RTL-SDR tune qqrx to the desired frequency and check the spectrum chart. It is necessary to select USB (Upper Side-Band) as mode and turn AGC (automatic gain control) off. If a WSPR signal is present at the selected frequency you will then be able to hear the demodulated audio signal on your speaker.
As a next step we want to actually decode this audio signal which means we need to route the audio signal from Gqrx to the decoder software WSJT-X. Under Linux this can be achieved by generating a virtual sound device via
sudo modprobe snd_aloop. Upon entering this command a new sound device called „Analog Output – Built-in Audio“ will be created. In order to use it you have to select the new sound device within the sound configuration menu („Settings -> Sound„).
In Gqrx select „Built-in Audio Analog Mono“ as audio output device and in WSJT-X select „alsa_output.platform-snd_aloop.0.analog-mono.monitor“ as input. Now the WSPR signal demodulated by Gqrx should be visible in WSJT-X’s waterfall chart. It may be necessary to adjust the audio gain in Gqrx for optimal results. The signal strength reported in WSJT-X should be approximately 45 dB.
As a further improvement you can configure automatic control of Gqrx via WSJT-X. This allows to automatically tune Gqrx to the desired frequency upon a band change within WSJT-X. This can be enabled in Gqrx via menu „Tools -> Remote Control“ . In WSJT-X you have to open the menu „Radio Settings“ and set Rig to „Hamlib NET rigctl„. Ensure that both programms use the same port (WSJT-X usually uses port 4532).
Congratulations, you’ve set up a simple and cheap WSPR receiver station with RTL-SDR and can even report your receptions to the WSPR home page (Make sure to connect a good antenna to your RTL-SDR stick though).