APRS on Linux

APRS on Linux

So want to track your high-altitude balloon or autonomous rover in the middle of the desert without an Internet connection?  Me too!

Here’s my notes how I set it up on Ubuntu 16, using Dire Wolf and YAAC.

Dire Wolf is a cleverly named software TNC: Decoded Information from Radio Emissions for Windows Or Linux Fans.   It will decode APRS messages from your radio audio jack connected into a computer’s soundcard.  We then use YAAC, Yet Another APRS Client, to retrieve the information and display it on a map.  This is a stand-alone setup that will allow you to track APRS without a network connection.  Just a radio, antenna, and computer.

First thing you need to do is, turn on your radio and make sure you’re hearing some APRS signals.  If you don’t have a transmitter, find the APRS frequency in your area.  Mine is 144.390MHz.  Listen for a couple of minutes.  Adjust the volume to a reasonable level as we will need to fine tune this later.  Once you are sure you’re receiving signals, connect your radio’s external speaker jack to your computer’s microphone jack.

Open up Sound in System Settings.  Click the Input tab and find your computer’s soundcard.  You’ll want to adjust the Input Volume slider so that when an APRS message comes in, you don’t overload the microphone.  If the volume indicator is pegged on the high side, turn down the volume of the radio.  It’s faster to do this by turning off your squelch so you’re sending constant audio into the mic.  Fine tune both volumes so that you’re around 50%.  We’re just guessing.   Dire Wolf is going to tell us if it’s too loud or not so don’t worry too much about it.

Install Dire Wolf

Next we will want to install the software which is going to decode the APRS messages.  Follow the Dire Wolf download and installation instructions:

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

I got on error on make regarding: /usr/bin/ld: cannot find -lasound

Was able to get past it by installing:

sudo apt-get install libasound2-dev

After that the installation ran fine and it gave a prompt to run another command to install an icon.  Type direwolf in Dash and it should be there.   Open up the application.  A window will open up telling you it’s listening for AGW client connections  on port 8000:



Now monitor your radio’s Signal Meter, when you see a strong signal come in, check the Dire Wolf window.  You might get an output such as this:

The red text tells you the audio is too high.  The line above tells you it’s 117 and reduce it so that it’s around 50.  You can adjust it in two places.  Turn your radio volume down, or turn down your computer’s microphone input volume.

When you’ve got the levels correct, you should be seeing lots of green


Installing YAAC

You probably want to see the data conveniently on a map, and that’s what YAAC will do for us.  First, make sure you using Java 8, type:  java -version

If not, download and install from the Oracle website.

Next, download and install YAAC:

  1. Open a terminal (lxterm) window.
  2. Download the YAAC.zip file
  3. mkdir YAAC
  4. cd YAAC
  5. unzip ../Download/YAAC.zip


  1. java -jar YAAC.jar

Configure YAAC

  1. If it asks you to Install by Wizard, select that.  Otherwise go to File -> Configure -> By Wizard
  2. Enter your call sign in the box and select Next
  3. Select Fixed checkbox
  4. Unselect Digipeater/I-Gate
  5. Select Next
  6. Select No GPS and then Next
  7. Select “Add AGWPE Port”  (this is the important part!)
  8. Hostname is localhost and Listen Port is 8000 (this is Dire Wolf)
  9. Protocols select APRS
  10. Select Next

You should have be looking at a blank grid.  Provided Dire Wolf is running correctly(check that window and make sure you are getting APRS messages), you’ll soon start seeing icons show up on the grid.

Adding a Map to the Grid

  1. Select File  -> OpenStreetMap Extract Datasheet
  2. Select Geofabrik.de (there may be other ways to import maps, but this worked for me and allowed me to pick just my state and not the whole huge world which is a very big file)
  3. Select your Sub-Region and drill down to your local area.
  4. Choose the file under “Other Formats” that ends with the extension .bz2
  5. It will take a long while to download
  6. When it is complete, go back to YAAC and File -> OpenStreetMap Import Raw OSM File
  7. Browse to your downloaded .bz2 file

Once that is complete, instead of a blank grid, you should be seeing icons representing nearby stations on a local map.

One thought on “APRS on Linux

  1. Just FYI, a few corrections for your chase vehicle setup on YAAC:

    1. Configure yourself as mobile rather than fixed (presumably, you’re going to be going somewhere when you’re chasing your payload). It doesn’t make a lot of difference, but does pick a better icon set for your chase vehicle.

    2. Get a GPS and hook it up to YAAC in the car. YAAC can then auto-pan the map to keep your chase vehicle on it and show your chase vehicle’s orientation and course on the map along with your target.

    3. You don’t have to go through the pain of importing your own OSM data. I have the entire planet available (pre-imported) on my website from where you downloaded YAAC, available to download your selected area from a simple menu choice in YAAC (while you still have Internet connectivity before you head into the field).

    Otherwise, thanks for the props.

Leave a Reply

Your email address will not be published.

This site uses Akismet to reduce spam. Learn how your comment data is processed.