APRSMON(8)

πŸ“¦
version 3.11.0 Β· 2 versions
  • 3.11.0 Β· debian bookworm, debian trixie, ubuntu jammy, ubuntu noble, ubuntu questing, ubuntu resolute, ubuntu stonking (latest)
  • 3.5.1 Β· fedora 43, fedora 44
, in debian bookworm, debian trixie, ubuntu jammy, ubuntu noble, ubuntu questing, ubuntu resolute, ubuntu stonking

πŸ’– 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 🫣
  • -p port β€” 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 -k option in a shared memory segment πŸ‘‘
  • -k minutes β€” retain monitored packets going back the given number of minutes. default is 30 ⏰
  • -t title β€” 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." β€” pada and padb can be anything, and they're ignored, but you *must* have 4 words in all 🚨
  • -i infofile β€” Infofile is the path to the file that the aprsmon master 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 running aprsmon. πŸ•°οΈ
  • 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-Encoder
    • T - 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 Service
    • 3 - 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 πŸ’…βœ¨πŸ¦‹