amateur radio
open source
ADS-B, amateur radio, Andreas Peters, AppImage, APRS, APRS-IS, AX.25, DC6AP, DFM, Dire Wolf, dump1090, emergency communications, EUPL, FlexPacket, Free Pascal, gps, gpsd, ham radio software, hamradiotech.de, igate, Lazarus, linux, Mic-E, offline maps, open source, openstreetmap, packet radio, qrp, Qt6, RS41, sota, TNC, Wayland, weather balloon
9M2PJU
0 Comments
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:
- 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.
- 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:
- Download the latest AppImage from hamradiotech.de.
- Make it executable:
chmod +x APRS_Map-x86_64.AppImage - Install the Qt6 runtime dependency:
sudo apt update sudo apt install libqt6pas6(On Fedora/Arch, install the equivalent
libqt6paspackage.) - 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:
- Go to the Actions tab of the repository.
- Open the most recent successful build.
- 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 contactst/m, all mobile stationst/w, all weather stationse/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.
- Repository: github.com/andreaspeters/aprsmap
- Blog: hamradiotech.de
- AppImage download: APRS_Map-x86_64.AppImage
- Latest version: v0.7.0 (June 2026)
- License: EUPL v1.2
- Author: Andreas Peters, DC6AP



Post Comment