Introduction: Build an Amateur Radio APRS RX Only IGate Using a Raspberry Pi and an RTL-SDR Dongle in Less Than Half an Hour
Please note that this is now quite old so some parts are incorrect and out of date. The files you need to edit have changed.
I have updated the link to give you the latest version of the image (please use 7-zip to decompress it) but for full instructions, please see the article on my blog here.
There are a quite a few methods online showing how to set up an amateur radio APRS receive only iGate using a Raspberry Pi and various different types of receivers. I had an RTL-SDR dongle and a Pi spare so I thought I'd find a guide and follow it.
It's quite complicated!
Some guides refer you to other guides, some have steps missing and others are just totally incomprehensible, assuming a detailed knowledge of the Raspberry Pi operating system.
I've created a Raspberry Pi image you can download with all the software installed that only requires you to edit two (or perhaps three) files to make it work.
Step 1: What You'll Need
A Raspberry Pi
I guess that's fairly obvious. The nice thing about this is that you can use any model Pi, it doesn't need to be the latest model (Raspberry Pi 3 at time of writing), this works perfectly well using a Raspberry Pi Zero. I'm using a Zero for my iGate and the CPU sits at around 35%.
An RTL-SDR dongle
Not all RTL-SDR dongles are created equally, there are many different types so I can't tell you exactly what to get. However, I recommend you find a model with the R820T2 chipset and TCXO (temperature controlled crystal oscillator) as that will give you the best frequency accuracy and stability. I'm using the RTL-SDR R820T2 1PPM TCXO dongle which is available direct from RTL-SDR or from many other suppliers.
Step 2: Download and Write the SD Card Image
To start with, you need to download my custom built Raspberry Pi image from here or preferably download via a torrent file by clicking here. I'm hosting this myself so would appreciate anyone who helps to seed this file.
This is a 2.2Gb file which will expand to around 4Gb when you decompress it. This image will fit on a 4Gb SD card and work perfectly so you don't need a high capacity card.
To be sure you've got a good download, you can check the MD5 values.
MD5 of aprs-igate.zip is dde367dc0db9365b84850fcdc46519e4
MD5 of aprs-igate.img is 93060310c5a5c4a3a46822944dc0401f
MD5 of aprs-igate-stretch.zip is f8469173f3e3d9c420dbaefaff7d9875
MD5 of aprs-igate-stretch.img is 22998d62e7dd1b3f270834f6bfd5f089
Once you've unzipped the downloaded file, the next step is to write it to an SD card. Rather than reproduce the well written instructions from the Raspberry Pi site, you can see them here.
Note - Some people are having problems decompressing the file. Please try 7-Zip if you're getting errors.
Step 3: Connect to the Raspberry Pi and Run the Initial Setup
If you don't already know what the IP address of your Raspberry Pi is then you need to find it out. One of the easiest ways to do that is to connect to your internet router and look at the list of connected devices to determine which one is the Raspberry Pi.
Once you've done that, I recommend you set up a DHCP reservation so that whenever you reboot your Raspberry Pi, it always has the same address.
My Raspberry Pi has the IP address of 192.168.1.144. Yours will almost certainly be different.
If you're using a Mac or a computer running Linux then you can connect to your Raspberry Pi from the terminal, if you're using Windows then I recommend a program called PuTTY to connect.
I use a Mac so from a terminal window I type:
You will be prompted for a password - The default password on the image is raspberry
This will log you in to the Raspberry Pi. At the prompt, type the following command to enter the configuration utility:
Expand the filesystem by pressing enter on option 1 then select OK and you’ll be returned to the main screen.
Use the arrow keys to move down to the second option Change User Password and press enter. Press enter again and you will be prompted to Enter new UNIX password. Type a new password, press enter and re-type your new password again. You will get a message telling you your password has been changed successfully.
Use the arrow keys again to move down to Localisation Options and press enter. Use the arrow keys again to select Change Timezone and press enter. First select your Geographical area and press enter and then select your Time zone and press enter.
You will now be returned to the main Raspberry Pi Software Configuration Tool main screen. Use the tab key to select and press enter. You will be asked if you would like to reboot now. Press enter to reboot.
Step 4: Configure the IGate Software
You will need an APRS passcode so use the APRS Passcode Generator at Magicbug to generate one.
All the software has been pre installed, all you need to do is edit two (or possibly three) files.
Log back into your Raspbery Pi and type the following commands
sudo nano sdr.conf
Scroll down a few lines and change the xxx to your callsign and required SSID. -10 is recommended for iGates so if your callsign is G9ABC then the line would reads MYCALL G9ABC-10
In the section below that edit the line starting with IGSERVER to be the correct one for your region. I'm in Europe so my line reads IGSERVER euro.aprs2.net
Scroll further down and you'll find a line that starts with IDLOGIN. Change the xxx to be the same as the callsign you entered in the MYCALL section above (including SSID) and then change the numbers 123456 to be the passcode you obtained from the APRS Passcode Generator.
Right at the bottom of the file there's a long line that starts with PBEACON. Scroll along the line and replace xx.xxxxxx with your latitude, yy.yyyyyy with your longitude (remembering that if you're west of the equator then your longitude will be a negative number) and zz with your callsign, including SSID.
Save the file by pressing ctrl-x, then hit the Y key and finally press enter.
You can now test the installation by typing the following command. Note the frequency here is set to 144.80M so if you're located somewhere where that's not the correct frequency, you need to change this line as appropriate.
rtl_fm -f 144.80M - | direwolf -c sdr.conf -r 24000 -D 1 -
If all is good, you'll see a screen like the one at the top of this step.
Press ctrl-c to exit the test.
If your local APRS frequency is not 144.800MHz then you'll need to edit an additional file.
sudo nano dw-start.conf
You're looking for the line which starts:
DWCMD="bash -c 'rtl_fm -f 144.80M -
Change 144.80M to whatever your APRS frequency is, for example 144.39M for North America.
Save the file by pressing ctrl-x, then hit the Y key and finally press enter.
The last thing to do is to configure the system so that the APRS iGate starts automatically whenever you reboot the Raspberry Pi. Enter the following command:
Scroll down to the bottom and you will see the following line.
#* * * * * /home/pi/dw-start.sh >/dev/null 2>&1
Delete the # at the start of that line.
Save the file by pressing ctrl-x, then hit the Y key and then press enter.
Step 5: Final Reboot - Job's Done!
Reboot your Raspberry Pi and once it’s restarted, it will automatically connect to the APRS network and operate as a receive only iGate. Nothing will be echoed to the display while it’s running like this so you can check your status on aprs.fi by searching for the callsign you entered (including SSID). You don’t even need to log into the Raspberry Pi, the gateway will start automatically within ninety seconds of rebooting.
Please note – I am not claiming originality for this setup method, I’ve simply followed what’s already available out there on the internet and created an image based on those instructions for your convenience. My two source documents were Raspberry Pi SDR IGate and Raspberry Pi Packet TNC. I thoroughly recommend you familiarise yourself with both of them to see what’s been done here. You can also read my blog article where I list each command I used to create this image. It’s also worth downloading the full Dire Wolf user guide.
1 Person Made This Project!
- VicreoL made it!