Skip to content

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

  • 0x1c Current GNSS data (Obsolete - Rev. 0 beta units only).

  • 0x1d Old 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+28 is in the range 118–127 decimal, corresponding to the ASCII characters v to DEL.

Important Note: The longitude offset is set to +100 degrees when the longitude is in the range 0–9 degrees.

  • 10–99 degrees: d+28 is in the range 38–127 decimal (corresponding to the ASCII characters & to DEL), and the longitude offset is +0 degrees.

  • 100–109 degrees: d+28 is in the range 108–117 decimal,
    corresponding to the ASCII characters l (lower-case letter “L”) to u, and the longitude offset is +100 degrees.

  • 110–179 degrees: d+28 is in the range 38–107 decimal
    (corresponding to the ASCII characters & to k), 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+28 is in the range 88–97 decimal, corresponding to the ASCII characters X to a.
  • 10–59 minutes: m+28 is in the range 38–87 decimal (corresponding to the ASCII characters & to W).

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:

  1. subtract 28 from the m+28 value to obtain m.
  2. 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 t or $.
  • 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 ] or Y.
  • 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:

  • S is the APRS Data Type Identifier for a Mic-E packet containing current GNSS data.
  • U is the U+28 byte. The U character 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.
  • E is the E+28 byte. The E character has the value 95 decimal. Subtracting 28 gives 67. This is °m 60, so subtracting 60 gives a value of 7 minutes longitude.
  • F is the F+28 byte. The F character 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:

  • R is the R+28 byte. The R character has the value 110 decimal. After subtracting 28, the result is 82. As this is °m 80, a further 80 is subtracted, leaving a result of 2 tens of knots.
  • G is the G+28 byte. The G character 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 the O+28 byte. The O character 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.