APRSMap: A Cross-Platform Open Source APRS Client for Linux by DC6AP

If you have ever wanted a desktop APRS application on Linux that does more than just plot dots on a map, one that pulls live packets from your radio and the APRS-IS network, decodes weather balloons, tracks ADS-B aircraft, and lets you send and receive APRS messages without firing up a Java applet in a browser, then APRSMap by Andreas Peters, DC6AP, deserves a spot on your shack computer.

APRSMap is a free, open-source APRS client written in Free Pascal with Qt6 bindings, running natively on Linux (and Windows, though the author is upfront about Linux being the primary platform). It is actively developed, with version 0.7.0 released in June 2026 and a steady stream of features landing across eight releases. This article is a tour of what APRSMap does, how it fits into a modern Linux ham radio station, and how to get it running.

What Is APRSMap?

APRSMap is a cross-platform APRS (Automatic Packet Reporting System) client that displays APRS traffic on an interactive map. It is the companion to FlexPacket, DC6AP’s packet radio client for Linux, and the two are designed to work together, FlexPacket handles the AX.25 radio side, and APRSMap handles the visualisation, messaging, and tracking.

The project lives on GitHub at github.com/andreaspeters/aprsmap, is licensed under the European Union Public Licence v1.2 (EUPL), and ships as a Linux AppImage for easy installation without compiling from source.

What sets APRSMap apart from web-based APRS viewers like aprs.fi is that it is a native desktop application that combines multiple data sources into one window:

  • RF APRS packets received through FlexPacket (your radio + TNC)
  • APRS-IS traffic via an IGate connection (the global APRS internet backbone)
  • ADS-B aircraft positions via dump1090
  • Weather balloon telemetry from RS41-SG and DFM sondes

All of these appear on the same map, with filtering, tracking, raw message inspection, and weather charts, all offline-capable with local OpenStreetMap tiles.

Who Is DC6AP?

Andreas Peters, DC6AP, is a freelance backend and systems engineer based in Schleswig-Holstein, northern Germany, with over 27 years of experience in Linux system administration and software development. Professionally, he works on distributed systems, Apache Mesos, and container orchestration. In the ham radio world, he maintains a suite of open-source packet radio tools for Linux:

  • FlexPacket, a modern packet radio client for BBS access and 7PLUS file transfer
  • APRSMap, the APRS client covered in this article
  • TFKISS, a KISS TNC interface
  • OpenBCM 2.x, a packet radio BBS system
  • HAMRadio Dashboard, a monitoring dashboard for ham radio stations

He documents his projects on his blog, HamRadioTech.de, and his YouTube channel @DC6AP. His focus is clear: bringing modern, user-friendly packet radio and APRS tooling to Linux, a platform that has historically been underserved compared to Windows.

Key Features

Dual Data Sources: RF and APRS-IS

APRSMap can receive APRS packets from two sources simultaneously:

  1. Radio via FlexPacket, packets decoded by your TNC and passed to APRSMap through FlexPacket’s AX.25 stack. This is your local RF picture: stations heard directly or via digipeaters on the air.
  2. IGate (APRS-IS), a filtered connection to the global APRS internet backbone. You configure a range filter (default: 200 km around your position) or any standard APRS-IS filter, and APRSMap pulls matching traffic from the network.

You can enable or disable each source independently from the settings, which is useful if you want to focus purely on RF or purely on the wider APRS-IS picture.

Offline OpenStreetMap Tiles

One of the most practical features for portable or off-grid operation is local OSM tile support. Instead of fetching map tiles from an online server (which requires an internet connection and can be rate-limited), APRSMap can use tiles stored on your local disk. DC6AP documented this workflow in his blog post “OSM Offline Tiles for APRSMap”, where he describes using QGIS to generate UTM-accurate paper maps and tile sets.

This makes APRSMap viable for field deployment, emergency communications, SOTA activations, or anywhere you want APRS visualisation without relying on a network connection.

ADS-B Aircraft Tracking via dump1090

Since v0.5.0, APRSMap can display Mode S / ADS-B aircraft positions by integrating with dump1090, the popular RTL-SDR-based ADS-B decoder. If you have an RTL-SDR dongle running dump1090, APRSMap will plot aircraft on the same map as your APRS stations, a unique combination that is hard to find in any other single application.

This is particularly interesting for hams who already run an ADS-B receiver and want a unified view of both aerial and ground traffic, or for anyone interested in the overlap between amateur radio and aviation monitoring.

Weather Balloon Telemetry: RS41 and DFM

APRSMap decodes telemetry from Vaisala RS41-SG and DFM weather radiosondes, plotting them as tracked objects with altitude charts. Radiosondes are launched twice daily by meteorological agencies worldwide, transmit on 400-406 MHz, and their data is APRS-compatible. Being able to track them in the same application as your regular APRS traffic is a niche but genuinely useful feature for weather enthusiasts and sonde hunters.

APRS Object Tracking and Altitude Charts

Any APRS object on the map can be individually enabled for tracking. Once tracked, APRSMap records its position history and displays an altitude chart over time, useful for tracking balloons, mobile stations, or any object reporting altitude.

Message Handling

Since v0.7.0, APRSMap supports both user-to-user APRS messages and bulletin messages. You can send and receive text messages over APRS, set your own position with a configurable symbol, and configure the update interval (in minutes) for position and message transmissions. This brings APRSMap closer to being a full-featured APRS client rather than just a viewer.

Position Format Support

APRSMap decodes the full range of APRS position formats:

  • Standard NMEA position reports
  • Mic-E (Minimum Information Correction, Emergency) position data, used by many mobile trackers and handheld GPS units
  • Compressed position data, which packs lat/lon/symbol/course/speed into a compact format

It also displays the Maidenhead grid locator in the status bar alongside your GPS position, a detail that DXers and SOTA operators will appreciate.

GPS Integration

Your own position can be set automatically via gpsd (added in v0.7.0), the standard GPS daemon on Linux. This means APRSMap can act as a mobile APRS station: feed it a GPS receiver, and it will beacon your position at the interval you configure.

Last-Seen Window and Raw Message Viewer

Two utility windows help you manage the flow of APRS data:

  • Last-seen window, shows recently observed APRS objects, useful for catching stations that have already scrolled off the map
  • Raw message viewer, displays the raw APRS packet text for any selected object, invaluable for debugging or understanding exactly what a station is transmitting

PoI Filter

A simple filter lets you show only specific kinds of points of interest on the map, for example, weather stations only, or mobile stations only. This keeps the map readable when there is a lot of traffic.

Version History at a Glance

APRSMap has evolved rapidly through eight releases. Here is a summary of the major milestones:

Version Key Additions
v0.1.0 Initial release
v0.2.0 IGate filters, multi map provider support, locator in status bar
v0.3.0 Status report support, configurable APRS data age/cleanup
v0.4.0 Local offline OSM tiles, FlexPacket pipe fixes
v0.5.0 ModeS/ADS-B via dump1090, object tracking, PoI filter, configurable APRS symbol
v0.6.0 Last-seen window, raw message viewer, altitude charts, RS41 balloon support, more weather charts
v0.6.1 Hotspot callsign fixes, speed cleanup fixes
v0.7.0 Wayland support, gpsd support, Mic-E decoding, compressed position decoding, user/bulletin messaging, send own position, enable/disable IGate and dump1090 independently

The full changelog is available in the repository.

Technology Stack

APRSMap is built with Lazarus 4.5 (the Free Pascal RAD IDE) and uses Qt6 for its GUI via the libqt6pas bindings. This is the same toolkit approach used by FlexPacket and gives APRSMap a native, responsive desktop interface on Linux without the overhead of Electron or a web browser wrapper.

The project uses several Lazarus component libraries:

  • BGRABitmap and BGRAControls, for 2D graphics and bitmap manipulation
  • LazRGBGraphics, for RGB image processing
  • TRichMemo, for rich text display
  • LazSerial, for serial port communication (TNC interfacing)
  • Indy10, for TCP/IP networking (APRS-IS IGate connection)

The choice of Free Pascal and Lazarus is notable. Most modern ham radio software is written in C/C++, Python, or Java. Free Pascal produces fast, native binaries, and Lazarus provides a Delphi-like RAD experience that allows a single developer to maintain a complex GUI application efficiently. The result is a lightweight application that launches instantly and uses minimal resources.

How to Install APRSMap on Linux

Option 1: Download the AppImage (Easiest)

DC6AP provides a pre-built AppImage, which is the simplest way to run APRSMap on any Linux distribution:

  1. Download the latest AppImage from hamradiotech.de.
  2. Make it executable:
    chmod +x APRS_Map-x86_64.AppImage
  3. Install the Qt6 runtime dependency:
    sudo apt update
    sudo apt install libqt6pas6

    (On Fedora/Arch, install the equivalent libqt6pas package.)

  4. Run it:
    ./APRS_Map-x86_64.AppImage

AppImage requires no installation, it is a single file that runs anywhere.

Option 2: Download from GitHub Releases

Stable releases are available on the GitHub Releases page. The latest stable release is v0.7.0.

Option 3: Latest CI Build from GitHub Actions

If you want the newest unreleased builds from the master branch, DC6AP publishes build artifacts via GitHub Actions:

  1. Go to the Actions tab of the repository.
  2. Open the most recent successful build.
  3. Scroll down to the Artifacts section and download the build for your platform.

Option 4: Compile from Source

If you want to build APRSMap yourself or contribute to development, you will need:

  • Lazarus 4.5 (or newer)
  • The following Lazarus packages: TRichMemo, LazRGBGraphics, BGRABitmap, BGRAControls, LazSerial, Indy10
  • libqt6pas runtime library

Build steps:

git clone https://github.com/andreaspeters/aprsmap.git
cd aprsmap
git submodule update --init --recursive

If you already have the submodules checked out and want to update them to the latest commits:

git submodule update --remote --merge

Then open the project in Lazarus and compile. The make.ps1 script in the repository is intended for Windows builds.

Configuring the IGate Filter

When connecting to APRS-IS, APRSMap uses a filter to limit which traffic you receive. The default filter is:

r/<LAT>/<LON>/200

This is a range filter (r) that requests all stations within 200 km of your latitude and longitude. The <LAT> and <LON> placeholders are automatically replaced with your configured position.

You can change this filter under Settings in APRSMap. The APRS-IS filter syntax is powerful and documented in the official APRS-IS filter manual. Common alternatives:

  • f/CALLSIGN, follow a specific station and its direct contacts
  • t/m, all mobile stations
  • t/w, all weather stations
  • e/50/60/40/50, stations within a bounding box (lat min/max, lon min/max)

Multiple filters can be combined with spaces.

APRSMap and FlexPacket: A Linux Packet Radio Stack

APRSMap is designed to work alongside FlexPacket, DC6AP’s packet radio client. Together, they form a complete Linux packet radio stack:

  • FlexPacket handles the AX.25 layer: TNC communication (Hostmode, KISS via TFKISS, or AGWPE/Dire Wolf), BBS login, 7PLUS file transfer, and multiple parallel channels.
  • APRSMap handles the APRS layer: position display, tracking, messaging, weather data, and map visualisation.

FlexPacket pipes decoded APRS packets to APRSMap, which then plots them on the map. This separation of concerns is clean: you can use FlexPacket for BBS work without APRSMap, or use APRSMap with an IGate connection without any radio hardware at all.

For hams running Dire Wolf as a software TNC, the FlexPacket + APRSMap combination gives you a fully native Linux alternative to Windows-only setups like UI-View or APRSIS32 running under Wine.

Why APRSMap Matters for Linux Hams

The Linux ham radio desktop has historically been weak on APRS. The options have been:

  • X-APRS, ancient, barely maintained, Motif-based UI
  • aprs.fi, excellent but web-based, requires internet, no RF input
  • YAAC, Java-based, cross-platform, but heavy and with a dated UI
  • APRSIS32, powerful but Windows-only (runs under Wine with caveats)

APRSMap fills a real gap: a native, lightweight, actively developed APRS client for Linux that handles both RF and APRS-IS, works offline, and integrates with the broader Linux ham radio ecosystem (Dire Wolf, dump1090, gpsd, FlexPacket). The fact that it also tracks aircraft and weather balloons in the same window is a bonus that no other APRS client offers.

For emergency communications and field operations, where you may have RF but no internet, or where you want a single application showing everything happening in your area, APRSMap’s offline map support and multi-source design are genuinely useful.

Honest Notes

A few things to keep in mind:

  • Linux is the primary platform. DC6AP is a Linux user and is transparent about this. Windows builds exist but are less tested. If you are on Windows, YAAC or APRSIS32 may be more reliable choices.
  • The project is small. With 13 GitHub stars and a single developer, APRSMap is a passion project, not a commercial product. Bug reports and contributions via GitHub are welcome, but do not expect enterprise-level support.
  • Compilation requires Lazarus 4.5. If your distribution ships an older Lazarus, you may need to install a newer version manually. The AppImage bypasses this entirely.
  • The UI is functional, not flashy. APRSMap prioritises features over polish. The screenshots show a traditional desktop application layout, map, sidebar, tabs, which is efficient once you learn it but not immediately intuitive.

Getting Involved

APRSMap is open source under the EUPL v1.2, and DC6AP accepts contributions via GitHub. If you are a Pascal developer, a Linux ham, or simply a user with bug reports or feature requests, the repository is at github.com/andreaspeters/aprsmap.

You can also support DC6AP’s work through GitHub Sponsors or his PayPal donation link. Independent open-source ham radio developers are rare, and keeping them funded keeps the Linux ham radio ecosystem alive.

Summary

APRSMap is a cross-platform, open-source APRS client for Linux that does what no other single application does: combine RF and APRS-IS packet display, offline OpenStreetMap maps, ADS-B aircraft tracking, weather balloon telemetry, APRS messaging, and GPS beaconing into one native desktop application. Built in Free Pascal with Qt6 by Andreas Peters, DC6AP, it is actively developed, lightweight, and uniquely suited to Linux-based ham radio stations, especially for field and emergency communications where offline operation matters.

If you run Linux in your shack and want a modern APRS client that talks to your radio, your GPS, and the APRS-IS network without a browser in sight, APRSMap is worth your time.

Post Comment