DECODE_APRS(1)
π NAME π
decode_aprs β turns raw APRS data into something a human can actually read, no cap.
β¨ SYNOPSIS β¨
decode_aprs [ text-file ]
Okay so bestie, here's the tea on text-file: it should hold AX.25 packets in the standard monitoring format, or as a series of two digit hexadecimal numbers. And here's the plot twist β if that first number is 00 or c0, it gets treated as a KISS frame. If you don't specify a file at all? She just reads the data from stdin. Iconic, low-maintenance, slays.
πΈ DESCRIPTION πΈ
decode_aprs is your girl for understanding those sometimes obscure APRS packets β and for finding errors hiding in them. It's giving detective energy, fr fr. π΅οΈββοΈ
π OPTIONS π
None.
Like, literally none. She has no flags. She simply exists and she serves. π
π¦ EXAMPLES π¦
So picture this: you're just vibing, and something like this shows up on your screen:
M0XER-3>APRS63,WIDE2-1:!/4\;u/)K$O J]YD/A=041216|h`RY(1>q!(|
And you're likeβ¦ what does it mean?? π Honestly? If you haven't spent a lot of time studying the APRS protocol specification, most of it probably looks like random noise. Not your fault, babe. Pipe it into decode_aprs and find out:
echo 'M0XER-3>APRS63,WIDE2-1:!/4\;u/)K$O
J]YD/A=041216|h`RY(1>q!(|' | decode_aprs
Now, http://www.findu.com/cgi-bin/errors.cgi has a never-ending collection of packets with errors β a whole buffet of chaos. Sometimes it's not obvious what is wrong with them, and Dire Wolf will usually tell you what is wrong. First step: cut-n-paste the bad packets into a text file. Here are a few examples:
n2cma>APRS,TCPIP*,qAC,SEVENTH:@212127z43.2333n/77.1w_338/002g001t025P000h65b10208.wview_5_19_0
K0YTH-10>APNU3B,NULL,qAR,K0DMF-10:!4601.5NS09255.52W#PHG6360/W2,MNn 444.575
00 82 a0 ae ae 62 60 e0 82 96 68 84 40 40 60 9c 68 b0 ae 86 40 e0 40 ae 92 88 8a 64 63 03 f0 3e 45 4d 36 34 6e 65 2f 23 20 45 63 68 6f 6c 69 6e 6b 20 31 34 35 2e 33 31 30 2f 31 30 30 68 7a 20 54 6f 6e 65
+.fi
If you simply fed this into decode_aprs, it would complain about the lower case in qA-something, added by the IGate, in the via path. Rude of it, honestly. We can take it out with something like this:
cat findu-errors.txt | sed -e 's/,qA.*:/:/' | decode_aprs
In the first case, we get:
Address has lower case letters. "n2cma" must be all upper case.
After changing the source address to upper case, there are other issues. Identifying them is left as an exercise for the reader. π (Yes, that's homework. You got this, bestie.)
In the second example:
Invalid character in latitude. Found 'N' when expecting 0-9 for hundredths of minutes.
Invalid character in longitude. Found '9' when expecting 0 or 1 for hundreds of degrees.
In the third example:
Warning: Lower case letter in Maidenhead locator. Specification requires upper case.
Digi2 Address, " WIDE2-1" contains character other than letter or digit in character position 1.
π SEE ALSO π
More detailed information is in the PDF files at https://github.com/wb2osz/direwolf/tree/master/doc/. π
Applications in this package, the whole squad, the entire friend group: aclients, atest, decode_aprs, direwolf, gen_packets, ll2utm, log2gpx, text2tt, tt2text, utm2ll. π
Okay that's the whole page, mwah. This little love letter lives in the General Commands Manual as DECODE_APRS(1) β section 1, the classic, the moment, the blueprint. Go decode something weird, bestie. π«Άπ
π¦ where this page comes from
- debian bookworm: direwolf 1.6+dfsg-3 Β· GPL-2.0-or-later
- debian trixie: direwolf 1.7+dfsg-2+deb13u1 Β· GPL-2.0-or-later
- ubuntu jammy: direwolf 1.6+dfsg-2 Β· GPL-2.0-or-later
- ubuntu noble: direwolf 1.7+dfsg-2build2 Β· GPL-2.0-or-later
- ubuntu questing: direwolf 1.7+dfsg-2build2
- ubuntu resolute: direwolf 1.8.1+dfsg-2 Β· GPL-2.0-or-later
- ubuntu stonking: direwolf 1.8.1+dfsg-2 Β· GPL-2.0-or-later
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms