Setting up a Lean YAAC APRS Fill-in-Digi with Raspberry Pi


Here is my guide to setting up a highly efficient Fill-in-Digipeater. It’s great for position report and also for email and messaging in an on and off-grid situation. My current setup, described in this workflow, consists of a Raspberry Pi 3, a Mobilinkd TNC-4, and a Yaesu FT-70DE connected to a ground plane with 5 watts of power. And yes, it works very well with other Raspberry Pi models, of course with Direwolf and a sound card and radios with build in sound cards or TNCs.

In the U.S., APRS is currently experiencing a resurgence, which is undoubtedly due in part to popular YouTubers and their valuable content on the subject, such as Jason KM4ACK or Craig KM6LYW. APRS is arguably the most underrated digital communication technology, capable of much more than simply transmitting position reports. The open-source software YAAC by Andrew KA2DDO works exceptionally well and offers an incredible range of features.


Step 1: The Foundation (OS Selection)

I use a older Raspberry Pi 3. It has plenty of power for this job, but since it only has 1GB of RAM, we need to be smart. Of course, you can also use a different Pi model that you have available.

For the Pi3 or smaller models, I recommend flash your SD card with Raspberry Pi OS Bookworm (32-bit) with Desktop. Why 32-bit? A 64-bit OS consumes significantly more RAM. Since YAAC runs on Java (which loves memory), sticking to 32-bit gives your Pi room to breathe. Don’t install the “Full” version with office tools—we don’t need that dead weight in the shack. Why Bookworm and not Trixie? Bookworm is a legacy version and currently runs more stably than newer versions.

Step 2: Nailing Down the TNC (Udev Rule)

Nothing is more annoying than a TNC (like the TNC-4) randomly swapping its USB port (ttyACM0 today, ttyACM1 tomorrow) after a reboot. We fix this permanently before installing anything else.

Check your usb connection:

ls -l /dev/serial/by-id

Open your terminal and create a dedicated rule:

sudo nano /etc/udev/rules.d/99-tnc.rules

Paste the following line, replacing my serial number (2065316C4652) with the exact serial of your TNC:

SUBSYSTEM=="tty", ATTRS{serial}=="2065316C4652", SYMLINK+="ttyACM99"

Save (Ctrl+O, Enter) and exit (Ctrl+X). Apply the rule immediately without rebooting:

sudo udevadm control --reload-rules && sudo udevadm trigger

From now on, your TNC is rock-solid at ttyACM99.

Step 3: Prepping the Workbench & Installing YAAC

Let’s get the system up to date, install Java, and download YAAC. Just run these commands one by one in your terminal:

sudo apt update && sudo apt upgrade -y
sudo apt install default-jre unzip -y
mkdir -p ~/YAAC
cd ~/YAAC
wget https://www.ka2ddo.org/ka2ddo/YAAC.zip
unzip YAAC.zip

Step 4: Building the Desktop Shortcut

A good tool should hang ready on the wall. We don’t want to type terminal commands every time we start YAAC. Let’s build a clickable desktop icon using the original YAAC logo.

Create the shortcut file:

nano ~/Desktop/YAAC.desktop

Paste this exact block into the editor:

[Desktop Entry]
Name=YAAC
Comment=APRS Digipeater
Exec=sh -c "cd ~/YAAC && java -jar YAAC.jar"
Icon=/home/pi/YAAC/images/yaaclogo32.ico
Terminal=false
Type=Application
Categories=Network;HamRadio;

Save and exit. Now, make the button “live” (executable):

chmod +x ~/Desktop/YAAC.desktop

Note: On the first double-click, the Pi might ask if you trust this file. Click “Trust” or “Execute”.

Step 5: The “Secret Sauce” Configuration

When you launch YAAC for the first time, you can either import an existing configuration via File -> Import Configuration (highly recommended if you have an XML backup!) or set it up manually.

If you configure it manually, here is how you build a lean, mean Fill-in-Digi:

  1. The Handheld Path: Set your VRC N76 (or any handheld) to transmit with the path WIDE1-1, WIDE2-1.
  2. The Digipeater Tab: Enable only WIDE1-1 and check the “Trace” box. Disable TEMP1-1 and WIDE2-n. Your YAAC will now exclusively act as a local doorman for handhelds.
  3. The IGate Trick: Under the Transmit tab, check “Allow RF->IS gating” but leave “Allow IS->RF gating” unchecked. You are now an Rx-IGate! You feed local traffic directly into the internet (aprs.fi) without blasting worldwide internet traffic back over your local RF frequency.
  4. The Station Beacon: A fixed station doesn’t move, so don’t spam the network. Set your beacon’s Initial repeat rate to 1800 seconds (30 minutes). For the path, remove everything and just leave --direct--. Let the local IGates pick you up.

Step 6: Pro-Tip: Declutter the Map

Out of the box, the YAAC map can look like a messy workbench. Let’s kill the visual noise.
Go to View -> Layers -> Select Geographical Map Layers. Uncheck absolutely everything you don’t need for pure APRS operation. The map instantly becomes clean, fast, and completely focused on what matters: the stations and the RF paths.

Disclaimer: This setup was developed in collaboration with Gemini AI. While we’ve worked hard to make this guide as “bulletproof” as possible, tech is always evolving—errors may occur, or specific functions might need a bit of extra tweaking.

The solution? Don’t hesitate to ask Gemini yourself if you get stuck. Good luck with your build!


Vy 73 de DL1GKK


Setup YAAC Raspberry PI