Audio ICD
Audio ICD
communications protocol.
General
The A14 and A16 systems share the same protocol. Differences pertain only to the physically
available inputs and outputs.
The systems can be controlled via a bi-directional RS232 interface or CAN bus. In both cases
the content of the data sent and received is identical, the only difference being framing of the
data packets.
The RS232 link runs at 115200 baud, 8 data bits, no parity, one stop bit. Data packets are
framed using the GDL-90 protocol frame. This is not described as part of this document as
the details are readily available on the internet. GDL-90 is used mostly for ADS-B data
transfer and should be familiar to avionics engineers.
CAN bus is limited to a maximum of 8 bytes of data per CAN packet. 29Bit CAN addresses
are used. The CAN address field is used to encode protocol information allowing up to 8 CAN
packets to form a single message for a maximum data size of 64 bytes.
A14/A16 basics
The intercom system looks like a 16x8 audio crosspoint switch. A total of 16 inputs can be
arbitrarily switched onto 8 outputs. 4 of these outputs are dedicated to a stereo pair for each
pilot and Pax output circuit. Two outputs are routed to COM radios (for TX audio), one for an
AUX output (intended for cockpit voice recorders etc) and an output to the bluetooth module.
Generally all inputs can be switched to either left or right channel of a stereo output –
exceptions are wired music and bluetooth input which is also stereo – here switching either
left or right has the corresponding effect on the other channel as well.
The wired music input can be used either as combined stereo input or as two independent
input channels (AUX3 and AUX4). This is selected via a command.
The bluetooth system consists of a Microchip BM62 module. It is not normally required to
interact with this module other than making or accepting/rejecting a call. The documentation
for this module is available from Microsoft's website.
The mechanism to reconnect to a paired device is somewhat flawed in the BM62 as it only
reconnects to the last device it can find in a list of 8 previous devices. It does so for only one
of its two simultaneous connections. To overcome this the intercom uses the list of 8 previous
devices itself to try and connect with two previous devices simultaneously. This could be two
phones or a phone and a audio player etc.
Phone calls can be made and accepted from each of two connected phones. Related
messages contain a “database” byte selecting/indicating device “0” or “1”.
The BM62 is also used to accept firmware uploads (data transfer) via bluetooth. The
mechanism utilizes SPP. New firmware is stored in CPU flash memory separate from
executing code. If on restart the new image is verified as good the bootloader will swap the
old image for the new one.
The image also contains the binary code for a Razor interface head which can be requested
by the Razor so it can also be firmware upgraded indirectly via the intercom. This functionality
will of course not be of value for third party control applications and can be ignored.
The A14 differs from the A16 by not having the NAV1 and NAV2 inputs and there is no PAX
circuit. The A14 only has a stereo Pilot circuit. The control application can find out if a A14 or
A16 is connected by checking the V byte in the primary status message.
The A16 has provision for a Marker beacon receiver. This is a 17 th audio source and
permanently enabled onto Pilot and PAX circuit as well as the AUX output. Unused three bits
in the “Mode” byte of the primary status message will be used as the marker beacon “light”
states.
Data types
Byte 8 bits unsigned
Word 16 bits unsigned. Byte order: LSB first
Setup messages
Setup messages are requested by the host on a regular bases if needed. For example you
may want to adjust a microphone level. In this case you would request the setup message for
the particular microphone input.
Setup messages will alternate with the primary status message but the total message rate will
not exceed 10Hz. Once requested the setup message will be sent for 2 seconds if it is not re-
requested. Typically you should request it once per second until no longer needed. You can
only have one type of setup message active at any one time according to the last request.
Microphone inputs
General inputs
Values are represented in a decibel scale. 0=no signal. 255 = signal is clipping (max value
reached or exceeded).
This message should be requested to implement a diagnostics display to the user. It should
provide a simple overview of which inputs have a signal and what the current levels are. Note
that input signals are shown AFTER gain control and outputs are shown BEFORE gain
control.
The first byte of the message sets the destination for the message:
0: Message to be passed through to the bluetooth device.
1: Message for the intercom.
Command Description
0..10 These commands are not used and reserved
11 Select outputs to enable Bluetooth audio on
1 Data byte – Table SetSelected
12 Select outputs to enable Wired music audio on
1 Data byte – Table SetSelected
13 Select active TX on COM1
14 Select active TX on COM2
15 Do not Join Pilot and PAX audio
16 Join Pilot and PAX audio
17 Increment VOX MIC 1 (range 0-10 internally limited)
18 Decrement VOX MIC 1 (range 0-10 internally limited)
19 Increment VOX MIC 2 (range 0-10 internally limited)
20 Decrement VOX MIC 2 (range 0-10 internally limited)
21 Increment VOX MIC 3 (range 0-10 internally limited)
22 Decrement VOX MIC 3 (range 0-10 internally limited)
23 Increment VOX MIC 4 (range 0-10 internally limited)
24 Decrement VOX MIC 4 (range 0-10 internally limited)
25 Increment VOX MIC 5 (range 0-10 internally limited)
26 Decrement VOX MIC 5 (range 0-10 internally limited)
27 Increment VOX MIC 6 (range 0-10 internally limited)
28 Decrement VOX MIC 6 (range 0-10 internally limited)
29 Increment gain MIC 1 (range 0-63 internally limited)
30 Decrement gain MIC 1 (range 0-63 internally limited)
31 Increment gain MIC 2 (range 0-63 internally limited)
32 Decrement gain MIC 2 (range 0-63 internally limited)
33 Increment gain MIC 3 (range 0-63 internally limited)
34 Decrement gain MIC 3 (range 0-63 internally limited)
35 Increment gain MIC 4 (range 0-63 internally limited)
36 Decrement gain MIC 4 (range 0-63 internally limited)
37 Increment gain MIC 5 (range 0-63 internally limited)
38 Decrement gain MIC 5 (range 0-63 internally limited)
39 Increment gain MIC 6 (range 0-63 internally limited)
Command Description
40 Decrement gain MIC 6 (range 0-63 internally limited)
41 Increment gain COM 1 (range 0-63 internally limited)
42 Decrement gain COM 1 (range 0-63 internally limited)
43 Increment gain COM 2 (range 0-63 internally limited)
44 Decrement gain COM 2 (range 0-63 internally limited)
45 Increment gain NAV 1 (range 0-63 internally limited)
46 Decrement gain NAV 1 (range 0-63 internally limited)
47 Increment gain NAV 2 (range 0-63 internally limited)
48 Decrement gain NAV 2 (range 0-63 internally limited)
49 Increment gain AUX 1 (range 0-63 internally limited)
50 Decrement gain AUX 1 (range 0-63 internally limited)
51 Increment gain AUX 2 (range 0-63 internally limited)
52 Decrement gain AUX 2 (range 0-63 internally limited)
53 Increment gain AUX 3 (range 0-63 internally limited)
54 Decrement gain AUX 3 (range 0-63 internally limited)
55 Increment gain AUX 4 (range 0-63 internally limited)
56 Decrement gain AUX 4 (range 0-63 internally limited)
57 Increment gain wired Music (range 0-63 internally limited)
58 Decrement gain wired Music (range 0-63 internally limited)
59 Increment gain Bluetooth audio (range 0-63 internally limited)
60 Decrement gain Bluetooth audio (range 0-63 internally limited)
61 Increment gain COM2 output (range 0-63 internally limited)
62 Decrement gain COM2 output (range 0-63 internally limited)
63 Increment gain COM1 output (range 0-63 internally limited)
64 Decrement gain COM1 output (range 0-63 internally limited)
65 Increment gain Pilot audio output (range 0-63 internally limited)
66 Decrement gain Pilot audio output (range 0-63 internally limited)
67 Increment gain PAX audio output (range 0-63 internally limited)
68 Decrement gain PAX audio output (range 0-63 internally limited)
69 Increment gain AUX audio output (range 0-63 internally limited)
70 Decrement gain AUX audio output (range 0-63 internally limited)
71 Data byte 0 = Each microphone input has its own VOX setting
Data byte 1 = VOX is a combined setting and applied to all MIC inputs.
72 Requests stored setup. This is sent as two messages E2Setup1 and
Command Description
E2Setup2.
73 Reset everything to factory default
74 Request setup. Data byte is setup number 1-17. This is used to request
setup for MIC VOX/Gain/levels and other inputs/outputs.
75 Enable/Disable COM1 audio source. Data in Table SetAudioEnable
76 Enable/Disable COM2 audio source. Data in Table SetAudioEnable
77 Enable/Disable NAV1 audio source. Data in Table SetAudioEnable
78 Enable/Disable NAV2 audio source. Data in Table SetAudioEnable
79 Enable/Disable AUX1 audio source. Data in Table SetAudioEnable
80 Enable/Disable AUX2 audio source. Data in Table SetAudioEnable
81,82,83 Enable/Disable AUX3 audio source. Data in Table SetAudioEnable
84 Enable/Disable AUX4 audio source. Data in Table SetAudioEnable
85 Enable/Disable Wired Music audio source. Data in Table SetAudioEnable
86 Enable/Disable Bluetooth audio source. Data in Table SetAudioEnable
87 Not used
88 Increment Pilot and PAX volume. Both will be set the same
89 Decrement Pilot and PAX volume. Both will be the same
90 Wired music input is Music L/R
91 Wired music input is reassigned to AUX 3 and AUX 4
92 Do not used. Development use gateway only.
93 Data is microphone split.
0=MIC 1 on on Pilot circuit, 2-6 on PAX.
1=MIC 1,2 on Pilot circuit, 3-6 on PAX
94 Input enables. Two Data bytes forming a Word. Bit Pattern is used to
enable and disable channels for use. Note: this does not affect any
operation in the device – this value is reported back via the output
messages. It is used to disable unused inputs from the user panel. It is
suggested to use the audio source bit pattern.
95 If Data1=$AA and Data2=$12 starts writing EEProm settings to BM62
bluetooth module. The only time this is used is if you fit a new module.
This then configures the module to work with the intercom system.
96 System tests development function. Factory only. Do not use – gateway
function.
97 Playback Audio recording. CVR.
Data1 sets function:
0: Stop CVR Playback and continue recording.
1: Stop recording and start CVR playback from oldest recording
2: Send all stored CVR records on RS232
Command Description
3: Acknowledge receipt of a sector (related to function 2)
4: Erase CVR recording
Table SetSelected
This table describes a 1 byte data value used to enable/disable audio source onto a audio
destination (Pilot and PAX left and right channels).
Data Description
0 Toggle current state Pilot Left and Right (Left and Right will be the same)
1 Enable Pilot Left and Right (Left and Right will be the same)
2 Disable Pilot Left and Right (Left and Right will be the same)
3 Toggle current state PAX Left and Right (Left and Right will be the same)
4 Enable PAX Left and Right (Left and Right will be the same)
5 Disable PAX Left and Right (Left and Right will be the same)
6 Toggle current state Pilot Left
7 Enable Pilot Left
8 Disable Pilot Left
9 Toggle current state PAX Left
10 Enable PAX Left
11 Disable PAX Left
12 Toggle current state Pilot Right
Data Description
13 Enable Pilot Right
14 Disable Pilot Right
15 Toggle current state PAX Right
16 Enable PAX Right
17 Disable PAX Right
Table SetAudioEnable
Data Description
0 Toggle current state
1 Enable Audio source (unmute)
2 Disable Audio source (mute)
ASCII Message
The device may send ASCII messages to indicate certain conditions. The host application
should pop-up the message and display the last received message to the user. The user shall
have a function to dismiss the popup.
Field Name Type Description
M Byte Protocol ID = 1
V Byte 0
ID Byte 7
Length Byte Length of following message (up to 20 characters)
Message Array of ASCII message
byte
Version Message
The version message is sent on request. Version info shown here is example.
Field Name Type Description
M Byte Protocol ID = 1
V Byte 0
ID Byte 13
Field Name Type Description
Length Byte 5
Type Array of Text: A16-1
byte
Length Byte 6
Version Array of Text: 261119
byte
Filler Byte 255
Length Byte 01/20/20
Text Array of V1 REL 1
byte
Kind Description
2 Call status, 2 bytes data
3 Caller ID, Variable size data following
Kind Description
0x17 Linked device information
0x21 Read local device name reply
Please refer to the BM62 documentation from Microchip. The “Kind” number is identical to the
Command in the reply format. The data following is the same as sent by the device.
The A16 intercom takes care of most protocol and interfacing details with the BM62 module
leaving interaction required by the host system to a minimum. For the most part you deal with
the call status that signals an incoming call, send accept or hangup/reject or make a call.
For these interactions you would pass BM62 commands 0x00 (Make call) and 0x02 (MMI)
You can interact with two phones and make calls on either phone. You cannot access the
phones internal database. You make a call by passing a phone number.
The A16 keeps track of active calls and will handle protocol related details with the BM62.
The Phone service status in secondary status message from the A16 is based on the
contents of BM62 command 0x0B received.
Data is passed to the BM62 unmodified. You need to prepare a command as outlined in the
BM62 documentation including checksum.
The A16 will pass this on and handle the acknowledge phase.
Data is read from the BM62 into a buffer. If the buffer reaches a fillcount of 50 a message is
sent and the buffer cleared. If there is no more data from the BM62 for about 20 milliseconds
and there is data in the buffer it will be sent and the buffer cleared.