Table of Contents

Creating an APRS iGate with an RTL-SDR and Dire Wolf

This is not finished yet, don't use!

It's possible to create an APRS iGate using a relatively cheap RTL-SDR “dongle”. As is common with SDRs they don't perform quite as well as a real radio, but they're a versatile tool that's worth having in the shack.

You'll need one with a Temperature Controlled Oscillator (TCXO) as the cheaper ones without drift too much for reliably decoding APRS. If you don't already have one I recommend the Nooelec NESDR SMArt. I also recommend avoiding the SMArtee version with it's inbuilt bias-tee unless you need one for a specific application.

Note that Dire Wolf also include their own detailed documentation here but below is a quick summary to get you started.

Installation

Install the required packages:

sudo apt-get install direwolf rtl-sdr

Create a directory for the logs:

sudo mkdir /var/log/direwolf 

Configuration

When using Dire Wolf with an rtl-sdr it's necessary to edit the systemd service to ensure rtl_fm runs and redirect Direwolfs output into journald.

Open /lib/systemd/system/direwolf.service in your favourite text editor and replace it with the following:

[Unit]
Description=DireWolf is a software "soundcard" modem/TNC and APRS decoder
Documentation=man:direwolf
AssertPathExists=/etc/direwolf.conf
Wants=network-online.target
After=sound.target syslog.target network-online.target

[Service]
SupplementaryGroups=dialout audio
ExecStart=/bin/sh -c '/usr/bin/rtl_fm -f 144.8M - | /usr/bin/direwolf -c direwolf.conf -t 0 -r 24000 -D 1 -'
StandardOutput=journal
StandardError=journal
SyslogIdentifier=direwolf

[Install]
WantedBy=multi-user.target

Reload systemd, enable and start Dire Wolf

systemctl daemon-reload
systemctl enable direwolf 
systemctl start direwolf 

Usage

Starting manually:

rtl_fm -f 144.8M - | direwolf -c direwolf.conf -r 24000 -D 1 -

View Dire Wolfs stdout:

journalctl -f -u direwolf