April 25, 2021

Decoding APRS packets with RTL-SDR on Raspberry Pi

Let’s suppose that you don’t own a transceiver that decodes APRS packets directly. Or, you want to process the incoming APRS packets further from the command line. If this is your case, you can use your Raspberry Pi and RTL-SDR dongle to decode APRS packets. In this simple tutorial, you won’t even need a transceiver. Just connect the RTL-SDR to the Pi and attach an antenna.

It’s really only a one-line command that you’ll paste into the terminal. But first, you’d like to have all dependencies installed.

Let’s first make sure that we have rtl_sdr and multimon installed on our Pi.

sudo apt install librtlsdr0 rtl-sdr multimon

If we want to listen to APRS packets on 144.8MHz, we run rtl_fm (I’ve used gain value 42 in this example), then sample the audio output at 22.050kHz sampling rate and pipe it to multimon, which we set to decode AFSK1200 modulation and let it read from /dev/stdin, which is the standard input. We also set the input format to raw.

rtl_fm -f 144.8M -g 42 -s 22050 -l 20 - | multimon -t raw -a AFSK1200 /dev/stdin

I think this may come handy if you want to take a look at raw packets that are transmitted over the air.

Now, let’s take a look at a short video on how easy it is to decode APRS packets from RTL-SDR using multimon and rtl_fm.

If you own an Android phone, you can also attach an APRS cable to the HT and decode using app called APRSdroid.

These APRS cables can be obtained cheaply from Aliexpress. If you want to get more information, contact me.

That’s all, hope you’ll find it useful.



I'm a programmer and licensed ham radio operator. I provide software and hardware consulting and development. In summer I like to swim and bicycle. I also like to get out to any hill with some transceiver and make new contacts. But most of all, I love making new things.

You may also like...

Leave a Reply

Your email address will not be published. Required fields are marked *