packet
APRS on Linux with YAAC (Yet another APRS Client) and Direwolf

APRS on Linux with YAAC (Yet another APRS Client) and Direwolf

This is the counter blog post to the windows version with pinpoint here. The blog follows along with our Modern Introduction to Packet Radio. Please note, that before proceeding below, you need to have a working dire wolf configuration for your radio. If you do not yet have the dire wolf TNC working with your radio, please follow the documentation here. (Ultimate Direwolf TNC Installation Guide for Windows and Linux). Below is basically a copy/paste from the windows version for the explanation of APRS and it’s vocabulary. If you don’t need to review this, you may skip it.

What is APRS(Automatic Packet Reporting System)?

If packet radio gives us the ability to communicate data over RF, APRS gives us a language that everyone can understand. (Not that it’s the only one). APRS is great at delivering position reports over a specified time interval automatically. It also has the ability to send direct short form messages. That in itself is handy for EMCOMM, and situational awareness. With the addition of the APRS-IS(APRS Information System), and a wide network of volunteer I-Gates and Digipeaters, we now introduce the ability to communicate globally, and even send traditional SMS/Email messages routed via the internet.

Basic Vocabulary

I know nobody likes homework, but I promise you will have a better time knowing what these are going into it.

  • APRS-IS (APRS Information System):
    The APRS-IS was started in the 90’s as a way to show APRS activity on the web from RF for everyone to see. It has grown into a wide network of volunteer stations that network together called I-Gates(Internet Gateways). NowAPRS-IS is a term to describe the network consisting of all of these internet gateways, and online systems that route packets between them, and the websites that show the data within it like https://aprs.fi.
  • I-Gate:
    I-Gates are Internet connected APRS stations that relay traffic from RF to the APRS-IS.Often times, I-Gates can also relay traffic from the APRS-IS back to RF as well, (known as a TX I-Gate). Combined with the APRS-IS I-Gates give us the ability to send packets over a wide network reaching RF in other locations of the globe we couldn’t normally with our radio alone.
  • Digipeater PATH:
    You can think of a digipeater much like a voice repeater, just a little “smarter”. APRS packets come with a “Path” in the header that gives special instructions how how the packet should be routed (or repeated). This path is usually in the format “WIDEn-N” where “n/N” is an integer. The first “n” outlines how many “Hops” you would like your packet repeated. A hop consist of a digipeater repeating your packet. So if you have a “2” in this position, that means you would like your packet repeated once more after the first time by another digipeater if it “hears” it. The second number, “N” acts as a counter for how many hops are left until the packet should no longer be repeated.
    A good default path is Wide2-1, as you rarely need to get further than a single hop. Wide2-2 will get you to neighboring cities or states in some cases, and Wide3-3(don’t use this) can get you repeated across the country. The APRS network can get very congested due to the nature of this system, so always use the least amount of hops possible to achieve your goal. You can learn more about APRS digipeater paths here.
  • SSID:
    Because many operators use APRS in different configurations, and sometimes at the same time, a special suffix system exists to tell others “what” you are. This suffix system comprises the numbers 0-15 and is appended to the end of your call sign. Example: “KN4MKB-7” means I am a handheld station. KB9VBR does a good job at explaining which ones are used for what on his blog post here.
  • Overlay Symbol:
    APRS is a “visual” mode of communication, and so the stations that report positions contain a “symbol code”. This is the image that represents your station to others. Because transmitting these images over APRS itself would be slow, they are stored within your client software. This means they can look different between software packages, but really shouldn’t, as there is a standard. Most APRS software will hide the codes themselves away from the user, and instead offers a nice image selection menu, and handles the code for you behind the scenes. You can learn more about he overlay symbol codes used here.
  • BEACON:
    A Beacon is an APRS packet that is transmitted at a regular interval. This can be a set time, or based on current speed and direction (also known as SmartBeaconing by HamHUD Nichetronix). These beacons usually serve to identify a station every 10 minutes, usually include a location and a comment.

YAAC (Yet Another APRS Client) Installation

Go ahead and start direwolf, we will need it in just a moment.

YAAC is a software APRS client that uses Java to run. This makes it cross platform. There are more windows APRS client solutions, but Linux is more limited. YAAC is one of the only aprs clients that is still being updated and maintained for Linux Operating systems.

Installing Java

First we will install java.

On Debian/Ubuntu/Raspbian run the following:

sudo apt update
sudo apt install openjdk-8-jdk
#You may need to install 11 instead depending on your version.
sudo apt install openjdk-11-jdk
#If neither work, just go with your default:
sudo apt install default-jdk

On Arch based distributions, run the following:

sudo pacman -S jre-openjdk
sudo pacman -S jdk-openjdk

Install Unzip and wget

We will be downloading a zip file, so you must be able to extract the contents.

On Debian/Ubuntu/Raspbian run the following:

sudo apt-get install unzip wget

On Arch based distributions, use the following:

 sudo pacman -S unzip

Download YAAC

The official website for YAAC can be found here. You can look for the download link, or click here to just download the zip file directly. Once downloaded, we need to extract the contents. If you are using a desktop environment, you should be able to right click -> extract.

If you need to use the command line for whatever reason, issue this command to create a folder, download the zip via wget, and extract the contents to it from the download.

mkdir yaac_folder
wget https://www.ka2ddo.org/ka2ddo/YAAC.zip
unzip YAAC.zip -d yaac_folder
cd yaac_folder

You should end up with the following files:

If you haven’t opened a terminal in this folder already, do so now.

Starting Yet Another APRS Client

With a terminal open in the folder containing “YAAC.jar”, issue the following command to start the software:

java -jar YAAC.jar

Once it starts, you may see an error, you can press “Yes” to discard the port.

Configuration

We are first going to go to File -> Configure -> Expert Mode to set the software up.

Adding our RF (Dire Wolf) Port for RF APRS Communication

Most of the Default options are good, but lets navigate over to the “Ports” tab, and click “Add”.

Set Port Type” to “Kiss-over-TCP”.
Set Host name to the IP where your dire wolf instance is running. (127.0.0.1 or localhost if it’s on the same computer)
Set Callsign to your own.
Set Transmit to Enabled
If you would like YAAC to function as a digipeater, you can “Enable” the WIDE1-1, WIDE2-1 boxes.
Press Save

Adding our APRS-IS Port for IGating, and Internet based APRS Communication

Click “Add” Once more on the ports screen.
Change Port type to APRS-IS.
Set the Host Name to the nearest server using the drop down menu. (North America uses noam.aprs2.net)
Visit https://apps.magicbug.co.uk/passcode/ and input your call sign to generate a passcode.
Set APRS-IS Password(Incorrect name by the way) to the code you got from the previous step.
Set Transmit to Enabled
Click Save

Setup your Beacon

Navigate to the beacon tab, and clock the Beacon Name drop down -> Add Beacon -> Name it whatever you like.

Enable station beacon Beacon Type
Grab your latitude and longitude from:
https://aprs.fi/ (Find your location, and notice the LAT LON on the top right when you move your mouse cursor. This is to avoid any weird conversions.
Fill in your LAT/Long
Set your “Display Symbol” to something matching your station.
Set Monitor Frequency if you wish to let others know you’re listening.
Set Free text to a small message you would like sent with your Beacon.
Click “Save Changes” At the Top.

Go back to the ports tab, click your “Kiss-over-TCP” port to highlight it. Click “Edit” at the bottom. We will now disable the “Default” Beacon, and enable the new one we just created. Save and close the Beacon window.

Making the Maps work.

Save and close the configuration windows. You should now see things start to populate on your map.

But you may notice the maps aren’t working. We will fix that now.

You have two choices:

You can download the maps from either https://planet.openstreetmap.org/ or https://download.geofabrik.de/ . If you go with this option, simply Click File -> OpenStreetMap -> Import Raw OSM.

The other option is simply clicking File -> OpenStreetMap -> Download Pre Imported Tiles, and specifing a LAT/LON and radius for tiles you’d like.

Now we have a map we can look at:

Using YAAC

That’s it for the configuration.

We can now use YAAC to do all of the things we know APRS to do.

Sending a message is as as simple typing or selecting a Callsign on the bottom, and entering a message.

You can get more information on stations by clicking them on your map. You can also right click these stations, and do things like track them, send messages, and even show Line of Sight.

Wrapping up.

That doesn’t cover EVERY aspect of YAAC, but it will get you started. You can now use this as a digipeater/igate with a visual overlay on systems like the raspberry pi. If you just want to run your own igate/digi, check this guide out here, that will show how it’s done with direwolf alone.

Consider Subscribing!

Signup for our once a month newsletter!

We don’t spam! Read our privacy policy for more info.

1 thought on “APRS on Linux with YAAC (Yet another APRS Client) and Direwolf

    • Author gravatar

      Sir, Not sure where to start
      Enviroment: Raspberry pi 400 running Bookworm with GUI on 32 gig sd card.
      I have YAAC up running sorta. Could not get Java to load with the instructiions on your web page. I finally got java to load with this “sudo apt install -y librxtx-java openjdk-10-dbg” and YAAC came up. I have not been able to download and map files from your web site.. there are many errors– too many to list. The very top line: javax.net.ssl.SSLException: java.lang.Runtime Exception…. Perhaps you might know what is happening?
      Thanks

Leave a Reply

Your email address will not be published. Required fields are marked *