Updated guide to setting up an APRS RX only iGate using a Raspberry Pi, RTL-SDR dongle and a pre-built image

** image has been updated as of 21/04/2018 to resolve the problems some people had booting their Pi **

This post is an updated version of the original article I wrote in February 2017.  It’s using Raspbian Stretch rather than Raspbian Jessie, has Direwolf 1.4 instead of Direwolf 1.3 and the method used to start the gateway has changed.  Direwolf is now running as a service and can be easily started, stopped, restarted, enabled or disabled through simple commands.  It has been tested on a Raspberry Pi Zero, a Pi Zero W, a Pi 2B, a Pi 3B and the latest Raspberry Pi 3B+.  You now only need to edit one file to get a working gateway unless you want to select a different frequency from 144.800MHz, then you’ll need make an additional edit.

The instructions are very similar to my previous post except the process of automatically starting Direwolf which has been simplified.  Even if you are familiar with the previous image, please ensure you read the entire article, especially if you need to change the frequency as the file structure has changed.

The entire process detailed here should take less than half an hour to complete.
You will only need to edit one or perhaps two files.

First, download my custom built Raspberry Pi image from here (the filename is aprs-igate-stretch.img) or preferably as a torrent from here.  This is a 2.2Gb file which will expand to approximately 8Gb when you decompress it.  Unzip it and write it to an SD card.  The image was created using an 8Gb SD card but I recommend you use a 16Gb card in your Raspberry Pi.  4Gb cards are practically impossible to find these days and 8Gb cards are going the same way.  I’ve found SanDisk Ultra 16Gb cards to be about the best when it comes to performance and price and they can be picked up for about £8.  This image is fully up to date as of 21st April 2018.

There are two methods of downloading the Raspberry Pi image. The first is direct from SourceForge (aprs-igate-stretch.img) and the second is as a torrent.  If you use the torrent method, please seed the file for as long as possible because the more people who seed, the quicker the download will be for others.
Thank you.

MD5 of aprs-igate-stretch.zip is f8469173f3e3d9c420dbaefaff7d9875
MD5 of aprs-igate-stretch.img is 22998d62e7dd1b3f270834f6bfd5f089

Connect your RTL-SDR dongle and a network cable to your Raspberry Pi and boot it.  I thoroughly recommend you use a dongle with TCXO as it won’t drift in frequency and you shouldn’t need to do any frequency calibration.  I’m using an RTL-SDR R820T2 RTL2832U 1PPM TCXO SMA Software Defined Radio (Dongle Only) device which is the latest model, complete with TCXO.  Other dongles are available such as this NooElec version from Amazon which is a little cheaper and will arrive quicker or you can search eBay for similar dongles.

These instructions are written to do everything from a command line.  If you plug in a monitor, mouse and keyboard and boot to the Graphical User Interface (GUI), you will see an icon on the desktop called Dire Wolf. DO NOT click on this icon, it does not start Direwolf.  You’ll get an error message telling you it can’t open an audio device.

You will need to know what IP address your Raspberry Pi has on the network.  I do this by looking at my router and checking what devices have connected and then set up a DHCP reservation so each particular Raspberry Pi I own will always have the same address each time it reboots.

Open up a terminal/dos prompt or whatever client software you’re going to use to connect to the Raspberry Pi and log in.  In my case, the Raspberry Pi is on so I use the command
ssh pi@

You’ll be prompted for a password – It’s currently set to raspberry.
Use the following command to enter the Raspberry Pi config utility:

sudo raspi-config

It’s very important to expand the filesystem – You do this by selecting option 7 Advanced Options, then A1 Expand Filesystem, then select OK and you’ll be returned to the main screen.

Now select the first 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 4 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.

Now you should set your Wi-Fi country – By default, this image is set to GB (Great Britain) so if you’re in a different country you should change this to ensure that the Pi uses the correct frequencies.  Select 4 Localisation Options and press enter.  Scroll down to I4 Change Wi-fi Country and press enter. Find your country, press enter and then press enter again to return to the main screen.

Finally, select 2 Network Options and press enter.  Press enter again on N1 Hostname and give your Raspberry Pi a suitable name.

You will now be returned to the main Raspberry Pi Software Configuration Tool main screen.  Use the tab key to select <Finish> and press enter.  You will be asked if you would like to reboot now.  Press enter to reboot and once your Pi has rebooted, log back in using the new password you set earlier.  Make a note of this password because if you forget it, you’ll need to start from scratch.

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 one (or possibly two) files.

cd ~
sudo nano -c sdr.conf

Scroll down to line eight and change the xxx to your callsign and required SSID.  I use -10 as my SSID so this line reads MYCALL G6NHU-10.  Please use your own callsign, mine is just shown as an example.

In the section below, 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 IGLOGIN.  Change the xxx to be the same as the callsign you entered above (including SSID) and then change the numbers 123456 to the passcode you obtained from the APRS Passcode Generator.

At the bottom of that file there is one long line that starts with PBEACON.  Replace xx.xxxxxx with your latitude, yyy.yyyyyy with your longitude and zz with your callsign (including SSID).

Save the file by pressing ctrl-x, then hit the Y key and then press enter.

You can now perfom a test using the following command
(144.800 is the APRS frequency in the UK, change as required).

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

If all is well, you should see something like this.

Initial test of the RPi and RTL-SDR Dongle APRS RX only iGate using Raspbian Stretch

Initial test of the RPi and RTL-SDR Dongle APRS RX only iGate using Raspbian Stretch

Press ctrl-c to exit the test.

If you’re using a Mac and connecting to your Raspberry Pi via the terminal you may notice the screen flashes badly.  You can fix this easily and quickly by going into the terminal Preferences/Profiles and make sure the box “Allow blinking text” is not ticked.

On some Raspberry Pis, you may get an error when you try and run the initial test.  There are two possible errors, the first is:
Signal caught, exiting!

User cancel, exiting…
Illegal instruction

The second error which has been spotted in testing is:
Dire Wolf version 1.4
No supported devices found
Illegal instruction

Either error can be resolved by redownloading and compiling Direwolf using these commands (copy and paste them one at a time exactly as written below:

cd ~
sudo cp sdr.conf sdr.old
sudo rm -r direwolf
git clone https://www.github.com/wb2osz/direwolf
cd ~/direwolf
sudo make install
make install-rpi
make install-conf
cd ~
sudo mv sdr.old sdr.conf

Now reboot your Raspberry Pi and run the test again.

You may find that rtl_fm doesn’t report that it’s tuned to exactly the correct frequency, this is nothing to worry about because the RTL-SDR works by mixing the incoming RF with a local oscillator and then IQ sampling the resulting base-band (difference) signal.  The local oscillator therefore needs to be offset a little so that the wanted signal doesn’t fall at the 0Hz point.  rtl_fm automatically selects an appropriate offset for the chosen sampling rate and displays the resulting “offset oscillator” frequency, not the actual “tuned” frequency.

If your local APRS frequency is NOT 144.800MHz then you will need to edit an additional file.
sudo nano /usr/local/bin/dw.sh

You’re looking for this line.

Change 144.80M to whatever your local APRS frequency is.
Save the file by pressing ctrl-x, then hit the Y key and then press enter.

Direwolf is already installed as a service so you must enable it by typing the following command
sudo systemctl enable direwolf

With the service enabled, you have more commands to use

This starts the service
sudo systemctl start direwolf

This command stops the service
sudo systemctl stop direwolf

If you want to disable the service so it doesn’t start automatically on reboot, use this command
sudo systemctl disable direwolf

This very useful command will show the status of the service and see the last few lines of output to demonstrate that it’s all running correctly.
sudo systemctl status direwolf

Sample of the output from running sudo systemctl status direwolf

Sample of the output from running sudo systemctl status direwolf

There is an even more useful command which you can run either via SSH in a terminal window or when you’re logged onto the Raspberry Pi via the GUI which will give you a constantly updating display of the stations heard.  This command is

sudo journalctl -o cat -af -u direwolf

Output from sudo journalctl -o cat -af -u direwolf

Output from sudo journalctl -o cat -af -u direwolf

(press ctrl-c to stop the display)

After enabling the service, reboot your Raspberry Pi and once it’s restarted, it will automatically connect to the APRS network and operate as a receive only iGate. There is an enforced two minute delay from the Pi starting to the gateway connecting, this is to allow all the system services to start up.  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 about two and a half minutes from rebooting.

It’s been mentioned that you might like to calibrate the frequency of your RTL-SDR dongle.  I didn’t and I didn’t notice any performance issues but it’s likely that if you’re using an older or cheaper dongle then it might be a little off frequency.  If you’d like to do this, it’s very straightforward to do requiring that you edit just one file.  I’ve written some instructions which you can see by clicking here.

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 previous blog article where I list each command I used to create this image.  It’s also worth downloading the full Dire Wolf user guide.  I learned how to add the service by reading a post from Josh, VK2HFF on the Direwolf Yahoo reflector.

I hope this image is useful and as always, I’d appreciate any feedback, comments or thoughts below.


On the 25th April 2018 a massive thunderstorm passed overhead here and caused the Raspberry Pi Zero which runs my APRS iGate (MB7UIV) to crash.  It had ben running flawlessly without a reboot for nearly three hundred days.  I decided to rebuild it using the method above and the total time it took, including writing the SD card and reinstalling Direwolf using the instructions provided was around forty minutes.

Posted in Amateur radio, APRS, Data, FM, Raspberry Pi, VHF | Tagged , , , , , , | 36 Comments

Statistics for the first quarter of 2018

I’ve had a good first quarter of 2018, partly helped because I dropped the legs of my OCFD towards the end of last year, cable tied my smartuner to the bottom of the mast and put up an inverted L which gave me access to the lower bands.  It works better than my old doublet did but it’s still very much a compromise aerial.  The OCFD is still there and it won’t take me long to reinstate it.

In the first three months of 2018 I’ve made just over 1,000 QSOs and worked 113 DXCC entities using both G6NHU and M7P.  A fair few of these are contest QSOs using RTTY or PSK which have added a lot to my data count and FT8 has been a very useful tool for me during the winter doldrums.  Much has been written about whether FT8 is ‘real’ radio or not.  To me, it’s the next natural progression from JT65 and JT9 and I’ve decided that I do enjoy using it.  It’s not as much fun as the older and more traditional data modes but it’s still an enjoyable mode to operate.

Breakdown of QSOs made during the first quarter of 2018 using G6NHU and M7P

Breakdown of QSOs made during the first quarter of 2018 using G6NHU and M7P

Map of stations worked during January, February and March 2018

Map of stations worked during January, February and March 2018 (click for large version)

Despite there being a good number of QSOs here, this really does show to me how poor conditions are at the moment with the bulk of contacts being within Europe.  It’s also very obvious how I’ve been working towards DXCC on 17m using just FT8 due to the number of contacts on that band.


Posted in Amateur radio, Data, DXCC-17m-FT8, HF | Leave a comment

When is an “All Time New One” not an all time new one?

Earlier this month I heard 5A1AL calling CQ on 17m and managed to work him fairly quickly.  My log showed him as an “All Time New One” (ATNO).

When I looked at his qrz page, he mentioned that he uses ClubLog so I checked my callsign there against his log and was very surprised to see an entry from 2013 on 15m CW which was odd because that QSO wasn’t in my log.

Without any more info apart from the year, I really didn’t know where to start.  My log keeping is generally good so I searched through the log for the year which took as while as I made nearly 5,000 QSOs in 2013 but there was no sign of his callsign.

As part of my activities, I upload my QSOs to ClubLog and it gives very useful feedback on your logbook.  It took me a while to work out what had happened and I had something in the back of my mind about this callsign.  I keep a log file called ‘Invalid QSOs and dodgy DXCCs’ and when I checked in there, my previous QSO with 5A1AL was included.

What I think had happened was that when I originally worked him, I uploaded to ClubLog and the QSO was rejected because he hadn’t been confirmed as valid for DXCC. Because of this, I moved the QSO out of my main log.

I put the QSO back into my main log, re-uploaded to ClubLog and it matched.

So what I thought was an ATNO was actually just a new band and mode slot.

Posted in Amateur radio, HF, New DXCC | Tagged | Leave a comment

17m FT8 DXCC challenge is complete

My 17m challenge to work 100 separate DXCC entities using only FT8 is complete.  I expected it to take a lot longer than a mere seven months.  I don’t have them all confirmed but that wasn’t part of the challenge – I just wanted to work them.

In the last few days I’ve worked Hong Kong, Mauritania, Reunion, Togo, Panama, Vietnam and Bonaire to take me up to the magic figure of one hundred countries worked.  This has also taken me up to 159 countries worked on 17m in total using all modes.

Logbook of The World and the DXCC program don’t break data modes down into anything other than just “Digital” so this isn’t an actual award I’ll be able to claim but it’s satisfying to know I’ve completed my challenge.

To wrap it up, here’s a list of the countries I’ve worked.

Posted in Amateur radio, Data, DXCC-17m-FT8, FT8, HF | Tagged , , | Leave a comment

How to make your vertical HF aerial work better

Add more radials.

No really, that’s it.


Posted in Amateur radio, HF | Comments Off on How to make your vertical HF aerial work better

QSL card from Iran

My DXCC count of worked and confirmed stations has been slowly increasing over the last few years and I’ve received QSLs from every entity I’ve worked except for Iran.  I’ve only made one QSO with a station in Iran and up until late last year, I’ve not chased for the QSL card due to the hoops that station has placed which required jumping through in order to get the card.  One of those was to send an IRC and I simply didn’t have any.  Someone sent an IRC with their QSL card for GB5RC (despite all the QSL info asking people not to) which had an expiry date of December 2017 so I decided to use that.

I sent off my card, an envelope, the IRC and the required number of ‘green stamps’ by registered post at the end of November and last week I finally got a QSL card back.

QSL card from EP3SMH in Iran

QSL card from EP3SMH in Iran

I’d love to now be able to say that I’ve got exactly the same number of DXCC entities confirmed that I’ve worked but I’m still one short.  I’ve worked Z60A two or three times since Kosovo was accepted into DXCC and they haven’t uploaded their logs to LoTW yet.  They’re due to do that within a month or so of the activation so when they do, I’ll be on 273/273

There are many award schemes run by different societies and groups such as eQSL and QRZ but DXCC is the only one I’m actively interested in chasing. It really is the daddy of awards and I don’t think any of the others come close to it in prestige.

You can read the original article from 1935 which laid the foundation for DXCC here.

I’ve been told that somehow these blog posts are being cross posted to a couple of amateur radio newsgroups automatically.  I’m not responsible for this and I have no control over it.  I wouldn’t choose to have my entries replicated there but I can’t do anything about it.  If you’re reading this on a newsgroup then please be aware that I won’t see any replies or comments.

Posted in Amateur radio, HF, New DXCC, QSL, RTTY | Tagged | Leave a comment

Do people complain you’re quiet on the repeater?

One of the biggest complaints on our local repeaters is that people are quiet with very low audio.  Often they’re using the cheap Chinese handheld wirelesses such as the Baofeng UV-5R or similar which have a reputation for being quiet.  There are well documented ‘fixes’ available such as drilling out the microphone hole.

However it’s not just those radios.  Listening this evening, one station asked another how far away he was speaking into the microphone and the answer was “about four inches”.  This is a big part of the problem.

By holding a microphone this distance away from your mouth you’re introducing two problems. Firstly, most fist mics are designed to be held close to the mouth.   By moving the mic further away, you’re reducing the audio hitting the insert massively.  Secondly, if you’re holding the mic away from your mouth, even the slightest movement of your head from side to side will mean you’re even further away and the volume will get even lower.

There are videos of people on YouTube where they’re holding a fist microphone a foot away from their mouth. How anyone ever hears them, I really don’t know.

I’m naturally fairly quietly spoken but I’ve never had any complaints of quiet audio.  I’ve found the best way to hold a fist microphone at 90 degrees to my mouth so I’m speaking across the insert. This reduces any breath noises, pops and sibilance and by holding the mic directly against the side of my face, it’s always nice and close to my mouth and it’s always consistently in exactly the same place.

How not to hold a fist microphone

How not to hold a fist microphone

The best way to hold a fist microphone for good loud consistant audio

The best way to hold a fist microphone for good loud consistant audio

This is a good habit to get into, it means the microphone is always in the same place, it’s getting maximum audio and because you’re speaking over the mic instead of directly into it, you won’t be popping and adding breath noise all over the place.

If you’re regularly told you’re quiet or that your audio ‘comes and goes’ then perhaps consider the way you hold your microphone rather than diving into the radio and looking for the mic gain.

I’ve been told that somehow these blog posts are being cross posted to a couple of amateur radio newsgroups automatically.  I’m not responsible for this and I have no control over it.  I wouldn’t choose to have my entries replicated there but I can’t do anything about it.  If you’re reading this on a newsgroup then please be aware that I won’t see any replies or comments.

Posted in Amateur radio, Operating tips | Comments Off on Do people complain you’re quiet on the repeater?