Compressed Addressed Message Frames
Up to now, APRS has been unduly considered to be predominantly a one-way localisation technology. This went to the point that many would mistake the letter “P” in the APRS acronym for “position” instead of “packet.” Bob Bruninga WB4APR (SK), the spiritual father of APRS, deeply resented this situation.
“APRS is not a vehicle tracking system. It is a two-way tactical real-time digital communications system between all assets in a network sharing information about everything going on in the local area.”
In Bob’s view of APRS as being foremost a real-time situational and tactical tool, addressed messaging definitely merits its place. Our goals is to render APRS messaging more popular by offering LoRa messaging pager terminals.
A compressed addressed message frame has a payload of between 10 (for an empty ping) and 45 bytes. The available message length of 51 characters is largely sufficient for, for example, SOTA self-spotting using APRS2SOTA.
Callsign |
SSID, |
Compressed Data |
---|---|---|
4 bytes |
1 byte |
5—40 bytes |
|
|
|
where:
CCCC
: 4 bytes for the compressed 6 character CallsignD
: compresses into 1 byte:the SSID (between SSID 0 [none] and 15; included),
the Path Code (between path 0 [none] and 3; included), and
the Data Type Code = 3
EEEE
: 4 bytes for the compressed Addressee (up to 6 character callsign)F
: compresses into 1 byte:the Addressee SSID (between SSID 0 [none] and 15; included), and
the Message No (from 0 to 15; included)
(tttt…tttt)
: up to 35 bytes of compressed text from a limited 42 character set, corresponding to a maximum of 51 uncompressed characters
Encoding and Decoding EEEE
The EEEE
codec algorithms are identical to the CCCC
codec algorithms.
Encoding F
Perform input sanitisation, i.e. perform a modulus 16 operation on a Message No originating from APRS‑IS.
Multiply the SSID integer by 16.
Then, algebraically add to this the Message No integer.
Finally, convert the resulting integer to a single Base256
F
byte.
Decoding F
First, decode the given Base256
F
byte to an integer.The SSID equals the integer quotient after integer division of the decoded integer by 16.
Whereas the Message No equals the remainder of the decoded integer by 16 (modulo operation).
When relaying the text message to APRS‑IS, the i‑gate will add the last digit of the minute the text message was received in front of the received Message No.