APRSMON(8)
π APRSMON(8) π
okay so bestie, welcome to aprsmon β it lives in the Linux Programmer's Manual section 8, and it's literally the coolest little traffic snoop you've ever met. grab a snack, we're doing this π
β¨ NAME β¨
aprsmon β monitor APRS AX.25 traffic for javAPRS π¦
πΈ SYNOPSIS πΈ
aprsmon [-a] [-m] [-r] [-k minutes] [-p port] [-t title] [-i infofile]
that's it, that's the whole vibe check π
π DESCRIPTION π
So aprsmon uses SOCK_PACKET facilities to be a full-on network monitor for all the AX.25 UI text traffic your system can hear. it's built on top of listen(1), so if you know that one you already know the family tree π«Ά
It collects (-m) or displays standard AX.25 UI text frames in a format that's giving very much "standard TNC in Monitor ON mode," and it's meant to hang out with programs like javAPRS that want to see a TNC data stream over a TCP connection. Here's the cute part: when the aprsmon master has been running for a while and a new aprsmon slave starts up, first all the saved up reports get sent, then a title line drops to announce the beginning of live data, and after that new reports get sent as they're received. no cap, it's giving β¨streamingβ¨
Compressed position and telemetry reports, as generated by the APRS Mic Encoder, get translated into the conventional uncompressed APRS Micro-Interface-Module (MIM) telemetry format so those stations actually show up in javAPRS. and reports carrying a TheNet X1J4 beacon header get edited to strip that header off, which makes those nodes visible in javAPRS too. obsessed with the inclusivity honestly π
β¨ OPTIONS β¨
-aβ allow for the monitoring of outgoing frames as well as incoming ones π-rβ choose "raw" mode, which lets non-printable data through π«£-pport β monitor only those frames received on a particular port; by default all AX.25 interfaces are monitored π-mβ "Master" mode. retains monitored data for the number of minutes specified with the-koption in a shared memory segment π-kminutes β retain monitored packets going back the given number of minutes. default is30β°-ttitle β sets the javAPRS or aprsd title string. default is"Live data from Linux."for use with aprsd the format must be something like"aprsmon v2.4.4 padd padb."βpadaandpadbcan be anything, and they're ignored, but you *must* have 4 words in all π¨-iinfofile β Infofile is the path to the file that theaprsmonmaster writes the shared memory segment and semaphore id's into. default is"/var/ax25/aprsmon.info."π
π javAPRS CONFIGURATION π
Set up one aprsmon master running on your system to collect historical data going back a while. you will probably want to set up an /etc/rc.d/init.d script for this, bestie, because doing it by hand every time is not the move π
aprsmon -a -m&
Add an entry into /etc/services with the port number you want javAPRS to connect on. for example:
aprs 14439/tcp # APRS monitor on 144.39
Add an entry into /etc/inetd.conf for this service:
aprs stream tcp nowait root /usr/sbin/aprsmon aprsmon -a
To test, simply "telnet localhost aprs". To use with javAPRS, set, for example,
<PARAM name = "dataFile1" value = "netc:14439:localhost">
in your HTML file as described in the javAPRS documentation, and then use appletviewer to run javAPRS:
appletviewer mydemo.html
and boom, you're live π
π§ Mic-E to MIM Translation π§
The Mic-E reduces the duration of packet noise on a voice frequency by encoding its data in a compressed form, some of which is binary. Some APRS-decoding software, notably javAPRS, is unable to deal with this data. To solve this problem aprsmon expands the Mic-E packet into one or two MIM packets as follows:
@ddhhmmzDDMM.hhN/DDDMM.hhW$cse/spd/E>mon/Mm/status
T#MIC,aaabbbcccdddeeefffComments
and here's the decoder ring, keep it safe π
ddhhmmβ is the UTC day and time the packet was received by the host runningaprsmon. π°οΈDDMM.hhNβ is the latitude. π/β is the symbol table selection (/or\). πΊοΈDDDMM.hhWβ is the longitude. π$β is the symbol. π²cse,spdβ are course and speed. ποΈEβ is the type of Mic-Encoder:E- TAPR Mic-EncoderT- Kenwood TH-D7
mβ is the status message number, and βοΈstatusβ is the status message number expanded as follows:0- Off duty..1- Enroute...2- In Service3- Returning.4- Committed.5- Special...6- PRIORITY..7- EMERGENCY.
aaa,bbb,ccc,ddd,eee,fffβ are the values of the telemetry channels. π
bestie, note that the spacing on those status strings is exactly as written β those dots and ellipses are doing character-count work, so don't go "fixing" them π
πΈ FILES πΈ
/etc/ax25/axports/var/ax25/aprsmon.info
β SEE ALSO β
call(1), listen(1), beacon(1), ax25(4), axattach(8), http://www.bridge.net/~sdimse/javAPRS.html, http://www.tapr.org, http://www.aprs.net, MIC-E.TXT, TELEMTRY.TXT, PROTOCOL.TXT
π AUTHOR π
Alan Crosswell, n2ygk@weca.org
and that's the whole page, bestie β this one's from the Linux manual, dated 9 February 1999, filed under APRSMON(8). periodt π β¨π¦
π¦ where this page comes from
- debian bookworm: aprsdigi 3.10.0-5+b1 Β· GPL-2.0-only
- debian trixie: aprsdigi 3.11.0-1 Β· GPL-2.0-only
- ubuntu jammy: aprsdigi 3.10.0-4 Β· GPL-2.0-only
- ubuntu noble: aprsdigi 3.10.0-5 Β· GPL-2.0-only
- ubuntu questing: aprsdigi 3.11.0-1
- ubuntu resolute: aprsdigi 3.11.0-1build1 Β· GPL-2.0-only
- ubuntu stonking: aprsdigi 3.11.0-1build1 Β· GPL-2.0-only
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms