Also known as: Mic-E, Mic-Encoded, APRS Mic-E
APRS Mic-E (Mic-Encoded) is the compressed position/status format that most mobile APRS trackers transmit — a third the size of an uncompressed beacon, which is why almost every vehicle tracker and handheld uses it.1 Its defining trick is that half the payload lives in the AX.25 frame’s destination address field: the six characters that would normally name a station instead encode latitude, three message bits and the hemisphere flags, while the information field carries longitude, speed, course, symbol and an optional altitude.2
How it works
Because half the payload is in the AX.25 envelope, GopherTrunk’s entry point is
DecodeWithDst(info, dst): the six-character destination callsign must be supplied alongside
the information field. If it is missing the packet still surfaces as a Mic-E type with its raw
bytes preserved. The information field is identified by its first byte, the DTI (0x1C, 0x1D,
` or '), and the remaining bytes follow a fixed layout. Like the rest of the APRS
decoder, Mic-E never errors — unknown or malformed payloads pass through with the raw bytes
kept, because APRS traffic is messy.
Destination-address encoding
Each of the six destination characters decodes to one latitude digit plus one indicator bit,
using the APRS 101 §10.5 table. The character range also matters: characters P–Z are the
“standard” message set, A–K the “custom” set (with K/L acting as space carriers), and
0–9 are plain digits. The indicator bit means something different depending on position:
| Dest char | Latitude role | Indicator bit means |
|---|---|---|
| 1–3 | DD, first M | one of the 3 message bits |
| 4 | second M | N/S hemisphere |
| 5–6 | hh (hundredths) | 5: longitude +100° offset; 6: W/E hemisphere |
The three message bits form a code that maps to a status label — M0 Off Duty, M3 Returning,
and so on, with all-zeros reserved for Emergency. A packet mixing standard and custom
characters in the message positions is technically malformed; GopherTrunk reports whichever
range the characters fall in and prefers the standard label set.
Information field
The longitude is three bytes, each offset by 28 to keep it printable ASCII, with the APRS 101
wraparound corrections applied and the +100° offset (from destination char 5) folded in.
Speed and course are interleaved across three bytes so that
speed = (byte4−28)·10 + (byte5−28)/10course = ((byte5−28) mod 10)·100 + (byte6−28)
with 800/400 wrap corrections undoing the printable-ASCII bias. Byte 7 is the symbol code and
byte 8 the symbol table (together selecting the map icon — car, ambulance, and so on). Anything
after that is an optional altitude marker (three base-91 characters followed by }, valued as
base91 − 10000 metres) and a free-form comment. GopherTrunk lifts the recovered position into
the standard APRS Position field so existing callers and the web panel pick it up without
special-casing the Mic-E shape.
Sources
-
APRS Protocol Reference 1.0.1 — Bob Bruninga et al., Chapter 10, the authoritative Mic-E field layout, destination-address table and speed/course encoding. ↩
-
Automatic Packet Reporting System — Wikipedia, on APRS and its position-report formats. ↩