Raspberry Pi APRS iGate

By | July 1, 2016

Further to my previous post(s) on APRS and Specifically Direwolf, here’s something with a bit more meat.

APRS has always been a bit of a thing for me. I like to go for a ride or a walk on the Lakeland fells and whilst I don’t get to go on as many SOTA trips as I’d like I do nearly always carry a hand held when I’m on the mountain bike. I know that there are a few local hams who like a bit of APRS and you never know when you’ll need a way of communicating when you’ve gone over the handbars and smashed your phone….

So what?

Well I also have an early Raspberry Pi model B and an RTL-SDR dongle. I live quite close to a digipeater and also have a terrible QTH for an iGate. So, I thought I’d combine the two with my liking f APRS. I’m glad to say the process was really easy and very robust. Want to have a go yourself? Ok…

So lets start

  1. Get you SD card and load it with the OS (I used the Raspian image from the Raspberry Pi site)
  2. Get a copy of the Direwolf software from WB2OSZ (and simply excellent documentation) from GitHub
  3. Have a look in the Direwolf docs folder. Follow the Raspberry-Pi-SDR-IGate instuctions and the Raspberry-Pi-APRS. I’m definitely not going to try and replicate of better these docs as they are perfect
  4. Get an APRS passcode from Magicbug
  5. Off you go, simple as that. Any issues then the Direwolf Yahoo Group should sort you out

Direwolf

That’s it really. There are a few little odds and sods like beaconing your iGate. This can be achieved by adding a line into the sdr.conf file so it looks a little like this:

# # Sample configuration for SDR read-only IGate.
#
# We might not have an audio output device so set to null.
# We will override the input half on the command line.

ADEVICE null null
CHANNEL 0
MYCALL MX0WRC

# First you need to specify the name of a Tier 2 server.
# The current preferred way is to use one of these
# regional rotate addresses:
# noam.aprs2.net - for North America
# soam.aprs2.net - for South America
# euro.aprs2.net - for Europe and Africa
# asia.aprs2.net - for Asia
# aunz.aprs2.net - for Oceania

IGSERVER euro.aprs2.net

You also need to specify your login name and passcode.
# Contact the author if you can't figure out how to generate # the passcode.

IGLOGIN MX0WRC 12345 (your passcode)
PBEACON sendto=IG delay=0:30 every=10:00 symbol="igate" overlay=R lat=54^38.5611N long=3^3$

# That's all you need for a receive only IGate which relays
# messages from the local radio channel to the global servers.

I’ve not managed to get it to start up automatically if it falls over with the dw_start.sh script but that is a work in progress. Here we are on APRS.fi

APRS

Ok, thats all very well but mine is remote. There are a few suggestions from the RPi people but I plumped for Weaved and tightVNC as a solution. Here are the instructions I followed for Weaved, and for TightVNC . If you don’t fancy a link then try this:

Install Weaved and run the installer

sudo apt-get install weavedconnectd
sudo weavedinstaller

Then TightVNC

sudo apt-get install tightvncserver

Run it once to do the password thing, then to run at boot

sudo su
sudo nano vncboot.sh

Enter this into nano

#! /bin/sh
# /etc/init.d/vncboot

### BEGIN INIT INFO
# Provides: vncboot
# Required-Start: $remote_fs $syslog
# Required-Stop: $remote_fs $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Start VNC Server at boot time
# Description: Start VNC Server at boot time.
### END INIT INFO

USER=pi
HOME=/home/pi

export USER HOME

case "$1" in
 start)
  echo "Starting VNC Server"
  #Insert your favoured settings for a VNC session
  su - $USER -c "/usr/bin/vncserver :1 -geometry 1280x800 -depth 16 -pixelformat rgb565"
  ;;

 stop)
  echo "Stopping VNC Server"
  /usr/bin/vncserver -kill :1
  ;;

 *)
  echo "Usage: /etc/init.d/vncboot {start|stop}"
  exit 1
  ;;
esac

exit 0

Then chmod

chmod 755 vncboot

Lastly

update-rc.d -f lightdm remove
update-rc.d vncboot defaults

I can’t tell you how useful to follow the steps enough. I found that one RTL dongle isn’t quite the same as another so there can be issues. So much so that I wiped the SD card a few times so as to get right and simple. If you didn’t want to run Jessie, Jessie lite will do but you’ll need to find an alternative way to remotely access the RPi, with something like SSH as VNC doesn’t work (easily) without the X server.

As always, comments, suggestions and alternative approaches are always welcome, after all this is a hobby and none of this hard work belongs to me, I just follow the instructions 😉

Leave a Reply