Decoding and
Displaying APRS Packets from WebSDR Audio
XASTIR
displaying decoded APRS packets from the Southampton
University Wireless Society WebSDR (http://websdr.suws.org.uk/)
Things you will need …
alsa-utils (for ALSA loopback device
and arecord – probably already
installed with your Linux distro –
I used Ubuntu 14.04 LTS.)
JACK Audio Connection Kit (I’m
not sure if this is even needed, but I installed it anyway as it helps
you to hear things whilst using the loopback!)
multimon-ng (to decode AFSK packets.)
XASTIR (to display packets
graphically.)
Audio capture and decoding …
Follow the tutorial at https://www.ab9il.net/software-defined-radio/websdr-digimodes.html to install both alsa-utils and the JACK Audio
Connection Kit. (Yes
you can also use fldigi to
decode HF data modes from WebSDR with
the same config!)
Download and install multimon-ng …
git clone
https://github.com/EliasOenal/multimonNG.git
cd multimonNG
mkdir build
cd build
qmake ../multimon-ng.pro
make
sudo make
install
Next you need to go to http://www.websdr.org and choose a suitable
‘radio’. You
are able to filter by band (2m!) and your region as appropriate, which
makes this a lot easier when you are searching!
Set the frequency and mode as
required - 144.800 MHz in Europe, 144.390 MHz in N America. FM in
either case! Set
the volume (on the webpage) about mid-way (my system volume was at
100%) and tick the squelch option if white noise annoys you! You may have to play
about a bit to get the levels right when it comes to getting multimon-ng to decode things.
At this stage I had to go to my
audio settings and select the loopback device for playback. Yes, it goes very
quiet right about now - you can run JACK using the setup explained
above to hear things again (it doesn’t seem to interfere with ALSA
grabbing the audio!)
Here’s the tricky bit! What we now have to
do is capture the WebSDR audio
using the ALSA loopback device and pipe it tomultimon-ng to decode it.
After much head-scratching this
is what I came up with …
arecord -t
raw -D plug:cloop -f
S16_LE -r 22050 | multimon-ng -a
AFSK1200 -A -t raw -
You should see decoded APRS
packets scrolling up your terminal.
Displaying it graphically …
Install XASTIR. By far the easiest
way is to use the command apt-get install xastir if your distro has a precompiled binary
available. This
way it will also install all the dependencies XASTIR requires to work. If not, you will
have to download and compile from the source available at www.xastir.org. If you decide to
compile from source, you will need to install the dependencies it asks
for along the way.
Those who have never compiled
from source before will need to install some development packages
(Google is your friend!) but the actual steps to compile and install
XASTIR from source are very familiar if you have compiled a program
from source previously.
./configure
make
sudo make
install
Run the configure script with ./configure and if/when it fails
install the dependency it complains is missing. Once the configure
script completes successfully, it will tell you with which options it
is going to compile XASTIR. I also installed ImageMagick andGraphicsMagick separately by running sudo apt-get
install imagemagick graphicsmagick before running the
configure script one last time as although it isn’t a dependency as
such, you can’t display any decent maps without it! There are some other
add-ons you can compile into it; do so if you wish.
Now you’re good to make the source code then sudo make
install the binaries.
Once you have installed and
configured XASTIR for your callsign and
location (it will prompt you on first start) the option we’re
interested in is Interface > Enable Server Ports on XASTIR’s menu bar. Select it, that’s
all you need to do to XASTIR at this stage.
OK, so we’ve already got ALSA
grabbing the audio from WebSDR and
piping it to multimon-ng to
be decoded; now to get this lot talking to XASTIR! Fortunately, XASTIR
has installed some other tools needed to complete this tutorial.
Follow (and
modify as appropriate) the tutorial at http://kj6vvz.com/xastir-with-rtl-sdr.html. We only need to
complete steps 13 onwards!
At step 13, substitute for …
mkfifo –m a+rw aprs.fifo
arecord -t
raw -D plug:cloop -f
S16_LE -r 22050 | multimon-ng -a
AFSK1200 -A -t raw - >aprs.fifo
Step 14 we can ignore, step 15
we already completed above while configuring XASTIR and step 16 is
optional if you already know your APRS-IS passcode.
Steps 17 and 18 can be
completed as per the instructions, not forgetting to substitute the my_call_sign, my_callpass_code and the pipe location as
appropriate for your setup. Don’t forget to run chmod a+x ./aprs-inject.sh before trying to execute it!
Things should now start to
appear on the map in XASTIR and you can confirm data is coming from the
injection script by selectingView > Incoming Data on XASTIR’s menu bar.
Point to note (a gotcha which I
haven’t figured out yet!) …
I needed to use 2 terminal
windows. One
to run the arecord/multimon-ng pipe to the fifo and
another to run the injection script reading from the fifo and sending data to XASTIR. If I tried to run
one or the other (or both) in the background, I ran into problems.
A J Corbett, G0WFV
24 Nov 14