Mic-E Data Format¶
In Mic-E data format, the station’s position, course, speed and display symbol, together with an APRS digipeater path and Mic-E Position Comment, are packed into the AX.25 Destination Address and Information Fields.
The Information field can also optionally contain Mic-E status. The Mic-E Status text can contain the station’s Maidenhead locator and altitude.
Mic-E packets can be very short. At the minimum, with no callsigns in the Digipeater Addresses field and no optional telemetry data or Mic-E status text, a complete Mic-E packet is just 25 bytes long (excluding FCS and flags).
Mic-E data format is not only used in the Microphone Encoder unit; it is also used in the PIC Encoder and in the Kenwood and Yaesu radios.
Mic-E Data Payload¶
The Mic-E data format allows a large amount of data to be carried in a very short packet. The data is split between the Destination Address field and the Information field of a standard AX.25 UI-frame.
Destination Address Field —¶
The 7-byte Destination Address field contains the following encoded information:
- The 6 latitude digits.
- A 3-bit Mic-E position comment, specifying one of 7 Standard Mic-E Position Comment Codes or one of 7 Custom Position Comments or an Emergency Position Comment.
- The North/South and West/East Indicators.
- The Longitude Offset Indicator.
- The generic APRS digipeater path code.
Although the destination address appears to be quite unconventional, it is still a valid AX.25 address, consisting only of printable 7-bit ASCII values (shifted one bit left) — see the Amateur Packet-Radio Link-Layer Protocol specification for full details of the format of standard AX.25 addresses.
Information Field —¶
This field contains the following data:
- The encoded longitude.
- The encoded course and speed.
- The display Symbol Code and Symbol Table Identifier.
- An optional field, containing either Mic-E telemetry data (now obsolete) or a Mic-E status text string. The status string can contain plain text, Maidenhead locator or the station’s altitude.
The standard AX.25 Destination Address field consists of 7 bytes, containing 6 callsign characters and the SSID (plus a number of other bits that are not of interest here). When used to carry Mic-E data, however, this field has a quite different format:
| Mic-E Data — DESTINATION ADDRESS FIELD Format |
|---|
| Bytes: |
The Destination Address field contains:
- Six encoded latitude digits specifying degrees (digits 1 and 2), minutes (digits 3 and 4) and hundredths of minutes (digits 5 and 6).
- 3-bit Mic-E Position Comment identifier (bits A, B and C).
- North/South latitude indicator.
- Longitude offset (adds 0 degrees or 100 degrees to the longitude computation in the Information field).
- West/East longitude indicator.
- Generic APRS digipeater path (encoded in the SSID).
Destination Address Field Encoding¶
The table on the next page shows the encoding of the first 6 bytes of the Destination Address field, for all combinations of latitude digit, the 3-bit Mic-E message identifier (A/B/C), the latitude/longitude indicators and the longitude offset.
The encoding supports position ambiguity.
The ASCII characters shown in the table are left-shifted one bit position prior to transmission.
Mic-E Destination Address Field Encoding (Bytes 1–6)¶
| Byte: | 1-6 | 1-3 | 4 | 5 | 6 |
|---|---|---|---|---|---|
| ASCII Char | Lat Digit | Position Comment A/B/C | N/S | Long Offset | W/E |
| 0 | 0 | 0 | South | +0 | East |
| 1 | 1 | 0 | South | +0 | East |
| 2 | 2 | 0 | South | +0 | East |
| 3 | 3 | 0 | South | +0 | East |
| 4 | 4 | 0 | South | +0 | East |
| 5 | 5 | 0 | South | +0 | East |
| 6 | 6 | 0 | South | +0 | East |
| 7 | 7 | 0 | South | +0 | East |
| 8 | 8 | 0 | South | +0 | East |
| 9 | 9 | 0 | South | +0 | East |
| A | 0 | 1 (Custom) | |||
| B | 1 | 1 (Custom) | |||
| C | 2 | 1 (Custom) | |||
| D | 3 | 1 (Custom) | |||
| E | 4 | 1 (Custom) | |||
| F | 5 | 1 (Custom) | |||
| G | 6 | 1 (Custom) |
| Byte: | 1-6 | 1-3 | 4 | 5 | 6 |
|---|---|---|---|---|---|
| ASCII Char | Lat Digit | Position Comment A/B/C | N/S | Long Offset | W/E |
| H | 7 | 1 (Custom) | |||
| I | 8 | 1 (Custom) | |||
| J | 9 | 1 (Custom) | |||
| K | space | 1 (Custom) | |||
| L | space | 0 (Std) | South | +0 | East |
| P | 0 | 1 (Std) | North | +100 | West |
| Q | 1 | 1 (Std) | North | +100 | West |
| R | 2 | 1 (Std) | North | +100 | West |
| S | 3 | 1 (Std) | North | +100 | West |
| T | 4 | 1 (Std) | North | +100 | West |
| U | 5 | 1 (Std) | North | +100 | West |
| V | 6 | 1 (Std) | North | +100 | West |
| W | 7 | 1 (Std) | North | +100 | West |
| X | 8 | 1 (Std) | North | +100 | West |
| Y | 9 | 1 (Std) | North | +100 | West |
| Z | space | 1 (Std) | North | +100 | West |
Note: the ASCII characters A–K are not used in address bytes 4–6.
For example, for a station at a latitude of 33 degrees 25.64 minutes north, in the western hemisphere, with longitude offset +0 degrees, and transmitting standard position comment identifier bits 1/0/0, the encoding of the first 6 bytes of the Destination Address field is as follows:
| Destination Address Byte: | 1 | 2 | 3 | 4 | 5 | 6 |
|---|---|---|---|---|---|---|
| Latitude Digit | 3 | 3 | 2 | 5 | 6 | 4 |
| Position Comment | Bit A = 1 (Std) | Bit B = 0 | Bit C = 0 | |||
| N/S Indicator | North | |||||
| Long Offset | +0 | |||||
| W/E Indicator | West | |||||
| Dest Address (ASCII Char) | S | 3 | 2 | U | 6 | T |
Mic-E Position Comments¶
The first three bytes of the Destination Address field contain three position comment bits: A, B and C. These bits allow one of 15 position comment types to be specified:
- 7 Standard
- 7 Custom
- 1 Emergency
For the 7 Standard position comments, one or more of the identifier bits is a 1, shown in the Mic-E Destination Address Field Encoding table as 1 (Std).
For the 7 Custom position comments, one or more of the identifier bits is a 1, shown in the Mic-E Destination Address Field Encoding table as 1 (Custom).
For the Emergency position comment, all three identifier bits are 0.
The following table shows the encoding of Mic-E message types, for all combinations of the A/B/C message identifier bits:
| A | B | C | Standard Mic-E | Custom Mic-E |
|---|---|---|---|---|
| 1 | 1 | 1 | M0: Off Duty | C0: Custom-0 |
| 1 | 1 | 0 | M1: En Route | C1: Custom-1 |
| 1 | 0 | 1 | M2: In Service | C2: Custom-2 |
| 1 | 0 | 0 | M3: Returning | C3: Custom-3 |
| 0 | 1 | 1 | M4: Committed | C4: Custom-4 |
| 0 | 1 | 0 | M5: Special | C5: Custom-5 |
| 0 | 0 | 1 | M6: Priority | C6: Custom-6 |
| 0 | 0 | 0 | Emergency |
The Standard position comments and the Emergency position comment have the same meaning for all APRS stations. The Custom position comments may be assigned any arbitrary meaning.
Note: Support for Custom position comments is optional. Original Mic-E units do not support Custom position comments.
Note: If the A/B/C position comment identifier bits contain a mixture of Standard 1s and Custom 1s, the position comment type is “unknown”.
Some examples of MIC-E Position Comment type encoding:
| First 3 Destination Address Bytes | Identifier Bits A/B/C | Type | Meaning |
|---|---|---|---|
| S32 | Standard 1 / 0 / 0 | Standard | M3: Returning |
| F2D | Custom 1 / 0 / Custom 1 | Custom | C2: Custom-2 |
| 234 | 0 / 0 / 0 | Emergency | Emergency |
Destination Address SSID Field¶
The SSID in the Destination Address field of a Mic-E packet is coded to specify either a conventional digipeater VIA path (contained in the Digipeater Addresses field of the AX.25 frame), or one of 15 generic APRS digipeater paths. See Chapter 4: APRS Data in the AX.25 Destination and Source Address Fields.
Mic-E Information Field¶
The Information field is used to complete the Position Report that was begun in the Destination Address field. The encoding used is different from the destination address since the content is not constrained to be printable, shifted 7-bit ASCII, as it is in the address. However, full 8-bit binary is not used — all values are offset by 28 and further operations (described below) are performed on some of the values to make almost all of the data printable ASCII.
The format of the Information field is as follows:
| Mic-E Data—INFORMATION FIELD Format |
|---|
| Data Type ID |
| ------------------ |
| d+28 m+28 |
| 1 |
Information Field Data¶
The first 9 bytes of the Information field contain the APRS Data Type Identifier, longitude, speed, course and symbol data.
The APRS Data Type Identifier is one of:
-
'`' Current GNSS data (but not used in Kenwood TM-D700 radios).
-
'!' Old GNSS data (or Current GNSS data in Kenwood TM-D700 radios).
-
0x1cCurrent GNSS data (Obsolete - Rev. 0 beta units only). -
0x1dOld GNSS data (Obsolete - Rev. 0 beta units only).
IMPORTANT NOTE: As explained in detail below, some of the bytes in the Information field are non-printing ASCII characters. Use of non-printing characters makes it harder to troubleshoot. In certain circumstances (such as incorrect TNC setup or inappropriate software), some of these non-printing characters may be dropped, making the Information field appear shorter than it really is. This will lead to incorrect decoding. (In particular, if the Information field appears to be less than 9 bytes long, the packet must be ignored).
Longitude Degrees Encoding¶
The d+28 byte in the Information field contains the encoded value of the longitude degrees, in the range 0–179 degrees.
(Note that for longitude values in the range 0–9 degrees, the longitude offset is +100 degrees):
Mic-E Longitude Degrees Encoding¶
| Long Deg | ASCII Char | d+28 | Long Offset |
|---|---|---|---|
| 0 | v | 118 | +100 |
| 1 | w | 119 | +100 |
| 2 | x | 120 | +100 |
| 3 | y | 121 | +100 |
| 4 | z | 122 | +100 |
| 5 | { | 123 | +100 |
| 6 | 124 | ||
| 7 | } | 125 | +100 |
| 8 | ~ | 126 | +100 |
| 9 | DEL | 127 | +100 |
| 10 | & | 38 | +0 |
| 11 | ' | 39 | +0 |
| 12 | ( | 40 | +0 |
| ... | ... | ... | ... |
| 97 | } | 125 | +0 |
| 98 | ~ | 126 | +0 |
| 99 | DEL | 127 | +0 |
| Long Deg | ASCII Char | d+28 | Long Offset |
|---|---|---|---|
| 100 | t | 108 | +100 |
| 101 | u | 109 | +100 |
| 102 | v | 110 | +100 |
| 103 | w | 111 | +100 |
| 104 | x | 112 | +100 |
| 105 | y | 113 | +100 |
| 106 | z | 114 | +100 |
| 107 | { | 115 | +100 |
| 108 | 116 | ||
| 109 | } | 117 | +100 |
| 110 | ~ | 38 | +100 |
| 111 | ' | 39 | +100 |
| 112 | ( | 40 | +100 |
| ... | ... | ... | ... |
| 177 | i | 105 | +100 |
| 178 | j | 106 | +100 |
| 179 | k | 107 | +100 |
Note from the table that the encoding is split into four separate pieces:
- 0–9 degrees:
d+28is in the range 118–127 decimal, corresponding to the ASCII charactersvtoDEL.
Important Note: The longitude offset is set to +100 degrees when the longitude is in the range 0–9 degrees.
-
10–99 degrees:
d+28is in the range 38–127 decimal (corresponding to the ASCII characters&toDEL), and the longitude offset is +0 degrees. -
100–109 degrees:
d+28is in the range 108–117 decimal,
corresponding to the ASCII charactersl(lower-case letter “L”) tou, and the longitude offset is +100 degrees. -
110–179 degrees:
d+28is in the range 38–107 decimal
(corresponding to the ASCII characters&tok), and the longitude offset is +100 degrees.
Thus the overall range of valid d+28 values is 38–127 decimal
(corresponding to ASCII characters & to DEL).
All of these characters (except DEL, for 9 and 99 degrees) are printable ASCII characters.
To decode the longitude degrees value: 1. Subtract 28 from the d+28 value to obtain d. 2. If the longitude offset is +100 degrees, add 100 to d. 3. Subtract 80 if 180 °d °189
(i.e. the longitude is in the range 100–109 degrees). 4. Or, subtract 190 if 190 °d °199.
(i.e. the longitude is in the range 0–9 degrees).
Longitude Minutes Encoding¶
The m+28 byte in the Information field contains the encoded value of the longitude minutes, in the range 0–59 minutes:
Mic-E Longitude Minutes Encoding¶
| Long Mins | ASCII Char | m+28 | Long Mins | ASCII Char | m+28 |
|---|---|---|---|---|---|
| 0 | X | 88 | 10 | & | 38 |
| 1 | Y | 89 | 11 | ' | 39 |
| 2 | Z | 90 | 12 | ( | 40 |
| 3 | [ | 91 | 13 | ) | 41 |
| 4 | \ | 92 | 14 | * | 42 |
| 5 | ] | 93 | ... | ... | ... |
| 6 | ^ | 94 | 56 | T | 84 |
| 7 | _ | 95 | 57 | U | 85 |
| 8 | ` | 96 | 58 | V | 86 |
| 9 | a | 97 | 59 | W | 87 |
Note from the table that the encoding is split into two separate pieces:
- 0–9 minutes:
m+28is in the range 88–97 decimal, corresponding to the ASCII charactersXtoa. - 10–59 minutes:
m+28is in the range 38–87 decimal (corresponding to the ASCII characters&toW).
Thus the overall range of valid m+28 values is 38–97 decimal (corresponding to ASCII characters (g to a). All of these characters are printable ASCII characters.
To decode the longitude minutes value:
- subtract 28 from the m+28 value to obtain m.
- subtract 60 if m ⩾ 60. (i.e. the longitude minutes is in the range 0–9).
Longitude Hundredths of Minutes Encoding¶
The h+28 byte in the Information field contains the encoded value of the longitude hundredths of minutes, in the range 0–99 minutes. This byte takes a value in the range 28 decimal (corresponding to 0 hundredths of a minute) through 127 decimal (corresponding to 99 hundredths of a minute).
To decode the longitude hundredths of minutes value, subtract 28 from the h+28 value.
All of the possible values are printable ASCII characters (except 0–3 and 99 hundredths of a minute).
Speed and Course Encoding¶
The speed and course of a station are encoded in 3 bytes, designated SP+28, DC+28 and SE+28.
The speed is in the range 0–799 knots, and the course is in the range 0–360 degrees (0 degrees represents an unknown or indefinite course, and 360 degrees represents due north).
The encoded speed and course are spread over the three bytes, as follows:
| Speed | Course |
|---|---|
| Encoded Speed | Encoded Speed (units) and |
| (hundreds/tens of knots) | Encoded Course |
| (hundreds of degrees) | |
| SP+28 | DC+28 and SE+28 |
| Encoded Course | |
| (tens/units) |
SP+28 Encoding¶
The SP+28 byte contains the encoded speed, in hundreds/tens of knots, according to this table:
SP+28 Speed Encoding (hundreds/tens of knots)¶
| Speed knots | ASCII Char | SP+28 |
|---|---|---|
| 0-9 | | 0x1c | 108 28 |
| 10-19 | m 0x1d | 109 29 |
| 20-29 | n 0x1e | 110 30 |
| 30-39 | o 0x1f | 111 31 |
| 40-49 | p | 112 32 |
| 50-59 | q ! | 113 33 |
| 60-69 | r " | 114 34 |
| 70-79 | s # | 115 35 |
| 80-89 | t $ | 116 36 |
| 90-99 | u % | 117 37 |
| 100-109 | v & | 118 38 |
| 110-119 | w ' | 119 39 |
| 120-129 | x ( | 120 40 |
| 130-139 | y ) | 121 41 |
| 140-149 | z * | 122 42 |
| 150-159 | { + | 123 43 |
| 160-169 | | , | 124 44 |
| 170-179 | } - | 125 45 |
| 180-189 | ~ . | 126 46 |
| 190-199 | DEL / | 127 47 |
| Speed knots | ASCII Char | SP+28 |
|---|---|---|
| 200-209 | 0 | 48 |
| 210-219 | 1 | 49 |
| 220-229 | 2 | 50 |
| 230-239 | 3 | 51 |
| 240-249 | 4 | 52 |
| 250-259 | 5 | 53 |
| 260-269 | 6 | 54 |
| 270-279 | 7 | 55 |
| 280-289 | 8 | 56 |
| 290-299 | 9 | 57 |
| 300-310 | : | 58 |
| 310-320 | ; | 59 |
| 730-739 | e | 101 |
| 740-749 | f | 102 |
| 750-759 | g | 103 |
| 760-769 | h | 104 |
| 770-779 | i | 105 |
| 780-789 | j | 106 |
| 790-799 | k | 107 |
Note: The ASCII characters shown in white on a black background are non-printing characters.
Note: For speeds in the range 0–199 knots, there are two encoding schemes in existence. Hence there are two columns for the ASCII character, and two columns for the corresponding SP+28 byte values.
For example, for a speed of 73 knots (i.e. in the range 70–79), the SP+28 byte may contain either s or #, depending on the encoding method used. Both are equally valid.
The decoding algorithm described later handles either of these encoding schemes.
DC+28 Encoding¶
The DC+28 byte contains the encoded units of speed, plus the encoded course in hundreds of degrees:
DC+28 Speed / Course Encoding (units of knots/hundreds of degrees)¶
| Knots (units) | Course (deg) | ASCII Char | DC +28 | Knots (units) | Course (deg) | ASCII Char | DC +28 |
|---|---|---|---|---|---|---|---|
| 0-99 | 0-99 | O | 0x1c | 5 | 0-99 | R | N |
| 32 28 | 82 78 | ||||||
| 0-99 | 100-199 | ! | 0x1d | 5 | 100-199 | S | O |
| 33 29 | 83 79 | ||||||
| 0-99 | 200-299 | " | 0x1e | 5 | 200-299 | T | P |
| 34 30 | 84 80 | ||||||
| 0-99 | 300-360 | # | 0x1f | 5 | 300-360 | U | Q |
| 35 31 | 85 81 | ||||||
| 1-99 | 0-99 | * | 6 | 6 | 0-99 | V | X |
| 42 38 | 92 88 | ||||||
| 1-99 | 100-199 | + | 7 | 6 | 100-199 | Y | Z |
| 43 39 | 93 89 | ||||||
| 1-99 | 200-299 | , | 44 | 6 | 200-299 | ^ | _ |
| 44 40 | 94 90 | ||||||
| 1-99 | 300-360 | - | ) | 6 | 300-360 | - | [ |
| 45 41 | 95 91 | ||||||
| 2-99 | 0-99 | . | 0 | 7 | 0-99 | ] | e |
| 52 48 | 102 98 | ||||||
| 2-99 | 100-199 | 5 | 1 | 7 | 100-199 | g | c |
| 53 49 | 103 99 | ||||||
| 2-99 | 200-299 | 6 | 2 | 7 | 200-299 | h | d |
| 54 50 | 104 100 | ||||||
| 2-99 | 300-360 | 7 | 3 | 7 | 300-360 | i | e |
| 55 51 | 105 101 | ||||||
| 3-99 | 0-99 | 8 | : | 8 | 0-99 | p | f |
| 62 58 | 112 108 | ||||||
| 3-99 | 100-199 | ? | ; | 8 | 100-199 | q | m |
| 63 59 | 113 109 | ||||||
| 3-99 | 200-299 | @ | < | 8 | 200-299 | r | n |
| 64 60 | 114 110 | ||||||
| 3-99 | 300-360 | A | = | 8 | 300-360 | t | o |
| 65 61 | 115 111 | ||||||
| 4-99 | 0-99 | H | D | 9 | 0-99 | z | v |
| 72 68 | 122 118 | ||||||
| 4-99 | 100-199 | I | E | 9 | 100-199 | { | w |
| 73 69 | 123 119 | ||||||
| 4-99 | 200-299 | J | F | 9 | 200-299 | | | x |
| 74 70 | 124 120 | ||||||
| 4-99 | 300-360 | K | G | 9 | 300-360 | } | y |
| 75 71 | 125 121 |
Note: The ASCII characters shown in white on a black background are non-printing characters.
Note: There are two encoding schemes in existence for the DC+28 byte. Hence there are two columns for the ASCII character, and two columns for the corresponding DC+28 byte values.
For example, for a speed of 73 knots (i.e., units=3) and a bearing of 294 degrees (i.e., in the range 200–299), the DC+28 byte may contain either < or r, depending on the encoding method used. Both are equally valid.
The decoding algorithm described later handles either of these encoding schemes.
SE+28 Encoding¶
The SE+28 byte contains the encoded tens and units of degrees of the course:
SE+28 Course Encoding (tens/units of degrees)¶
| Course (deg) | ASCII Char | m+28 | Long Mins | ASCII Char | m+28 |
|---|---|---|---|---|---|
| 0 | 0x1c | 28 | 15 | + | 43 |
| 1 | 0x1d | 29 | 16 | , | 44 |
| 2 | 0x1e | 30 | 17 | - | 45 |
| 3 | 0x1f | 31 | 18 | . | 46 |
| 4 | 32 | 19 | / | 47 | |
| 5 | ! | 33 | ... | ... | |
| 6 | " | 34 | 91 | w | 119 |
| 7 | # | 35 | 92 | x | 120 |
| 8 | $ | 36 | 93 | y | 121 |
| 9 | % | 37 | 94 | z | 122 |
| 10 | & | 38 | 95 | { | 123 |
| 11 | ' | 39 | 96 | ||
| 12 | ( | 40 | 97 | } | 125 |
| 13 | ) | 41 | 98 | ~ | 126 |
| 14 | * | 42 | 99 | DEL | 127 |
Example of Mic-E Speed and Course Encoding¶
For a speed of 86 knots and a course of 194 degrees, the encoding is:
- SP+28: The speed is in the range 80–89 knots. From the SP+28 encoding table, the SP+28 byte may be either
tor$. - DC+28: The units of speed are 6, and the course is in the range 100–199 degrees. From the DC+28 encoding table, the DC+28 byte may be either
]orY. - SE+28: The course in tens and units of degrees is 94. From the SE+28 encoding table, the SE+28 byte will be
z.
Decoding the Speed and Course¶
To decode the speed and course:
- SP+28: To obtain the speed in tens of knots, subtract 28 from the SP+28 value and multiply by 10.
- DC+28: Subtract 28 from the DC+28 value and divide the result by 10. The quotient is the units of speed. The remainder is the course in hundreds of degrees.
- SE+28: To obtain the tens and units of degrees, subtract 28 from the SE+28 value.
Finally, make these speed and course adjustments:
- If the computed speed is ≥ 800 knots, subtract 800.
- If the computed course is ≥ 400 degrees, subtract 400.
Example of Decoding the Information Field Data¶
If the first 9 bytes of the Information field contain U\xE8\xF4\xF7, and the destination address specifies that the station is in the western hemisphere with a longitude offset of +100 degrees, then the data is decoded as follows:
Sis the APRS Data Type Identifier for a Mic-E packet containing current GNSS data.Uis theU+28byte. TheUcharacter has the value 40 decimal. Subtracting 28 gives 12. The longitude offset (in the destination address) is +100 degrees, so the longitude is 100 + 12 = 112 degrees.Eis theE+28byte. TheEcharacter has the value 95 decimal. Subtracting 28 gives 67. This is°m60, so subtracting 60 gives a value of 7 minutes longitude.Fis theF+28byte. TheFcharacter has the value 102 decimal. Subtracting 28 gives 74 hundredths of a minute.
Thus the longitude is 112 degrees 7.74 minutes west.
The speed and course are calculated as follows:
Ris theR+28byte. TheRcharacter has the value 110 decimal. After subtracting 28, the result is 82. As this is°m80, a further 80 is subtracted, leaving a result of 2 tens of knots.Gis theG+28byte. TheGcharacter has the value 34 decimal. Subtracting 28 gives 6. Dividing this by 10 gives a quotient of 0 (units of speed). Adding the first part of the speed, multiplied by 10 (i.e. 20) to the quotient (0) gives a final computed speed of 20 knots. The remainder from the division is 6. Subtracting 4 gives the course in hundreds of degrees, i.e. 2.O(upper-case letter "O") is theO+28byte. TheOcharacter has the value 79 decimal. Subtracting 28 gives 51. Adding this to the remainder calculated above, multiplied by 100 (i.e. 200), gives the final value of 251 degrees for the course.
The last two characters Q represent the jeep symbol from the Primary Symbol Table.
Mic-E Position Ambiguity¶
As mentioned in Chapter 6 (Time and Position Formats), a station may reduce the precision of its position by introducing position ambiguity. This is also possible in Mic-E data format.
The position ambiguity is specified for the latitude (in the destination address). The same degree of ambiguity will then also apply to the longitude.
For example, if the destination address is T4SQQZ, the last two digits of the latitude are ambiguous (represented by ZZ). Then, if the longitude data in the Information field is QE, as in the above example, the last two digits of the computed longitude will be ignored — that is, the longitude will be 112 degrees 7 minutes.
Mic-E Telemetry Data (Obsolete)¶
This is now obsolete and replaced by the Base 91 Comment Telemetry format described in the Telemetry Data chapter.
If the byte following the Symbol Table Identifier is one of the Telemetry Flag characters (', \, or 0x1d), then telemetry data follows:
| Optional Mic-E Telemetry Data (obsolete) |
|---|
| Telemetry Flag |
| Bytes: |
| 1 |
The Telemetry Flag F is one of:
'2 printable hex telemetry values follow (channels 1 and 3).\5 printable hex telemetry values follow.- 0x1d 5 binary telemetry values follow (Rev. 0 beta units only).
If F is ' or \, each channel requires 2 bytes, containing a 2-digit printable hexadecimal representation of a value ranging from 0–255. For example, 254 is represented as FE.
If F is 0x1d, each channel requires one byte, containing an 8-bit binary value.
For example, if the telemetry data is \7200007100, the \ indicates that 5 bytes of telemetry follow, coded in hexadecimal:
- 0x72 = 114 decimal
- 0x00 = 0 decimal
- 0x00 = 0 decimal
- 0x71 = 113 decimal
- 0x00 = 0 decimal
Mic-E Status Text¶
The packet may include Mic-E status text. The status text may be any length that fits in the rest of the Information field.
(Why can’t we just call it a comment for consistency with the other position and object report formats?)
The Mic-E status text must not start with ', \, or 0x1d, otherwise it will be confused with [now obsolete] telemetry data.
It is possible to include a standard APRS-formatted position in the Mic-E status text field. (HUH???) A suitable position will cause the APRS display software to override any position data the Mic-E has encoded. This is useful if using a Mic-E without a GNSS receiver. *(HUH???) *
The Mic-E text field can contain any normal Position comment field too, such as PHG.
To distinguish themselves from the original MIC-E device, the early Kenwood radios automatically insert a prefix code at the front of the status text string (i.e. in the 10th character of the Information field):
Kenwood TH-D7: Kenwood TM-D700:
Later Kenwood models kept the same prefix, to indicate handheld or mobile, then added a single character suffix to the text:
Kenwood TH-D72: Kenwood TH-D74: Kenwood TH-D75: Kenwood TM-D710:
Devices from other manufacturers used a different prefix character of
which indicates a system is capable of messaging, or
which indicates a system is not capable of messaging (e.g. a tracker). A two character suffix indicates the manufacturer and model. Examples:
Yaesu FT2D: Yaesu FT3D: Yaesu FT5D:
Byonics TinyTrack 3: Byonics TinyTrack 4:
APRS display applications should remove any extra prefix and suffix before displaying the text. If you see something like “ 3” at the end of the status text (comment), it is because the application did not remove the device type as it should have.
Rather than having hardcoded device identifiers, it is highly recommended that applications read a file at runtime. When new models are added only this one file needs to be updated rather than modifying the code and making a new release. Machine readable files, with the latest device identifiers, can be found at https://github.com/aprsorg/aprs-deviceid.
MaidenheadLocator in the Mic-EStatus Text Field¶
The Mic-E status text field can contain a Maidenhead locator.
If the locator is followed by a plain text comment, the first character of the text must be a space. For example:
IO91SX/G Hello world (from a Mic-E or PIC-E)
IO91SX/G Hello world (from a Kenwood TH-D7) |IO91SX/G Hello world (from a Kenwood TM-D700)
is the grid locator symbol.
Altitude in the Mic-E Status Text Field¶
The Mic-E status text field can contain the station’s altitude. The altitude is expressed in the form xxx}, where xxx is in meters relative to 10km below mean sea level (the deepest ocean), to base 91.
For example, to compute the xxx characters for an altitude of 200 feet:
200 feet = 61 meters = 10061 meters relative to the datum
10061 / 91² = 1, remainder 1780
1780 / 91 = 19, remainder 51
Adding 33 to each of the highlighted values gives 34, 52 and 84 for the ASCII codes of xxx.
Thus the 4-character altitude string is "_4T}"
Some examples:
"_4T}`
"4T}
]_4T}
Optional altitude should be first after the Mic-E type byte.
Note that this comes after any device identifier prefix character.
Mic-E Data in Non-APRS Networks¶
Some parts of the Mic-E AX.25 Information field may contain binary data (i.e. non-printable ASCII characters). If such a packet is constrained to the APRS network, this should not cause any difficulties.
If, however, the packet is to be forwarded via a network that does not reliably preserve binary data (e.g. the Internet), then it is necessary to convert the data to a format that will preserve it.
Further, if the packet subsequently re-emerges back onto the APRS network, it will then be necessary to re-convert the data back to its original format.