[aprssig] TNC Trace mode

Henk de Groot henk.de.groot at hetnet.nl
Fri Sep 3 17:50:04 EDT 2004


Hello Andrew,

At 19:27 3-9-2004 +1000, Andrew Rich wrote:
>How do i break this down ?
>
> >> 82A0AA646A9C60 AC9668A88A8660 A48A9882B24060 AE92888A404061 03F00D
>VK4TEC>APU25N,RELAY,WIDE: <UI>:

Using the AX25 protocol specification?

Let me do the one above for you:

Hex string: 82A0AA646A9C60 AC9668A88A8660 A48A9882B24060 AE92888A404061 03F00D

The first 7 bytes are the destination-callsign. It's build up from 6 
shifted ASCII characters and a 7th byte with the SSID and flags.

So the destination call:

82 -> shifted right -> 41 -> 'A'
A0 -> shifted right -> 50 -> 'P'
AA -> shifted right -> 55 -> 'U'
64 -> shifted right -> 32 -> '2'
6A -> shifted right -> 35 -> '5'
9C -> shifted right -> 4E -> 'N'
60 -> 01100000 binary:
       |\/\--/\_ 0 = not the final call
       | |  \___ 0000 = SSID 0
       |  \_____ 11 = reserved, should be 11
        \_______ 0 = Command/Response bit part 1 - looks like
                     a response (on next call must be 1, otherwise
                     it is an AX.25 version 1 frame).

Next is the source call, coded the same way:

AC -> shifted right -> 56 -> 'V'
96 -> shifted right -> 4B -> 'K'
68 -> shifted right -> 34 -> '4'
A8 -> shifted right -> 54 -> 'T'
8A -> shifted right -> 45 -> 'E'
86 -> shifted right -> 43 -> 'C'
60 -> 01100000 binary:
       |\/\--/\_ 0 = not the final call
       | |  \___ 0000 = SSID 0
       |  \_____ 11 = reserved, should be 11
        \_______ 0 = Command/Response bit part 2 - expected 1
                     (it is an old AX.25 version 1 frame).

Next is the first digipeater call, coded almost the same way:

A4 -> shifted right -> 52 -> 'R'
8A -> shifted right -> 45 -> 'E'
98 -> shifted right -> 4C -> 'L'
82 -> shifted right -> 41 -> 'A'
B2 -> shifted right -> 59 -> 'Y'
40 -> shifted right -> 20 -> ' '
60 -> 01100000 binary:
       |\/\--/\_ 0 = not the final call
       | |  \___ 0000 = SSID 0
       |  \_____ 11 = reserved, should be 11
        \_______ 0 = Not used in digipeating yet

Next is the second digipeater call, coded the same way:

AE -> shifted right -> 57 -> 'W'
92 -> shifted right -> 49 -> 'I'
88 -> shifted right -> 44 -> 'D'
8A -> shifted right -> 45 -> 'E'
40 -> shifted right -> 20 -> ' '
40 -> shifted right -> 20 -> ' '
61 -> 01100001 binary:
       |\/\--/\_ 1 = final call
       | |  \___ 0000 = SSID 0
       |  \_____ 11 = reserved, should be 11
        \_______ 0 = Not used in digipeating yet

This was the last call, so next is the protocol byte:

03 = UI-frame with reset P/F bit

Next is the protocol ID, that is if it is an UI or I type frame

F0 = Plain-text. With Opentrac you find 0x77 here, that's why APRS
      and Opentrac can co-exist on the same channel (others are CC
      for an IP datagram, CD for an ARP packet (for TCP/IP) and CF
      for NetRom type packets).

Finaly there is the payload

0D = Only a carriage return in this case.

I hope this helped, I leave the other to you to decode... I wonder what 
device produced this however, AX.25 version 1 was outdated in 1982! 
Aparently the one who wrote the code did not understand how to set the 
Command/Response bits.

Note: the above you find some bits marked "reserved". That is not quite 
true, some of these are used for DAMA and Extended AX.25, but that never 
ended up in the official protocol specification.

Kind regards,

Henk.






More information about the aprssig mailing list