Following on my previous article on my quick and dirty APRS tracker I was brimming with confidence and decided to tackle the task of setting up an APRS IGate.

All I needed was a spare 2m receiver and a convenient computing engine, i.e., a PC of sorts. I engineered a simple solution to interface the radio to a Raspberry PI with a USB sound card. Before putting it all together I came to the sudden realisation that I have an old USB DVB-T dongle lying around. Interesting thing is that I bought it years ago to listen to ham frequencies and then boxed it after a very fun filled afternoon. I only just realised that we’ve never had DVB-T transmissions in South Africa. Why were these being sold locally?

Back on point, I decided to implement the RTL USB dongle with a Raspberry PI as my IGate. Tragedy struck, or more accurately, I realised I left my PI at the office. Fortunately, my old server still booted up, albeit a bit slowly.


The physical layout is immensely simple. RTL USB dongle, in this case, VideoMate U620F, plugged into the USB port of my trusty server (old hand me down headless AMD machine). That’s kinda it for the physical construction. I’m still using the original wire antenna supplied with the USB dongle while testing.


These days it seems there is almost no need for any difficult hardware implementations. All of it happens in software.

In this case, I needed to install the RTL Software Defined Radio packages on Ubuntu. This would take care the demodulation and present an audio stream derived from the narrow band FM signal on 144.800 MHz (the APRS frequency in use in South-Africa).

The next package would take care of relaying received APRS messages. Conveniently there is a package called direwolf that not only decodes AX.25 APRS messages but also acts as the IGate.

root@Media:~# apt-get install direwolf rtl-sdr

The config needed to make this work is stored in /etc/direwolf.conf.

LOGDIR /var/log/direwolf

ADEVICE null null



MODEM 1200

IGSERVER euro.aprs2.net


PBEACON sendto=IG delay=0:30 every=15:00 symbol=”igate” overlay=R lat=-25.84091699999999 long=28.159347000000025 COMMENT=”144.800 MHz Rx Only | DireWolf 1.3 on PC+SDR”

The above is all I added to make it work. The important bits are your call sign, passcode (http://apps.magicbug.co.uk/passcode/index.php)  and location and comment.

In order to get the RTL dongle and direwolf to communication I added a small script to init.

rtl_fm -f 144796.5e3 -s 24000 -l 0 – 2>/var/log/direwolf/rtl_fm.log | direwolf -c /etc/direwolf.conf -t 0 -n 1 -r 24000 -b 16 – 2> /var/log/direwolf/error.log 1>/var/log/direwolf/output.log &

This starts up the RTL dongle on the correct frequency and feeds the audio output to direwolf. Notice that my frequency is specified as 144.7965 MHz. It turns out most of these RTL dongles have ever so slightly different clock frequencies and it is necessary to compensate for this error. I chose the easy way and just modified the frequency. There is an option to feed rtl_fm a correction factor, but I was in too much of a hurry to figure out how it works.

ZS6IO-9 audio level = 56(11/13) [SINGLE] __:::____
[0.3] ZS6IO-9>APDR13,WIDE1-1:=2550.46S/02809.55E>022/001/A=004783 http://aprsdroid.org/ Paul Greeff – Nissan Hardbody
Position, normal car (side view), APrsDRoid replaces old APAND1.
S 25 50.4600, E 028 09.5500, 1 MPH, course 22, alt 4783 ft
http://aprsdroid.org/ Paul Greeff – Nissan Hardbody


[ig] ZS6IO-11>APDW12:!2550.46SR02809.56E&144.800 MHz Rx Only | DireWolf 1.3 on PC+SDR

The above is the output of the direwolf log file showing first a position report from my Nissan Hardbody, and secondly, its regular update with it’s own position and description to the APRS network.


And there you have it, my QTH on APRS.fi.


I haven’t posted in quite some time, but not as long as this site will lead you to believe. Although it indicates the last post is some time in 2014, Digital Ocean managed to break my container and lose almost a year of my posts. And since that time, I have been somewhat lazy in posting. Yet, with the birth of my daughter, and the stark realisation that I have not engaged in any large or small projects of late I decided to do something about it.

For years I have wanted to get involved in APRS again, however, my little APRS Opentracker kit has failed me, and I’m either to tired or lazy to figure it out, or the flash has died and hence, reprogramming it does not happen.

I tried many a minute in vain to resuscitate it and then discovered to my astonishment that I have had all the tools I needed to TX my position and more via 2m APRS.


I’ve been using APRSDroid (https://aprsdroid.org/) for years to track my position on my Android cellphone. Although it is brutal when it comes to battery consumption it works exceptionally well. The small application activates the GPS, determines your location and uploads it and presto, your callsign and location appears on http://aprs.fi.


Little did I know this application has a number of other capabilities programmed into its settings. The feature in question is the ability to generate APRS at 1200 baud through the phone speaker. This meant I could connect any handy hand held radio with VOX to the phone and send position information.


The construction is remarkably simple. Wouxun UV-8D, a handy Android phone, a cheap ZTE phone my wife had lying around, and a 3.5 mm audio jack to connect the audio out from the phone to the radio set to VOX on 144.800 MHz.

The image above is my first test drive around town to see what kind of coverage I can expect. Even though there weren’t many IGates in the area, I still had very good reception from a number of IGates and Digipeaters.