decode_aprs(1) Convert APRS raw data to human readable form.


decode_aprs [ text-file ]

text-file should contain AX.25 packets in the standard monitoring format. If no file specified, data will be read from stdin.


decode_aprs is useful for understanding sometimes obscure APRS packets and finding errors.




You see something like this show up on your screen:

M0XER-3>APRS63,WIDE2-1:!/4\;u/)K$O J]YD/A=041216|h`RY(1>q!(|

What does it mean? If you haven't spent a lot of time studying the APRS protocol specification, most of it probably looks like random noise. Pipe it into decode_aprs to find out.

echo 'M0XER-3>APRS63,WIDE2-1:!/4\\;u/)K$O J]YD/A=041216|h`RY(1>q!(|' | decode_aprs has a never-ending collection of packets with errors. Sometimes it's not obvious what is wrong with them. Dire Wolf will usually tell you what is wrong. First, cut-n-paste the bad packets into a text file. Here a couple examples:

K0YTH-10>APNU3B,NULL,qAR,K0DMF-10:!4601.5NS09255.52W#PHG6360/W2,MNn 444.575

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. 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.

And 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.