APRS¶
The Automatic Packet Reporting System: short position reports, weather and text messages sent on one shared VHF frequency and repeated by digipeaters across a region. On a map it shows who is on the air around you, with no internet involved. APRS-IS carries the same packets over the internet for sites like aprs.fi.
radio --audio--> Direwolf (soundcard modem) --AGWPE :8000--> Xastir / YAAC
|
+--> APRS-IS (internet, optional): receive-only or gating
Programs the catalog carries¶
- a2d: Bridges APRS messages to DAPNET pagers (in
packet) - aprsdigi: APRS digipeater — repeats packets so they reach further than one hop (in
packet) - aprx: APRS digipeater and internet gateway, small enough for a Pi (in
packet) - direwolf: Software TNC — turns a sound card into an APRS and packet modem (in
packet) - qtbpqaprs: G8BPQ's Qt APRS client, the messaging-focused one (by name only)
- xastir: APRS client with real maps — see and be seen on the packet network (in
packet) - yaac: Yet Another APRS Client — the deep, portable Java one (by name only)
Direwolf is the modem and the clients talk to it; the same Direwolf serves Packet and Winlink.
Hardware¶
APRS needs no catalogued device of its own. It needs a VHF transceiver with an audio path to the computer (rig, sound interface and cable), or a hardware TNC. Rig control and Radio audio set those up. APRS-IS needs only a network.
Install¶
packet carries Direwolf, Xastir, the digipeaters and the rest of the packet
stack; YAAC and QtBPQAPRS are by name only (hammunition install yaac).
aprsdigi needs the kernel's AX.25 stack, which some kernels lack; the plan
defers it by name where it is absent (D-041), and the userspace programs above
do not need it.
First useful task: receive¶
Set up Direwolf as in Packet and Winlink, step
1, tune the radio to the
APRS frequency for your region (144.390 MHz in North America, 144.800 MHz in
most of Europe), and watch packets decode. Then start Xastir, add a Networked
AGWPE interface at localhost port 8000, and the stations appear on the
map. Receiving needs no licence; transmitting does. APRS
has each dialog.
Beaconing, digipeating and gating are decisions¶
Each puts traffic on a shared channel under your callsign, so none is on by default. Receive-only gating to APRS-IS helps coverage and is harmless; beaconing, digipeating and transmit gating are covered in the guide.
What stations heard becomes a map layer¶
Direwolf's log can feed the repeater map. Start it with -l ~/direwolf-logs,
then:
This writes a heard off the air layer from the APRS repeater objects local digipeaters send. It fetches nothing, uses no login, stays apart from the directory layers (it is evidence, not a listing), and still shows an object that was later withdrawn, because the log does not say. See offline navigation.
Offline, LAN and radio¶
| Part | With no internet? |
|---|---|
| Receiving and decoding on RF, Xastir and YAAC showing what Direwolf hears | Yes: it is all radio and local. |
| Transmitting beacons and messages over RF | Yes (licence required). |
| APRS-IS, an igate, aprs.fi | No: it is the internet side. |
| A map under the client | Online tile maps need the network; install offline maps ahead of time. |
Where the detail lives¶
APRS, Packet and Winlink, Station settings (where each program wants your callsign), the package pages above.
What was measured, and what was not¶
Measured: Direwolf's example lines were read from its 1.7 release and
callpass was run from Xastir 2.2.0 on Ubuntu 24.04 (2026-09-30); Xastir's
AX.25 TNC interface type fails on Linux 7.1 with no kernel stack, while
Networked AGWPE and Serial KISS TNC need none (recorded in its manifest).
Not measured:
- APRS on air from the field laptop. It is not in the bench record.
- The client dialogs. They follow each program's own documentation.
--from-direwolf-logon the field laptop's own Direwolf log. The importer's column header was read from Direwolf 1.8.1's log format (CLI reference); no import of a log from this station is in the bench record.aprx,aprsdigiandqtbpqaprsas a running station: none is in the bench record.