Linux Command Line based Doppler Correction and Demodulation Tools

Programmer Andres has recently been working on creating a toolset for receiving AX.25 packets (FSK 9600) from satellites with an RTL-SDR or other software defined radio. The AX.25 protocol is commonly used for APRS packet radio or telemetry in amateur radio satellites. Andres’ programs focus on using a true UNIX philosophy of piping data between different programs. The toolset consists of doppler correction and demodulation tools and the piping philosophy is demonstrated in the following example:

rtl_sdr | doppler | demod | multimon-ng

Andres writes…

rtl_sdr receives raw IQ data from satellites which is then piped to “doppler” which corrects doppler offset. Zero centered baseband signal is piped to “demod” which outputs demodulated audio suitable for multimon-ng to do actual AX.25 packet decoding.

Such pipeline is intended for resource constrained embedded platforms like RaspberryPi or BeagleBoneBlack where running full blown SDR software would be too much.

The doppler corrector tool works by using the same libraries for calculating satellite positions as those used in Gpredict and the demod tool uses the liquid-dsp library to demodulate the IQ stream.

More information about Andres’ project can be found in these three blog posts that he has written.

Andres also writes that he would be interested in hearing any feedback or pull requests on GitHub for these tools.

How to Receive the Funcube Satellite with an RTL-SDR

Over on the blog author Jan as written a post explaining how to receive the FUNcube satellite with an RTL-SDR dongle (note in German, use Google translate). The FUNcube is a CubeSat (a low cost miniature 10 cm cube sized satellite) which is intended mainly for educating young people about radio, space, physics and electronics, but has also piqued the interest of amateur radio hobbyists.

Jan first writes how the Funcube Dongle was originally invented as a low cost means of receiving the FUNcube satellite, but now there are the even lower cost RTL-SDR dongles. Jan’s post then goes over how to receive the FUNcube at a frequency of 145.935 MHz using software such as SDR-Radio or SDR# and how to decode the telemetry data using the FUNcube dashboard. He also explains a bit about the FUNcubes operating modes which change the satellites transmission strength depending whether or not its solar panels are in sunlight or not.

Funcube Telemetry Dashboard
Funcube Telemetry Dashboard

ARTEMIS: Free Signal Identification Software

Marco, a reader of and user of our sister site has been developing some Windows software to display the database in an easier to access format. The software is called Artemis and can be downloaded from

Artemis allows for various example signals to be quickly viewed with the corresponding example waterfall image, frequency, bandwidth and other information. There is also a filtering function that allows you to search by frequency and type of signal.

Marco writes that he would love to hear any user requests for new features such as more filters, improvements, or anything else as well as any bug reports. We also note that data such as frequencies and bandwidths provided in the database may not yet be 100% correct since the wiki is relatively new and is yet to mature.

Screenshot of Artemis
Screenshot of Artemis

SDR Capture The Flag Competition Tutorial

During several hacker and security themed conferences (Shmoocon, Bsides, Derbycon, Defcon, etc) organizers from Wireless Village have been setting up competitive WiFi and SDR themed capture the flag (CTF) games. In the competition the organizers broadcast a signal and the competitors are required to complete various tasks (capturing flags) such as determining the centre frequency of the transmission, demodulating the signal and finding any meta data contained within the signal such as codec flags in DVB-T signals and RDS data in FM signals. The team which captures the most flags wins a prize. The process of capturing flags often requires the use of some sort of software defined radio like the RTL-SDR, HackRF or BladeRF.

Recently, Russell one of the CTF organizers wrote in to let us know about a SDR CTF training resource that he has put together. The site contains various exercises/tutorials that allow participants to practice the skills needed to compete in the competition. Most exercises involve using a Raspberry Pi together with PiFM for transmitting a simulated competition signal, then receiving and demodulating the signal with a SDR. The exercises include running rtl_power, setting the PPM offset, decoding morse code, AFSK, RDS, ASK/OOK, DVB-T, POCSAG, MotoTRBO, SSTV and decoding numbers stations.


The International Space Station is Transmitting SSTV Images

Happysat, a reader of has written in to remind us that the International Space Station (ISS) is currently transmitting slow scan television (SSTV) images out of respect of the 80th birthday of Russian cosmonaut and first man to go to space Yuri Gagarin. The images will be transmitted continuously until 24 February 21.30 UTC.

SSTV is a type of radio protocol that is used to transmit low resolution images over radio. A RTL-SDR dongle and satellite antenna (QFH, turnstile, even terrestrial antennas like random wire antennas and monopoles have been reported to work) can be used to receive and decode these images. Happysat writes that it is expected that the ISS will continuously transmit 12 images at a frequency of 145.800 MHz FM using the SSTV mode PD180, with 3 minute off periods between each image.

To decode the images it is recommended to use SDR# and pipe the audio into MMSSTV, a freeware SSTV decoding software program. To get the best results out of MMSSTV happysat recommends enabling “Auto slant” and “Auto resync” under Options->Setup MMSTV->RX.

To know when the ISS is overhead you can track it online using or

Received SSTV images can be submitted to the ARISS Gallery, and Happysat has also uploaded a collection of his own personal received images here.

Happysat also shows us some images from the ISS showing the Kenwood D710 transceiver located in the Russian service module, the computers used to generate the SSTV signal and the antennas used for amateur radio transmission.

One of the broadcast SSTV images from the ISS
One of the SSTV images broadcast from the ISS
Computers on the ISS used to transmit SSTV images
Computers on the ISS used to transmit SSTV images
Antennas on the ISS used to transmit SSTV images
Antennas on the ISS used to transmit SSTV images

Highlighting some SDRPlay Reviews

The Radio Spectrum Processor (RSP) by SDRplay is a receive only software defined radio with a 100 kHz to 2 GHz range (with a small gap at 380 MHz to 430 MHz), a 12-bit analogue to digital converter (ADC) (~10.4 ENOB), 8 MHz bandwidth and a bank of several switched front end filters. It currently costs $299 USD and with these specs and price range we consider the RSP to be a competitor to the Airpsy and Funcube Dongle software defined radio offerings.

Recently several reviews of the SDRplay RSP have been written online and in magazines. The first review comes from the pages of the UK based Radio User magazine (pdf warning) which goes through the specs, design, install and operation of the device. A more recent review shows an unboxing and there’s also this review submitted to the SDRplay team which demonstrates some FM dxing results. There are also several more reviews collected by the SDRplay team linked on the SDRplay website at

We also note that we recently posted about some in depth measurements that Leif (programmer of Linrad) recently made to multiple SDR’s, including the SDRplay.

The Radio Spectrum Processor (RSP) by SDRplay.
The Radio Spectrum Processor (RSP) by SDRplay.

The SatNOGS Story

In a previous post we talked about the SatNOGS project which aims to provide low cost satellite ground stations (where one critical component is currently an RTL-SDR dongle) along with free networking software in order to create a crowd sourced satellite coverage network. The SatNOGS project was also recently the grand prize winner of the Hackaday prize which saw them take almost $200k US dollars of prize money.

Today Hackaday has written a post promoting their project and explaining what it is all about. Check out their post here and go and support this project by checking out the SatNOGS community.

The internal of the current SatNOGS ground station.
The internal of the current SatNOGS ground station.

SDR-J Updated to Version 0.98

The RTL-SDR compatible DAB Radio receiving software SDR-J has recently been updated to version 0.98. DAB stands for digital audio broadcasting and is a type of digital radio signal used in some countries for transmitting broadcast radio stations in digital audio.

The new versions fixes some minor errors, brings back their ‘spectrum viewer’ software and also comes with a ‘DAB mini’ receiver which is simply a smaller windowed version of the regular DAB receiver. The new version also now supports the sdrplay and Airspy software defined radios.

SDR-J DAB Receiver
SDR-J DAB Receiver

Recovering 433MHz Messages with RTL-SDR and MATLAB

Recently reader Ilias wrote in to let us know about a post he uploaded to his blog showing how he was able to decode data from a device transmitting at 433 MHz using an RTL-SDR and MATLAB. MATLAB is a technical computing language that can be used for signal analysis and processing. His post clearly explains the steps he took and is a great aide for anyone wanting to learn about decoding simple signals.

The goal of Ilias’ project was to be able to use the RTL-SDR and MATLAB to uncover the details of a 433 MHz transmitter he bought on Ebay. He wanted to see if he could determine the protocol and recover the data before even looking at the transmitter’s library code.

To do this he first used SDR# to record the data sent at 433 MHz. Then by looking at the waveform in the Audacity audio editor he was able to determine that the signal was on-off-key (OOK) modulated and from this knowledge he was able to manually recover the binary string. Next he used MATLAB to create a program that can automatically decode the received OOK signal. His post goes into further detail about the signal processing steps he took in MATLAB.

433 MHz OOK Transmitter
433 MHz OOK Transmitter

Getting started with amateur satellite reception and the RTL-SDR

Over on the blog the author Jan has uploaded a post introducing the hobby of amateur satellite reception with the RTL-SDR (in German, use Google Translate). Amateur radio satellites may transmit signals like CW (morse code), voice, APRS and telemetry.

In the article Jan discusses the antennas required to receive satellites, the satellite tracking software gpredict and he introduces some amateur radio satellites that have strong transmitters and are thus easy to receive. He also shows waterfall screenshots of several amateur radio satellites that he has received.

FO-29 Doppler Effect
FO-29 Doppler Effect