Bose AV20 Assembly instructions

Installers Guide to the Bose® Serial interface June 28, 2011
Bose Confidential Information Page 1/42 Do Not Redistribute
Installers Guide to the Bose Serial
Interface for Bose AV20, AV35 and
AVM Home Theater Control Consoles
Document Version 1.04
Issued June 28, 2011
Summary:An interface exists in the rear of Bose AV20, AV35 and
AVM control consoles which allows some control of the console by an
external computer. This document describes the current capabilities
and the format of the interactions over that interface for Version
01.05.00 or later of the console software.
ALL INFORMATION FURNISHED BY OR ON BEHALF OF BOSE IN oR IN
CONNECTION WITH THIS DOCUMENT IS PROVIDED EXCLUSIVELY ON AN
“AS IS” BASIS, AND BOSE AND ITS AFFILIATES EXPRESSLY DISCLAIM ALL
WARRANTIES, WHETHER EXPRESS, IMPLIED, STATUTORY OR OTHERWISE,
INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES OF PERFORMANCE,
ACCURACY, COMPLETENESS, MERCHANTABILITY, FITNESS FOR A
PARTICULAR PURPOSE, TITLE OR NON-INFRINGEMENT. WITHOUT
LIMITATION OF THE ABOVE, BOSE GRANTS NO WARRANTY THAT THE
INFORMATION FURNISHED BY OR ON BEHALF OF BOSE IN oR IN
CONNECTION WITH THIS DOCUMENT IS ERROR-FREE OR WILL OPERATE
WITHOUT INTERRUPTION, AND GRANTS NO WARRANTY REGARDING ITS
USE OR THE RESULTS THEREFROM INCLUDING, WITHOUT LIMITATION, ITS
CORRECTNESS, ACCURACY OR RELIABILITY.

Installers Guide to the Bose® Serial interface June 28, 2011
Bose Confidential Information Page 2/42 Do Not Redistribute
TABLE OF CONTENTS
1INTRODUCTION______________________________________________ 5
1.1 Controlling the System .................................................................................................... 5
1.2 States of the System ........................................................................................................ 5
2DEFINITIONS ________________________________________________ 7
3THE PHYSICAL CONNECTOR __________________________________ 8
4PACKET FORMAT ____________________________________________ 9
4.1 Packet Fields..................................................................................................................... 9
4.1.1 Length..............................................................................................................................9
4.1.2 Status................................................................................................................................9
4.1.3 OpCode..........................................................................................................................10
4.1.4 Payload ..........................................................................................................................10
4.1.5 Checksum (if present)....................................................................................................11
5THE COMMUNICATION PROTOCOL ____________________________ 12
5.1 Notational Conventions ................................................................................................. 12
5.2 Issuing Commands to the Console .............................................................................. 12
5.3 Interpreting Packets from the Console ........................................................................ 12
5.3.1 Ready Packet..................................................................................................................13
5.3.2 Response Packets...........................................................................................................13
5.3.3 Error Packets..................................................................................................................13
5.3.4 Notification Packets.......................................................................................................14
5.4 Protocol Timings ............................................................................................................ 17
5.4.1 MAX_PACKET_TIME.................................................................................................17
5.4.2 REBOOT_TIME............................................................................................................17
5.4.3 NOT_AVAILABLE_TIME...........................................................................................17
5.4.4 TURN_ON_TIME.........................................................................................................17
5.4.5 ALL_OFF_TIME...........................................................................................................17
5.4.6 INACTIVITY_TIME.....................................................................................................17
5.4.7 INTER_COMMAND_TIME.........................................................................................17
5.4.8 LOW_POWER_POLL_TIME.......................................................................................17
5.5 Low Power Mode ............................................................................................................ 18
5.6 Autonomous Console State Changes.......................................................................... 18
5.6.1 The Console Experiences a Power Interruption.............................................................18
5.6.2 The Source is changed To the INPUT_ID_INSTALLIQ or INPUT_ID_PTS Source ..18
5.6.3 The Console Transitions To/From Low Power Mode ...................................................19
5.6.4 The Console Turns Off Due To Inactivity.....................................................................19

Installers Guide to the Bose® Serial interface June 28, 2011
Bose Confidential Information Page 3/42 Do Not Redistribute
5.7 Sample Command/Response Interaction .................................................................... 19
5.7.1 Sample 1 Query Main Room Volume............................................................................19
5.7.2 Sample 2 Key Press Command......................................................................................20
6CLIENT COMMANDS AND CONSOLE RESPONSES _______________ 22
6.1 VR - Query Version........................................................................................................ 22
6.2 VO - Set/Query Main Room Volume............................................................................. 23
6.2.1 Set Main Room Volume ................................................................................................23
6.2.2 Query Main Room Volume ...........................................................................................23
6.3 Echo - Hard and Soft Key Press Notifications........................................................... 25
6.3.1 Hard Key Press Notifications.........................................................................................25
6.3.2 Soft Key Press Notifications..........................................................................................26
6.4 KP - Simulate a Key Press........................................................................................... 28
6.5 TS - Set Tuner Station.................................................................................................. 29
6.6 QS - Query Tuner Station............................................................................................. 29
6.6.1 Converting between frequency and station number.......................................................30
6.6.2 Sample Conversions ......................................................................................................31
6.7 Query Current Tuner Preset .......................................................................................... 31
6.8 SR - Query Zone Source .............................................................................................. 32
6.9 RDS PS - Query RDS Program Service ...................................................................... 33
6.10 RDS RT - Query RDS Radio Text......................................................................... 33
6.11 SysRdy - Query System Ready ........................................................................... 34
6.12 UpTime - Query System Up Time....................................................................... 34
6.13 RmStatus - Query Room Status .......................................................................... 35
7APPENDIX _________________________________________________ 37
7.1 Source Enumerators ...................................................................................................... 37
7.1.1 Source Enumerator Notes ..............................................................................................37
7.2 Key Press Codes ............................................................................................................ 38
7.2.1 Hard Key Press Codes ...................................................................................................38
7.2.2 Soft Key Press Codes.....................................................................................................40
7.2.3 Key Press Notes.............................................................................................................41
8RELEASE NOTES ___________________________________________ 42
8.1 Known Problems ............................................................................................................ 42
9DOCUMENT REVISION HISTORY_______________________________ 42
LIST OF TABLES
Table 1-1 System States ................................................................................................................. 6

Installers Guide to the Bose® Serial interface June 28, 2011
Bose Confidential Information Page 4/42 Do Not Redistribute
Table 2-1 Definitions........................................................................................................................ 7
Table 4-1 General Packet Format................................................................................................... 9
Table 4-2 Packet Status Flags ...................................................................................................... 10
Table 4-3 The XOR Operator........................................................................................................ 11
Table 5-1 Ready Packet Format.................................................................................................... 13
Table 5-2 Error Packet Format...................................................................................................... 14
Table 5-3 Error Packet Error Codes.............................................................................................. 14
Table 5-4 Notification Packet Format............................................................................................ 15
Table 5-5 Notification Packet Notification-Types........................................................................... 15
Table 5-6 Key Press Notification Packet Format........................................................................... 16
Table 5-7 Assert Notification Packet Format................................................................................. 16
Table 5-8 Debug Packet Format ................................................................................................... 16
Table 5-9 Sample Volume Query.................................................................................................. 19
Table 5-10 Sample Checksum Calculation ................................................................................... 20
Table 5-11 Sample Response for Volume Query.......................................................................... 20
Table 5-12 Sample Key Press Command..................................................................................... 21
Table 5-13 Sample Checksum Calculation for Key Press............................................................. 21
Table 6-1 Query Version Command Format ................................................................................. 22
Table 6-2 Query Version Response Format.................................................................................. 22
Table 6-3 Version String Format ................................................................................................... 22
Table 6-4 Set Main Room Volume Command Format.................................................................. 23
Table 6-5 Query Main Room Volume Command Format.............................................................. 23
Table 6-6 Query Main Room Volume Response Format.............................................................. 24
Table 6-7 Enable Hard Key Press Notifications Command Format.............................................. 25
Table 6-8 Disable Hard Key Press Notifications Command Format............................................. 25
Table 6-9 Query Hard Key Press Notification State Format ......................................................... 26
Table 6-10 Query Hard Key Press Notification State Response Format...................................... 26
Table 6-11 Enable Soft Key Press Notifications Command Format ............................................. 26
Table 6-12 Enable/Disable Soft Key Press Notifications Accepted Response Format................. 27
Table 6-13 Enable/Disable Soft Key Press Notifications Invalid Response Format ..................... 27
Table 6-14 Disable Soft Key Press Notifications Command Format............................................. 28
Table 6-15 Key Press Command Format...................................................................................... 28
Table 6-16 Set Tuner Station Command Format.......................................................................... 29
Table 6-17 Query Tuner Station Command Format...................................................................... 30
Table 6-18 Query Tuner Station Response Format...................................................................... 30
Table 6-19 Converting between frequency and station number ................................................... 30
Table 6-20 Query Current Tuner Preset Command Format ......................................................... 31
Table 6-21 Query Current Tuner Preset Response Format.......................................................... 32
Table 6-22 Query Zone Source Command Format....................................................................... 32
Table 6-23 Query Zone Source Response Format....................................................................... 32
Table 6-24 Query RDS Program Service Command Format........................................................ 33
Table 6-25 Query RDS Program Service Command Response Format....................................... 33
Table 6-26 Query RDS Radio Text Command Format ................................................................. 33
Table 6-27 Query RDS Radio Text Response Format.................................................................. 34
Table 6-28 SysRdy Command Format.......................................................................................... 34
Table 6-29 SysRdy Response Format .......................................................................................... 34
Table 6-30 UpTime Command Format.......................................................................................... 35
Table 6-31 UpTime Response Format.......................................................................................... 35
Table 6-32 Query Room Status Command Format....................................................................... 36
Table 6-33 Query Room Status Response Format....................................................................... 36
Table 6-34 Room Status Speaker State........................................................................................ 36
Table 7-1 Source Enumerators ..................................................................................................... 37
Table 7-2 Hard Key Press Codes.................................................................................................. 38
Table 7-3 Soft Key Press Codes................................................................................................... 40
Table 9-1 Revision History ............................................................................................................ 42

Installers Guide to the Bose® Serial interface June 28, 2011
Bose Confidential Information Page 5/42 Do Not Redistribute
1 Introduction
This document specifies how to use the serial communications interface to control the following
control consoles: Bose AV20, AV35 and AVM control consoles. The AV20 is currently used in
Lifestyle T10/T20 systems. The AV35 is currently used in the Lifestyle 235, V25 and V35
systems. The AVM is currently used on the Bose VideoWave System.
The interaction between a computer and the Bose control console consists of Commands,
Responses, and event Notifications.
In previous generation Bose Lifestyle products, the interactions were sequences of printable
ASCII bytes which could be sent and received using a Terminal Emulator program.
The new control consoles interact with an external computer using a binary protocol, which
consists of sequences of bytes that transmit data which is not printable characters. The
sequences of bytes are structured and individual bytes generally hold numeric data. Thus the
interaction requires an application program on the computer. The rules and formats that describe
this interaction are called a protocol, which is described in this document.
1.1 Controlling the System
The system is normally controlled using key presses on the remote controls. The system can also
be controlled using the serial communication interface on the rear of the console and the protocol
described in this guide. The primary means of controlling the system is by simulating user key
presses using the Key Press command (see section 6.4). Other commands can query and/or
modify the states of the system.
The states of the system that can be set or queried are listed below. Later sections describe the
physical connection, the general format of the messages (packets) sent, the rules describing the
order and timing of these packets, and the specific packet format of the Commands, Responses,
and Notifications.
1.2 States of the System
Systems based on the AV20, AV35 or AVM consist of a Console (referred to hereafter as ―the
Console‖) and powered speakers in the Main Room, also known as Room A. The AV35 also
supports up to 14 separately controllable Bose® link room speakers (Rooms B-O).
The states of the system that can by queried or modified are listed in Table 1-1 System States.
The commands to query or set these states are listed in section 6 Client Commands and Console
Responses. The value for each state is described with the Command which sets or modifies the
value.
In addition to these states, several types of events can occur in the Console. The Console alerts
the Client to these events by sending Notifications. (see section 5.3.4 Notification Packets).

Installers Guide to the Bose® Serial interface June 28, 2011
Bose Confidential Information Page 6/42 Do Not Redistribute
Table 1-1 System States
State
Value
Command
to Set
Command
to Query
Available
in Low
Power
Mode
Main Room Speakers On
True/False
KP
RoomStatus
Yes
Main Room Speakers Muted
True/False
KP
RoomStatus
Yes
Main Room Speaker Source
Source Enumerators
KP
SR
Yes
Main Room Speaker Volume
0-100
KP, VO
VO
Yes
Bose® link Room Speakers
On
True/False
KP
RoomStatus
Yes
Bose® link Room Speakers
Muted
True/False
KP
RoomStatus
Yes
Bose® link Room Speaker
Stream
Zone2/Local
KP
RoomStatus
Yes
Bose® link Room Speaker
Volume
0-100
KP
RoomStatus
Yes
Zone1 Source
Source Enumerators
KP
SR
Yes
Zone 2 Source
Source Enumerators
KP
SR
Yes
Lower Power Mode
True/False
TimeOut
SysRdy
Yes
Hard Key Press Notifications
True/False
Echo
Echo
Yes
Soft Key Press Notifications
True/False
Echo
Not
Available
No
Version
Text
Read Only
VR
No
Tuner Station
0-65535
TS
QS
Yes
Tuner RDS Name
Text
Read Only
RDS PS
Yes
Tuner RDS Text
Text
Read Only
RDS RT
Yes
Tuner Current Preset
0-25
Read-Only
SysInfo
No
Time (msec) since Boot
0- 4294967295
Timer
Uptime
Yes

Installers Guide to the Bose® Serial interface June 28, 2011
Bose Confidential Information Page 7/42 Do Not Redistribute
2 Definitions
Table 2-1 Definitions
Name
Meaning
Client
The external computer and software controlling
the interaction with the Bose product.
Console
The AV20, AV35 or AVM Control Console
Packet
A series of bytes with a well defined structure.
The Client and Console communicate by
sending packets. The format of each packet is
described in section 4 Packet Format.
LSB
Least significant byte. The byte of a numeric
field which holds the smallest portion of the
number. For example the number 300 decimal
is represented in hexadecimal as 0x012c. The
least significant byte is 0x2c.
MSB
Most significant byte. The byte of a numeric
field which holds the largest portion of the
number. For example the number 1000
decimal is represented in hexadecimal as
0x03e8. The most significant byte is 0x03.

Installers Guide to the Bose® Serial interface June 28, 2011
Bose Confidential Information Page 8/42 Do Not Redistribute
3 The Physical Connector
The interface is a 3.5mm stereo connector located on the rear of the Console at the same height
as the power connector. The cable that connects the computer (for example a PC) to the Console
connects the receive, transmit, and ground wires of a DB-9 connector to the tip, ring, and ground
connections of the Console connector.
The DB-9 male connector (e.g. on a PC) has pins labeled 1-5 in the top row and 6-9 in the bottom
row. Pin 2 (Receive) goes to tip, Pin 3 (Transmit) goes to Ring, and pin 5 (Ground) connects to
sleeve. See cable figure 1 below.
The physical signaling uses the standard RS232 serial communication electrical specifications
with communication parameters of: 19200 Bits per second, 8 Data bits, No parity, 1 Stop bit, and
No Flow control. Note that the Console voltage is zero when the communications link is not
actively transmitting a packet.
Figure 1 The Serial Connection Cable

Installers Guide to the Bose® Serial interface June 28, 2011
Bose Confidential Information Page 9/42 Do Not Redistribute
4 Packet Format
All interactions between the Client and the Console are in the form of complete packets.
A Packet always begins with a Header field which contains the Length, Status, and Operation
Code. The Payload field contains any required parameters. Packets from the Client must also
include a Checksum field.
<Header> [ <Payload> ] <Checksum> Client to Console
<Header> [ <Payload> ] Console to Client -- Note: no Checksum
Note: Packets are NOT terminated with a Carriage Return or Line Feed.
4.1 Packet Fields
Table 4-1 General Packet Format
Byte
Number
Name
Number
of Bytes
Description
0
Length
1
Length of packet including this byte and the
Checksum byte (if present)
1
Status
1
Packet Flags. (Table 4-2 Packet Status Flags.)
2-3
Opcode
2
Operation to be performed
4—
Payload
Variable
Contains OpCode parameters if needed
Last
Checksum
1
Contains a checksum. Only sent by Client.
4.1.1 Length
Count of the total number of bytes in this packet including this Length byte, the Status, OpCode,
and Payload if present, and Checksum if present.
4.1.2 Status
The status byte consists of single bit flags. The bits of this byte are numbered from 7 the most
significant bit, to 0 the least significant bit. This byte must be set to 0 when sent by the Client.
When received by the Client, these flags are interpreted as indicated in Table 4-2 Packet Status
Flags.
Only two bits in the Status byte are relevant to the Client: the Error and Notification bits. The
Direction flag will always be set to 1 for all packets received by the Client and can be ignored. As
noted above, the Direction bit (and all other flags in the Status Byte) should be set to 0 in packets
sent by the Client.
The Error and Notification bits, as well as the OpCode field, must always be examined by the
Client to determine the type of packet it has received.

Installers Guide to the Bose® Serial interface June 28, 2011
Bose Confidential Information Page 10/42 Do Not Redistribute
Table 4-2 Packet Status Flags
Bit Number
Name
Meaning
7
Error
0 - No Error
1 - Error has occurred. Payload contains the
error information.
(See Section 5.3.3 Error Packets
6
Reserved
Client must ignore
5
Reserved
Client must ignore
4
Reserved
Client must ignore
3
Notification
0 - This is not a notification packet
1 - This is a notification packet
(See Section 5.3.4 Notification Packets.)
2
Reserved
Client must ignore
1
Direction
0 - For packets sent by the Client
1 - For packets sent by the Console
0
Reserved
Client must ignore
4.1.2.1 The Error Bit
On packets from the Console, the Error bit and Notification bit will never both be set. If the Error
bit is set, a protocol error has occurred (See section 5.3.3 Error Packets ).
The only protocol error possible on a debugged Client would be due to packet data corruption,
loss, or timeout. When the Console sends an error packet indicating corruption, the Client should
simply retry the command.
4.1.2.2 The Notification Bit
The Console occasionally sends Notification packets to indicate internal Console states, which
are normally not of interest to the Client. Thus if the Notification flag (bit 3) is set, then the packet
contents should normally be ignored by the Client. One Notification packet that could be useful to
a Client is notification that a key has been pressed on the Console or a remote. This notification
packet is only sent if the Client has enabled Key Press notifications (See section 5.3.4.1 Key
Press Notification Packets).
4.1.3 OpCode
The Operation code is always two bytes and indicates the operation requested of the Console.
See the value listed for individual commands in section 6 Client Commands and Console
Responses.
4.1.4 Payload
Content and length varies. See individual commands in section 6 Client Commands and Console
Responses for details.

Installers Guide to the Bose® Serial interface June 28, 2011
Bose Confidential Information Page 11/42 Do Not Redistribute
4.1.5 Checksum (if present)
The Checksum byte is used to help detect packet corruption during transit. The Checksum byte is
computed by the Client by XOR-ing all bytes in the packet to be sent that precede the Checksum
byte. Use the resulting value as the checksum value.
The binary operation table for the XOR operation, which is indicated by the caret (―^‖) character is
shown in the table below.
Table 4-3 The XOR Operator
Bit A
Bit B
A ^ B
0
0
0
0
1
1
1
0
1
1
1
0
Note XOR-ing a bit with 0 does not change the bit while XOR-ing a bit with 1 inverts the bit.
Thus a bit in the Checksum can be computed by summing the corresponding bit of each
preceding byte. The Checksum bit is 1 if there is an odd number of 1s in the corresponding bit of
each preceding byte and 0 if there is an even number of 1s.
For examples see the Checksum computed in Section 5.7 Sample Command/Response
Interaction, as well as the actual Checksum values listed in the command packets sent by the
Client in Section 6 Client Commands and Console Responses.
Note: The Checksum byte only appears on packets sent from the Client. There is no checksum
byte in packets sent from the Console.

Installers Guide to the Bose® Serial interface June 28, 2011
Bose Confidential Information Page 12/42 Do Not Redistribute
5 The Communication Protocol
The Client only sends Command packets, which are of two types:
1) A Control packet which requests the Console to do something
2) A Query packet which requests information from the Console
The Console sends four types of packets:
1) A Ready packet which indicates the Client can send another packet.
2) A Response packet which contains information requested by a Query packet
3) A Notification packet which indicates an event that occurred on the Console
4) An Error packet which indicates a problem with a packet sent by the Client.
The Command packets and the Response packet associated with them are listed in section 6
Client Commands and Console Responses.
5.1 Notational Conventions
Base 16 (hexadecimal) is used to represent the contents of packets. Base 10 is used everywhere
else unless the number is preceded by 0x which indicates hexadecimal.
Numbers occurring in the Payload field which are two or more bytes in length are sent using the
so called little-endian byte ordering, which sends the least significant byte (LSB) first. Thus the
number 350 decimal (0x015E) when sent, for example as the key hold time for the key press
command (see section 6.4KP - Simulate a Key Press), would be sent as 0x5E01.
The Exclusive Or (XOR) operation is indicated by the ―^‖ character. This is a bitwise operation on
two bytes, which results in a 1 if the two corresponding bits are different and a 0 if they are the
same (see Table 4-3 The XOR Operator.)
5.2 Issuing Commands to the Console
To control or query the Console, the Client sends a Command packet and waits for packets from
the Console. The Console does not send a Response packet for all commands but will always
send a Ready packet. In rare circumstances an Error packet is sent instead of a response, but
will always be followed by the Ready packet. The commands and their responses are described
in section 6 Client Commands and Console Responses. (See also section 5.3.1 The Ready
Packet and section 5.3.3 Error Packets)
Note: The Console sometimes sends Notification or Error packets, which can come at any time
including immediately after the Client issues a command packet. To understand how to parse
Console packets, see section 5.3 Interpreting Packets from the Console.
Regardless of whether the Console sends a response packet or not, the Console always sends a
Ready Packet after every Client command packet. The Ready Packet indicates the current
command has been accepted and the Client can send another command subject to protocol
timing (see section 5.4 Protocol Timings). The Client must wait for the Console's response and
must not issue another command until it receives a Ready Packet. See Section 5.3.1 The Ready
Packet.
In general, the resulting Console state change to a control command (e.g. source change, Room
On/Off) has not been performed by the time the Ready command is sent. A query command can
be used if needed to determine when the state change has occurred.
5.3 Interpreting Packets from the Console
A Client should receive a packet by first examining the value of the next nonzero byte of the input
stream. This value is the length of the incoming packet. If length-1 additional bytes are not

Installers Guide to the Bose® Serial interface June 28, 2011
Bose Confidential Information Page 13/42 Do Not Redistribute
received within MAX_PACKET_TIME (see section 5.4 Protocol Timings) there has been a
communication error. The console may also have lost power. See section 5.6 Autonomous
Console State Changes.
The Client should interpret a packet using the following algorithm:
1) If the Error bit is set in the Status byte this is an Error packet. See section 5.3.3 Error
Packets for the format of an Error packet.
2) If the Notification bit is set in the Status byte (the Error and Notification bits will never both
be set) this is a notification packet. See section 5.3.4 Notification Packets.
3) The Ready Packet indicates the Console has accepted the previous command and the
Client may send the next command subject to protocol timings (see section 5.4 Protocol
Timings). See section 5.3.1 The Ready Packet.
4) Otherwise it is a response packet. The OpCode bytes of the packet will match the
OpCode of the Command packet sent by the Client. The results of the command are in
the Payload portion of the packet. The Client must not issue another command until it
has received the Ready Packet.
5.3.1 Ready Packet
The Ready Packet is sent by the Console to indicate it has accepted the command and is ready
to receive another command from the Client subject to protocol timings (see section 5.4 Protocol
Timings).
The Client must always wait for this packet after issuing a command. It is always the same 4-
byte packet:
Console sends: 04 <Status> 01 00
Table 5-1 Ready Packet Format
Byte
Number
Value
(Hex)
Name
Explanation
0
04
Length
The total number of bytes in this packet is 4.
1
<Status>
Status
Error bit = 0,Notification bit = 0
2-3
01 00
OpCode
The Operation Code for the Ready Packet
5.3.2 Response Packets
Commands that query the Console for information receive the requested information in a
response packet. The format varies by command. For some control commands, a response will
be returned to acknowledge the command has been accepted. The specific response for each
command is listed in Section 6 Client Commands and Console Responses. All response packets
have a header which includes the length, status, and opcode as well as a payload containing the
requested information. The opcode of the response packet will match the opcode of the
command. Note there is no checksum in a response packet or any packet from the Console.
5.3.3 Error Packets
An Error packet is sent by the Console in response to an invalid Command or in rare instances
when a hardware error condition exists in the Console. The Error packet will be followed by a
Ready packet. An Error packet has the Error bit set in the packet Status byte. The Payload
contains the error code.

Installers Guide to the Bose® Serial interface June 28, 2011
Bose Confidential Information Page 14/42 Do Not Redistribute
An Error packet has the form:
Console sends: 07 <Status> 01 <Cmd> <Error-Code> <01>
Table 5-2 Error Packet Format
Byte
Number
Value (Hex)
Name
Explanation
0
07
Length
The total number of bytes in this packet is 7
1
<Status>
Status
Error bit = 1, Notification = 0
2
01
OpCode1
The value 1
3
<Cmd>
OpCode2
The second byte of the OpCode of the failed
command.
4-5
<Error-code>
Error Code
A two byte error code. LSB followed by MSB
6
01
Payload
The value 1
The two byte Error-code values appear below. Note since the code appears in the packet as
Least significant byte followed by Most significant byte, the two bytes in the packet appear in
reverse order from this list.
Table 5-3 Error Packet Error Codes
Two Byte Error
Code
(Hexadecimal)
Name
Explanation
0xfffe
PACKET_TIMEOUT
Time between characters exceeded
0xfffc
INVALID_STATUS_BYTE
Nonzero Status byte received by Console
0xfffb
NOT_AVAILABLE
Function not available in Low Power Mode
0xfffa
PACKET_CHECKSUM
Invalid Checksum received by Console
0xffef
INVALID_OPCODE
Unknown OpCode
0xffee
ARGUMENT
Incorrect Payload value
0xffed
HARDWARE
Internal Hardware error
With the exception of a HARDWARE error they indicate an invalid packet was received by the
Console. The packet was invalid because the Console detected a format error, or a command not
available in Low Power Mode was sent while the Console was in Low Power Mode.
In a debugged client an error (except HARDWARE) is generally due to a transmission error or a
Console reboot. The Client can determine if the Console has rebooted using the Uptime
Command (see section 6.12 UpTime - Query System Up Time). A transmission error should
simply be retried.
When a command which is not available in Low Power Mode is sent when the Console is in Low
Power Mode, the console delays NOT_AVAILABLE_TIME (see section 5.4 -- Protocol Timings)
and then returns an error packet with the Error Code NOT_AVAILABLE. The Client can
determine if the Console is in Low Power Mode by using the SysRdy Command (see section 6.11
SysRdy - Query System Ready).
5.3.4 Notification Packets
Notification packets can be sent by the Console at any time –even while the Client is waiting for
a response or Ready packet. The most useful notification packets are the Key Press notifications.
These notifications will only be sent by the Console when a Hard or Soft key press notification
state has been enabled via the Echo command (See Section 6.3 Echo - Hard and Soft Key
Press Notification). Note that the Hard Key Press Notification State is reset to False when the
Console reboots and the Soft Key Press Notification state is reset when the Console enters Low
Power Mode (see section 5.5 Low Power Mode).

Installers Guide to the Bose® Serial interface June 28, 2011
Bose Confidential Information Page 15/42 Do Not Redistribute
A rare but important notification packet is the Assert packet which indicates the Console
encountered a fatal internal condition and will reboot. The other notification packets indicate
various internal events of the Console (debug messages) and should be ignored by the Client.
The format of a Notification Packet is as follows:
<Length> <Status> 01 <Notification-Type> <Payload>
Table 5-4 Notification Packet Format
Byte
Number
Value (Hex)
Name
Explanation
0
<Length>
Length
The total number of bytes in the
packet. Variable
1
<Status>
Status
Error bit = 0, Notification bit = 1
2
01
OpCode1
The Value 1
3
<Notification-Type>
Notification Type
Where <Notification-Type>indicates
the notification type. See
Table 5-5 Notification Packet
Notification-Types
4—
<Payload>
Payload
The data associated with the
notification type
Table 5-5 Notification Packet Notification-Types
<Notification-Type>
(Hex)
Name
Explanation
00
Debug
See Section 5.3.4.3 Debug Notification Packets
02
Assert
See Section 5.3.4.2 Assert Notification Packets
04
Key Press
Notification
See Section 5.3.4.1 Key Press Notification Packets
5.3.4.1 Key Press Notification Packets
Key press Notification packets can be enabled or disabled and the state of Hard Key press
notifications can be queried using the Echo command (See 6.3 Echo - Hard and Soft Key Press
Notification). Key Press Notification packets are only sent if the key Press notifications are
enabled. Note that Hard Key Press Notification is set false when the Console reboots and Soft
Key Press notification is set false when the console enters Low Power mode.
When Key Press Notification is enabled, the Client is notified with two separate packets: 1) when
a key is pressed and 2) when the key is released. There is no separate notification if the key has
been held but the Client can determine the hold time by using its own timer and subtracting the
arrival times of the release and press notifications.
Since a key can be pressed/released on the remotes or the Console at any time, these packets
may occur between the times a Client sends a command and receives a response packet and a
ready packet.
They can be identified by the Status byte and the Key Press Notification OpCode: 0x0104.

Installers Guide to the Bose® Serial interface June 28, 2011
Bose Confidential Information Page 16/42 Do Not Redistribute
Console sends: 08 <Status> 01 04 <Key-State> <Producer> <Key-Code> <Room>
Table 5-6 Key Press Notification Packet Format
Byte
Number
Value
(Hex)
Name
Explanation
0
08
Length
The total number of bytes in this packet is 8
1
<Status>
Status
Error bit = 0, Notification bit = 1
2-3
01 04
OpCode
The OpCode of the Key Press Notification command
4
<Key-
State>
Key State
Pressed = 0, Released = 1
5
<Producer>
Key
Producer
Console = 0, RF = 1, IR = 2
6
<Key-
Code>
Key Code
The Key Code of the pressed key (See section 7.2 Key
Press Codes)
7
<Room>
Room
Code
Room where the Key was pressed. Decimal values 0-14
represent rooms A (Main) through O.
Note: The OpCode of a Key Press Notification packet is the same as the OpCode of a Ready
packet, but the length of a Ready packet is always 4 versus 8 for a Key Press Notification packet
and the Ready packet does not have the Notification bit set in the Status Byte.
5.3.4.2 Assert Notification Packets
This packet will only be sent from the Console if a fatal error in the Console has occurred, and it
indicates the Console will reboot. The first four bytes of payload are the Assert code, the rest is a
zero terminated ASCII string.
Console sends: <Length> <Status> 01 02 <Assert-Code> <Msg>
Table 5-7 Assert Notification Packet Format
Byte
Number
Value
(Hex)
Name
Explanation
0
<Length>
Length
The total number of bytes in this packet
1
<Status>
Status
Error bit = 0, Notification bit = 1
2-3
01 02
OpCode
4-7
<Assert-
Code>
Assert
Number
Can be used by support to trace the location of the failure
8—
<Msg>
Message
text
A zero terminated ASCII String
5.3.4.3 Debug Notification Packets
Console sends: <Length> <Status> 01 00 <Msg>
Table 5-8 Debug Packet Format
Byte
Number
Value
(Hex)
Name
Explanation
0
<Length>
Length
The total number of bytes in this packet
1
<Status>
Status
Error bit = 0, Notification bit = 1
2-3
01 00
OpCode
5—
<Msg>
Message
text
An ASCII String

Installers Guide to the Bose® Serial interface June 28, 2011
Bose Confidential Information Page 17/42 Do Not Redistribute
5.4 Protocol Timings
This section contains symbolic names for all Console timings which are part of the protocol. They
are referred to by name throughout the document.
5.4.1 MAX_PACKET_TIME
Once the Client sends the first byte of a packet, the rest of the packet must be sent within
300msec. The Console sends each packet at close to the maximum transmission speed. The
worst case packet transmission time from the Console will not be more than 300msec. Since the
first byte of a packet contains the number of bytes in the packet, the Client can determine the end
of the packet so wait time is typically much less.
5.4.2 REBOOT_TIME
After a power failure, the console will reboot and be able to process all commands available from
Low Power Mode within two seconds of power being restored.
5.4.3 NOT_AVAILABLE_TIME
When the console is in Low Power Mode and a command which is not available in Low Power
Mode (see Table 1-1 System States) is issued, the console does not respond for approximately
10 seconds and then returns the error NOT_AVAILABLE. Use the SysRdy command to
determine if the Console is in Normal Power Mode.
5.4.4 TURN_ON_TIME
When the Console is in Low Power Mode, all rooms will be off. If a command is issued to turn
any room on (e.g. a power on or source key press) the system will transition to the Normal Power
Mode after approximately 12 seconds.
5.4.5 ALL_OFF_TIME
The console transitions to Low Power Mode after all rooms have been off for approximately 12
minutes.
5.4.6 INACTIVITY_TIME
The Console turns off all rooms after no key presses have been received for several hours
(generally 4 or 24). Note the Console will be in Low Power Mode prior to this since no key
presses were received for the ALL_OFF_TIME.
5.4.7 INTER_COMMAND_TIME
Bose recommends that a client delays at least 100msec between receiving the Ready packet for
the previous command and sending the next command. For the Key Press command however
the delay should be at least 100msec longer than the key press hold time (see 6.4 KP - Simulate
a Key Press) and longer for some commands like source change. In general do not send key
presses faster than they would be sent from a remote.
5.4.8 LOW_POWER_POLL_TIME
Bose recommends not sending repetitive commands to the Console when it is in Low Power
Mode more often than once per 90 seconds. A TAP command received in Low Power Mode
causes the Console to move into a higher power state for several seconds and cause the LED to
change from Red to Amber.

Installers Guide to the Bose® Serial interface June 28, 2011
Bose Confidential Information Page 18/42 Do Not Redistribute
5.5 Low Power Mode
The console transitions from Normal Power to Low Power Mode when both Zone1 and Zone2
sources have been in the OFF source (see section 6.8 SR - Query Zone Source) for
ALL_OFF_TIME. The system automatically turns off all rooms and enters Low Power Mode if no
key press has been received for INACTIVITY_TIME.
The only way to bring the system out of Low Power Mode is by sending a key which turns on the
Console such as BOSE_ON_ASSERT or BOSE_INPUT1. Some keys have no meaning when the
Console is in Low Power mode (e.g. BOSE_LEFT_ARROW) and are not processed.
If Hard Key Press Notification has been enabled all (hard) key presses are echoed in both Low
Power and Normal Power mode.
Since a Power failure or system crash is rare but can be detected by the Uptime command (see
section 6.12 UpTime - Query System Up Time) or the Query Key Press Notification command
(see section 6.3.1.3 Query Hard Key Press Notification State) since notification is reset to false
after a reboot.
Use the SysRdy command (see section 6.11 SysRdy - Query System Ready) to determine if the
Console is in Low or Normal Power Mode.
5.6 Autonomous Console State Changes
Several events external to the Client can change the state of the Console and alter the normal
communication protocol. All of these states can be detected by issuing query commands. In
addition the Client can detect most of these states by monitoring key presses via Key Press
Notifications.
5.6.1 The Console Experiences a Power Interruption
If power is interrupted while the Client is communicating, the Client may receive a partial or
invalid packet. A partial packet is detected when less than the number of characters in the Length
(i.e. first) byte is received before MAX_PACKET_TIME. In this case the Client should discard any
additional bytes until no bytes are received for MAX_PACKET_TIME and assume the Console is
rebooting.
The system reboots into Low Power Mode after REBOOT_TIME and the Echo Notifications
Enabled state is set to False. To detect that the Console has rebooted use the Uptime command
(see section 6.12 UpTime - Query System Up Time)
All Commands which can be issued in Low Power Mode should respond within
LOW_POWER_RESPONSE_TIME. All other commands respond within
NOT_AVAILABLE_TIME. Thus if the Client does not receive a response to a command within the
associated time, the Console may have lost power.
The Uptime command can detect that the Console has rebooted. If Key Press Notification has
been enabled, the receipt of a key press notification indicates the Console has not lost power
since Key Press Notification is reset on a reboot. Thus recording and monitoring the elapsed time
from the last key press allows the client to test less frequently if the Console has lost power.
5.6.2 The Source is changed To the INPUT_ID_INSTALLIQ or
INPUT_ID_PTS Source
The source is automatically changed to INPUT_ID_INSTALLIQ when a cable becomes
unplugged and this source can also be selected from the menu by the user.
The INPUT_ID_PTS source is an information screen used by Bose for diagnostics.
Querying the current sources will detect if the system is in the INPUT_ID_INSTALLIQ or

Installers Guide to the Bose® Serial interface June 28, 2011
Bose Confidential Information Page 19/42 Do Not Redistribute
INPUT_ID_PTS source.
When the Console is in either of these sources, some commands do not operate normally. For
example the volume cannot be controlled and another source cannot be selected. When the
system is in either of these sources, manual intervention may be necessary to exit the source.
5.6.3 The Console Transitions To/From Low Power Mode
Low Power Mode occurs only after all rooms are in the OFF source.
In Low Power Mode (see section 5.5 Low Power Mode) only the commands listed as available in
Low Power Mode (see Table 1-1 System States) should be issued. If a command listed as not
available in Low Power Mode is sent when the console is in Low Power mode, the console will
not response for NOT_AVAILABLE_TIME and returns the error "NOT_AVAILABLE" (see Table
5-3 Error Packet Error Codes). The SysRdy command can be used to determine if the console
has entered/left Low Power Mode.
When a key press that transitions the console from Low Power to Normal Power Mode is sent, no
additional key press commands, or any commands which cannot be issued in Low Power Mode,
should be sent until the Sysrdy command returns 1.
5.6.4 The Console Turns Off Due To Inactivity
When the system is in Normal Power mode, and no key presses have been detected by the
console for INACTIVITY_TIME (see section 5.4 Protocol Timings) the console turns OFF. That is
both Zone1 and Zone2 sources are set to the OFF source. If no additional keys are detected for
ALL_OFF_TIME (see section 5.4 Protocol Timings) the Console transitions to Low Power Mode
(see section 5.5 Low Power Mode).
5.7 Sample Command/Response Interaction
5.7.1 Sample 1 Query Main Room Volume
To request the current volume of the Console, issue the "VO" query command (See section 6.2.2
Query Main Room Volume).
The Client sends the following bytes (shown in hexadecimal) to the Console:
Client sends: 07 00 01 15 00 1e 0d
Table 5-9 Sample Volume Query
Byte
Number
Value
(Hex)
Name
Explanation
0
07
Length
The total number of bytes in this packet is 7.
1
00
Status
Must be 0 for all packets sent from the Client
2-3
01 15
OpCode
The Operation Code for the VO command
4-5
00 1e
Payload
The Payload for the VO command
6
0d
Checksum
0x0d = 0x07 ^ 0x00 ^ 0x01 ^ 0x15 ^ 0x00 ^ 0x1e
The Checksum calculation is detailed in the following table where each byte is converted to
binary and the number of 1 bits in corresponding bit positions is summed for all bytes preceding
the Checksum byte. The Checksum byte is computed by the Client based on the packet data and
sent as the last byte of the packet. The Console re-computes the checksum and compares it with
the Checksum sent. This helps verify that the packet was not corrupted in transit.

Installers Guide to the Bose® Serial interface June 28, 2011
Bose Confidential Information Page 20/42 Do Not Redistribute
Table 5-10 Sample Checksum Calculation
Byte
Number
0
1
2
3
4
5
Number of 1’s in
corresponding bit in
preceding bytes
6 (Checksum)
Value(Hex)
07
00
01
15
00
1e
N/A
0d
Bit 7
0
0
0
0
0
0
0
0
Bit 6
0
0
0
0
0
0
0
0
Bit 5
0
0
0
0
0
0
0
0
Bit 4
0
0
0
1
0
1
2
0
Bit 3
0
0
0
0
0
1
1
1
Bit 2
1
0
0
1
0
1
3
1
Bit 1
1
0
0
0
0
1
2
0
Bit 0
1
0
1
1
0
0
3
1
If the current value of the Console volume was 20 decimal, then the following response would be
received:
Console sends: 05 <Status> 01 15 14
Table 5-11 Sample Response for Volume Query
Byte
Number
Value
(Hex)
Name
Explanation
0
05
Length
The total number of bytes in this packet is 5.
1
<Status>
Status
Error bit = 0, Notification bit = 0
2-3
01 15
OpCode
The OpCode of the VO command
4
14
Payload
0x14 is 20 in decimal
The Ready Packet would be received after that.
Console sends: 04 07 01 00
(See Section 5.3.1 Ready Packet for the format and meaning of each byte.)
The Client can now issue another command after INTER_COMMAND_TIME (see section 5.4
Protocol Timings
Note: The Client can receive Notification packets at any time. For example if
key echoing had been enabled, it is possible that one or more key press
notification packets could have been received before the Response packet
and/or the Ready packet was received. The Client must wait for the Ready
Packet before issuing another command.
(See section 6.2.2 Query Main Room Volume; section 6.3 Echo - Hard and Soft Key Press
Notification, and section 5.3.4.1 Key Press Notification Packets).
5.7.2 Sample 2 Key Press Command
To switch Room B to the source plugged into input 1 of the Console, issue a KP command (See
section 6.4 KP - Simulate a Key Press) from room B:
This manual suits for next models
1
Table of contents
Other Bose Music Mixer manuals