Portable APRS iGate, Digipeater and GPS tracker build

So this weekend, 27th July 2019, the Whangarei radio sale is on, and looking at the arps.fi map there is a rather large area north of Auckland that has no APRS coverage..

With a bunch of Hams travelling to this sale from the Auckland region, I decided I would build a portable APRS iGate and tracker out of a Raspberry Pi, GPS and a CM108 audio sound card – which I have had working for various other projects – that have not been blogged here just yet but will shortly.

I am going to document the process I have gone through to build this unit, which will be built from fresh on a Raspberry Pi.

My Instructions for installing:
Please note: I will let you do your own security / password / username changes – this is just what I have done excluding those settings.

Load the latest version of Raspbian onto your sd card.
I prefer to use dd for this – in my case

dd if=./2019-06-20-raspbian-buster-lite.img of=/dev/rdisk1 bs=1m

I like to make my Raspberry Pi’s headless so after writing the Raspbian OS to the card, you should have a boot folder visible from the SD Card – there create a plain text file called ssh to enable the SSH server on first boot and a file called wpa_supplicant.conf that contains the following details to enable your WiFi to connect on first boot up.

ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev

This will enable ssh on boot, and it should connect to your nominated WiFi access point on first power up – in my case, I will be connecting it to my Cellphone’s hotspot, so I can push the packets I receive to an iGate.

Once its booted up, ssh to in and Update to get the latest available packages list for raspbian, then the upgrade command to upgrade to the latest packages, then install the following new packages…

sudo su -
apt-get update
apt-get upgrade
apt-get install vim gpsd gpsd-clients git build-essential libasound2-dev libudev-dev alsa-utils rsyslog logrotate libgps-dev

Explanation as to why I am installing each of these packages :

vim – because I like vim
gpsd – because I am going to be running this as a tracker, and have a USB gps module

gpsd-clients – to see if the GPS is working.
git – to download from git because the raspbian version of direwolf is pretty old.
build-essential – will enable you to build packages
libasound2-dev – used for the cm108 sound card to allow direwolf to use the ptt GPI/O
libudev-dev – needed for developing applications that use libudev.
alsa-utils – needed for alsamixer and the like.
rsyslog – to log stuff 😉
logrotate – so your logged stuff does not fill the SD card too much
libgps-dev- gpsd development packages you can build direwolf against.

Once you have done all that,

git clone https://www.github.com/wb2osz/direwolf
cd direwolf
make install

Then quickly run direwolf you should get the following error:

Dire Wolf version 1.5
Includes optional support for:  gpsd cm108-ptt
Reading config file direwolf.conf
Audio device for both receive and transmit: default  (channel 0)
Could not open audio device default for input
No such file or directoryPointless to continue without audio device.

What I am looking for is gpsd and cm108-ptt support, which I can see is there.. thats a good thing.

Now to get on to configure direwolf.

Configuring Direwolf

These are my current (23/July/2019) settings, I am going to go for a drive tomorrow to work and see how they perform.

Basically I am beaconing to both an iGate and to RF – this is for both my GPS coordinates and for my Info beacons.

 ADEVICE  plughw:1,0
 GPSNMEA /dev/ttyUSB0
 LOGDIR  /var/log/direwolf/
 MODEM 1200
 PTT CM108 /dev/hidraw0
 TBEACON sendto="IG" symbol="igate" overlay=T VIA=WIDE1-1,WIDE2-1
 TBEACON sendto="0"  symbol="igate" overlay=T VIA=WIDE1-1,WIDE2-1
 CBEACON sendto="IG" info="> Testing Portable iGate and Digipeater via iGate"
 CBEACON info="> Testing Portable iGate and Digipeater via RF"
 DIGIPEAT 0 0 ^WIDE[3-7]-[1-7]$|^TEST$ ^WIDE[12]-[12]$ TRACE 
 FILTER IG 0 t/m

These settings seem to work correctly, I am sending the CBEACON out via iGate and RF based on those settings, and I am seeing a Digipeated packet when I receive a packet.

My GPS Coordinates are transmitted via RF and directly via TCP/IP to the iGate – which I know is not ideal, but there is going to be a large part of this drive that will not have any RF coverage, so I am looking forward to getting the trip logged and I am not able to digipeat my own packets and I would also like to see how useful this is to Digipeat the fellow Hams driving to the sale – if there are any.

The only settings I think I will try and take from my TinyTrack 4 is my SmartBeacon settings, which I think I will need to confirm from Knotts to MPH as that is what Direwolf seems to use.

As always, if you see any problems, or comments and suggestions would love to hear from you.

Leave a Reply