Inc. The information it contains is subject to change without notice. Harman International Industries, Inc.
assumes no responsibility for errors that may appear within this document.
Lexicon, Inc.
3 Oak Park
Bedford, MA 01730-1413 USA
Tel 781-280-0300
Fax 781-280-0490
www.lexicon.com
Customer Service
Tel 781-280-0300
Fax 781-280-0495 (Sales)
Fax 781-280-0499 (Service)
Lexicon Part No. 070-16304 Rev 0
2
Page 3
Lexicon MC-4 Serial Communications Protocol
1
Documents 5
1.1 Change List 5
2 Definitions 5
3 Abbreviations 5
4 General Description 5
The following document should also be used with this document to understand how this protocol can be
used with an MC-4.
070-16329 MC-4 User Guide
1.1 Change List
No changes at this time.
2 Definitions
User Parameter: A user changeable variable that stores a specific value that describes an
operating condition for the MC-4 system.
HOST: The device initiating or receiving the serial communication packets to/from the
MC-4.
MC-4: The Lexicon product receiving or transmitting the serial communication packets
to/from the HOST.
Nonvolatile RAM: The area of memory in a MC-4 that stores users adjustable parameters. The
Nonvolatile RAM is battery backed, to maintain values during MC-4 power down.
3 Abbreviations
SOP Start of Packet
EOP End of Packet
ACK Acknowledge
NAK No Acknowledge
FPD Front Panel Display
4 General Description
The intention of the MC-4 serial port and protocol communication is for an external connected HOST to
control and obtain status from the MC-4. The protocol has been designed to focus on two specific goals.
The first is HOST uploading and downloading of MC-4 configuration, and system/effect setups. The
second is HOST control of basic user adjustable parameters.(i.e. input, volume, balance…)
HOST
The MC-4 uses simple notification, command, response and acknowledgment packets to have
communication transactions with a given HOST. This protocol is designed for point-to-point
communication between a HOST and MC-4. The MC-4 Protocol is a 3 layered system. The MC-4 serial
protocol allows for the MC-4, or the HOST, to initiate a communication transaction. Most transactions are
initiated by the HOST. MC-4 then responds to the HOST command with either a response or
acknowledgment packet. There are a few asynchronous notifications that MC-4 initiates indicating
Rs-232 Serial
Lexicon MC-4
CD VOL
5
Page 6
Lexicon MC-4 Serial Communications Protocol
system changes. Each transaction initiated must wait for a corresponding response before initiating the
next transmission.
The 3 protocol layers are Physical, Data Link, and Application Layers.
Physical Layer (RS232)
Data Link Layer
Application Layer
4.1 Physical Layer
DB-9 RS232 Connector
MC-4
COM1
Transmit Data
Receive Data
9 Pin D-Shell (female)
Note: The wiring requirements for a 9 pin to 9 pin serial connection are a male to female straight through
cable.
Ground
2
3
5
2
3
5
9 Pin D-Shell (male)
9 Pin D-Shell (female)
Host
Receive Data
2
2
Transmit Data
3
3
Ground
5
5
9 Pin D-Shell (male)
4.2 Serial Port Driver
MC-4 serial port has been setup to operate as follows:
The MC-4 will detect parity, framing, and data overrun errors. If any of the physical layer errors are
detected, the complete packet is corrupted and the MC-4 will reset the transaction and begin to look for a
start of packet byte.
6
Page 7
Lexicon MC-4 Serial Communications Protocol
4.4 MC-4 Receive Buffer
The MC-4 has an internal receive buffer. The buffer is 256 Bytes and will transmit a NAK packet with an
error code of DC_ERR_BUFFER_FULL to the HOST if the buffer is full. If the buffer is full, all data
transmitted to the MC-4 will be ignored. Therefore, making the currently transmitted packet, if partially
transmitted invalid.
4.5 MC-4 Hardware Verification
This test verifies the RS232 ports are working by comparing the transmitted signal (at pin 2) to the
received signal (at pin 3). The MC-4 transmits a known test signal just following a power up. The MC-4
monitors the serial port receivers while transmitting the test signal. If the signals are the same, the test
passes. In order to test this circuit, RS232 Wraparound plug(s) are needed and must be installed at the
female D9 connector(s) on the rear panel of the MC-4 labeled “RS232”. The wraparound plug shorts pins
2 to 3, allowing for the MC-4 to receive the signal it is transmitting. Once installed, power cycle the MC-4
and verify the following message is displayed on the FPD:
SERIAL PORT A PASSED
SERIAL PORT B PASSED
This message is displayed for about 2 seconds before entering normal operating mode. If no messages
are displayed, then both wrap tests failed.
5 Data Link Layer
The data link layer is used to define a transmission packet. The layer appends a header and tail that
encloses the transmitted application packet data. The data link header will contain the start of packet
byte and count of bytes to follow. The data link tail will contain the end of packet byte.
Data Link Header:
Byte Number Description Value
First Byte (0) Start of Packet (SOP) 0xF1
Byte (1) DLL Data Count nn
Application Header:
Byte (2) Command nn
Byte (3) APP Data Count (number of application data bytes to
Follow)
Application Data:
Byte (4) Data [0] nn
Byte (5) Data [1] nn
… Data […] nn
Last Data Byte -1 Data [Data Count -1] nn
Data Link Tail:
Last Byte End of Packet (EOP) 0xF2
5.1 Errors
If the number of DLL data bytes received is the same as the data count and an EOP has not been
received, the MC-4 responds by transmitting a NAK packet with an error code
DC_ERR_INVALID_PACKET. The MC-4 then continues to look for a SOP byte and will not process the
erroneous application packet. The HOST can use this as an indicator to retransmit the corrupted packet.
nn
7
Page 8
Lexicon MC-4 Serial Communications Protocol
In addition, each byte of a packet must be received sequentially and within the INTER_PACKET_TIME. If
any of the bytes within a packet transmission exceeds the INTER_PACKET_TIME, the MC-4 will respond
by transmitting a NAK packet with an error code DC_ERR_INVALID_PACKET. The MC-4 then continues
to look for a SOP byte and will not process the erroneous application packet. The HOST can use this as
an indicator to retransmit the corrupted packet.
6 Application Layer
6.1 MC-4 Asynchronous Notification Packets
MC-4 has been designed to transmit the asynchronous notification packets following these system
changes:
1. Power On
2. Entering Standby
3. Front Panel Display update
4. Parameter Value Changes.
The notification packets are defined as follows:
6.1.1 Wakeup Notification
By transmitting the Wakeup Notification, MC-4 indicates the unit has just “powered on” or reset and is
ready to receive host commands. This notification is primarily for the HOST to know the status of the
MC-4.
6.1.1.1 Notification Packet Description
Application Header:
Command DC_WAKEUP 0x01
Data Count 0 0x00
Application Data:
N/A
6.1.1.2 Host Response
The MC-4 does not expect any response from the HOST.
6.1.2 Sleep Notification
By transmitting the Sleep Notification, MC-4 indicates the unit is shutting down into a standby mode.
Because the hard power switch could be activated independently of the MC-4 system software, hard
power down will not be notified. Acknowledgment of the Sleep Notification is not required. This
notification is primarily for the HOST to know the operating status of the MC-4.
6.1.2.1 Notification Packet Description
Application Header:
Command DC_SLEEP 0x02
Data Count 0 0x00
Application Data:
N/A
8
Page 9
Lexicon MC-4 Serial Communications Protocol
6.1.3 Front Panel Display
MC-4 will transmit the front panel display buffer following the update to the MC-4 front panel display. The
MC-4 front panel display is 2 X 20 ASCII character display. The HOST can enable transmission of this
notification message by sending Host Wakeup (
send Host Sleep (
6.3.6 page 14). Transmission of the display buffer is asynchronous to other host/MC-4
6.3.5 page 13). To disable transmission the HOST can
communication and will only transmit following the completion of any communication exchanges in
progress or pending.
Data Type: Null (0x00) terminated ASCII character string.
Max Length: DISP_LINE_LENGTH defined in the Protocol Constants table
Appendix D page 38).
(
Line2
Data Type: Null (0x00) terminated ASCII character string.
Max Length: DISP_LINE_LENGTH defined in the Protocol Constants table
Appendix D page 38).
(
The MC-4 includes 8 custom characters that are defined to display increments of a display block.
(i.e. Volume Bar) The custom characters are ASCII character codes 8E - 93(hex). The codes
are used as follows:
'8E' - empty cell
'8F' - left 1 bar
'90' - left 2 bars
'91' - left 3 bars
'92' - left 4 bars
'93' - full cell
6.1.3.3 HOST Response
The MC-4 does not expect any response from the HOST.
6.1.4 MC-4 Parameter Notification by Id
MC-4 will transmit parameter change notifications if they are enabled using the command described in
Set Parameter Notification by Id (
6.3.17 page 26). If a parameter value is changed due to any user action
or system action the MC-4 will transmit the current value of the parameter that is changing.
9
Page 10
Lexicon MC-4 Serial Communications Protocol
6.1.4.1 Command Packet Description
Application Header:
Command MC_PARAM_NOTIFICATION_BY_ID 0x05
Data Count 24 0x18
Application Data:
Data[0] ParamId(LSB) nn
Data[1] ParamId(MSB) nn
Data[2] ParamType nn
Data[3-23] Value[0 -20]
6.1.4.2 Data Description
Same as Set Parameter Value by Id: Data Description (
6.1.4.3 HOST Response
The MC-4 does not expect any response from the HOST.
6.1.4.4 Defaults
The following Parameters Notifications are Enabled in the MC-4 default state:
Parameter MC-4 Parameter Name
Current Mode PARAM.MAIN.EFFECT
Main Zone Mute PARAM.MAIN.MUTE
Main Zone Volume PARAM.MAIN.VOLUME
Main Zone Balance PARAM.MAIN.BALANCE
Main Zone Input Selection PARAM.MAIN.INPUT
Bass PARAM.MAIN.BASS
Treble PARAM.MAIN.TREBLE
Loudness PARAM.MAIN.LOUDNESS
Tilt PARAM.MAIN.TILT
Menu Background On/Off PARAM.OSD.BACKGND
See the V1.00 Parameter ID List (
6.3.12.2 page 20).
page 43) for the Parameter ID definitions.
nn nn
nn…
6.2 Acknowledgment Packets
Acknowledge and No Acknowledge packets are used to communicate transmission, packet and data
validation status. Both the HOST and MC-4 can transmit and receive these packets.
6.2.1 Acknowledge
6.2.1.1 Packet Description
Application Header:
Command DC_ACK 0xE0
Data Count 1 0x01
Application Data:
Data[0] Command nn
10
Page 11
Lexicon MC-4 Serial Communications Protocol
6.2.1.2 Data Description
Command:
DataType: Valid MC-4 command as defined in the Command Codes table
Appendix A page 34).
(
6.2.2 No Acknowledge
6.2.2.1 Packet Description
Appendix B page 35).
6.2.2.2 Data Description
Command:
DataType: Valid MC-4 command as defined in the Command Codes table
ErrorCode:
DataType: Error code as defined in the Error Codes table (
Application Header:
Command DC_NACK 0xE1
Data Count 2 0x02
Application Data:
Data[0] Command nn
Data[1] ErrorCode nn
Appendix A page 34).
(
6.3 Host Initiated Command Packets
The MC-4 serial communication protocol has been designed to respond to the following commands as
described below. Each command is transmitted to the MC-4 with the identified parameters. If the
command is successfully received and processed by the MC-4, the unit will respond with the described
response packet or action.
6.3.1 Reset Unit
Commands the MC-4 to soft reset.
6.3.1.1 Command Packet Description
Application Header:
Command DC_CMD_RESET 0x10
Data Count 0 0x00
Application Data:
N/A
6.3.1.2 MC-4 Response
11
Page 12
Lexicon MC-4 Serial Communications Protocol
The MC-4 will perform an internal reset. After reset, the MC-4 will go through a soft power-up
initialization. This includes transmitting the “Wakeup Notification Packet”. A soft reset does not
reinitialize the MC-4. Nonvolatile RAM is maintained.
6.3.2 Restore Defaults
Commands the MC-4 to restore the system and effect parameters to the factory defaults.
6.3.2.1 Command Packet Description
Application Header:
Command DC_CMD_RESTORE_DEFAULTS 0x13
Data Count 0 0x00
Application Data:
N/A
6.3.2.2 MC-4 Response
The MC-4 will reset, or clear, any saved system and effect parameters in Nonvolatile RAM, and
restore the factory default system and effect parameters. After reset, the MC-4 will go through a
soft power-up initialization. This includes transmitting the “Wakeup Notification Packet”.
6.3.3 Get Custom Name
Request to MC-4 for an effect definition. MC-4 will respond with “Custom Name Packet”.
6.3.3.1 Command Packet Description
Application Header:
Command DC_CMD_GET_CUST_NAME 0x2B
Data Count 0 0x00
Data Type: Null (0x00) terminated ASCII character string.
Max Length: CUSTOM_NAME_LENGTH as defined in the Protocol Constants table
Appendix D page 38).
(
Number of Characters in
CustomName + 1
nn
6.3.4 Set Custom Name
Sets the Custom Name that can be displayed when the unit powers up.
12
Page 13
Lexicon MC-4 Serial Communications Protocol
6.3.4.1 Packet Description
Application Header:
Command DC_CMD_SET_CUST_NAME 0x2C
Data Count
Application Data:
Number of characters in
CustomName + 2
nn
Data[0] CustomNameEnable nn
Data[1]-Data[DataCount-1] CustomName ch ch ch … 0x00
6.3.4.2 Data Description
CustomNameEnable: Enables/Disables the Custom Name Display.
DataType: Boolean
TRUE: CustomName Enabled
FALSE: CustomName Disabled
CustomName:
Data Type: Null (0x00) terminated ASCII character string.
Max Length: CUSTOM_NAME_LENGTH as defined in the Protocol Constants table
Appendix D page 38).
(
6.3.4.3 MC-4 Response
If the custom name enable is TRUE, then the custom name banner is display on “power on”. If
the Custom Name Enable is FALSE, the custom name is not displayed. The CustomName string
is copied to Nonvolatile RAM. The MC-4 will ACK when completed with this command.
6.3.4.4 Data Validation:
No data validation is done on the transmitted data.
6.3.5 Host Wakeup
By transmitting the Wakeup Notification, the Host indicates it has just “powered on” or reset and is ready
to receive MC-4 Notifications or Responses. The Host is assumed to be asleep upon power up of the
MC-4. Host status is maintained during standby.
6.3.5.1 Command Packet Description
Application Header:
Command HOST_WAKEUP 0x11
Data Count 0 0x00
Application Data:
N/A
6.3.5.2 Data Description
N/A
6.3.5.3 MC-4 Response
The MC-4 will respond to this command with an ACK.
13
Page 14
Lexicon MC-4 Serial Communications Protocol
6.3.6 Host Sleep
By transmitting the Sleep command, the Host indicates it has just “powered down” and will no longer
respond to MC-4 Notifications. No Acknowledgment is expected. The Host is assumed to be asleep
upon power up of the MC-4. Host status is maintained during standby.
6.3.6.1 Packet Description
Application Header:
Command HOST_SLEEP 0x12
Data Count 0 0x00
Application Data:
N/A
6.3.6.2 Data Description
N/A
6.3.7 Get Communication Configuration
This command is a request to the MC-4 for the current communications configuration for the serial port
and protocol. The MC-4 responds to this command with a Communication Configuration Packet.
6.3.7.1 Command Packet Description
Application Header:
Command DC_CMD_GET_COM_CONFIG 0x2F
Data Count 0 0x00
Application Data:
N/A
6.3.7.2 Communication Configuration Response Packet
Application Header:
Command DC_RESP_COM_CONFIG 0x8C
Data Count 1 0x01
Application Data:
Data[0] Configuration Register 0 nn
6.3.7.3 Data Description
Data Word Bit Definition
0 0 Acknowledge Enable
0 1 Parameter Change Enable
Acknowledge Enable:
TRUE Indicates the MC-4 will transmit Acknowledge Notification’s to the Host.
FALSE Indicates the MC-4 will not transmit any positive Acknowledge
Notification messages. The MC-4 will always transmit NAK error
notification messages.
Parameter Change Enable:
TRUE Indicates the MC-4 will transmit any parameter change Notification as
specified in the Parameter Change Notification Message.
14
Page 15
Lexicon MC-4 Serial Communications Protocol
FALSE Indicates the MC-4 will not transmit parameter change Notifications.
6.3.8 Set Communication Configuration
The Set Communication Configuration Command allows the serial port user to set up the various serial
port/ protocol configuration parameters.
6.3.8.1 Command Packet Description
Application Header:
Command DC_CMD_SET_COM_CONFIG 0x30
Data Count 1 0x01
Application Data:
Data[0] Configuration Register 0 nn
6.3.8.2 Data Description
Data Word Bit Definition
0 0 Acknowledge Enable
0 1 Parameter Change Enable
Acknowledge Enable:
TRUE Indicates the MC-4 will transmit Acknowledge Notification to the Host.
FALSE Indicates the MC-4 will not transmit any positive Acknowledge
Notification messages. The MC-4 will always transmit NAK error
notification messages.
Parameter Change Enable:
TRUE Indicates the MC-4 will transmit any parameter change Notification as
specified in the Parameter Change Notification Message.
FALSE Indicates the MC-4 will not transmit parameter change Notifications.
6.3.8.3 MC-4 Response
The data values transmitted will be copied over to the registers stored in nonvolatile RAM. The
MC-4 will respond with an ACK Packet.
6.3.9 Set Mute
The Set Mute Command message allows the RS232 users to set/clear the MC-4 mute state directly.
6.3.9.1 Command Packet Description
Application Header:
Command DC_CMD_SET_MUTE 0x31
Data Count 1 0x01
Application Data:
Data[0] Mute State nn
15
Page 16
Lexicon MC-4 Serial Communications Protocol
6.3.9.2 Data Description
MUTE State:
Value Definition Description
0 UNMUTE
1 USER MUTE
The user mute state is set to unmuted. The MC-4
may still be muted for other internal reasons.
The system volume decrements by the specified
user amount as set in the OUTPUT LEVELS Menu.
2 FULL MUTE The system is fully muted.
6.3.9.3 MC-4 Response
The MC-4 will set the mute state according to the value transmitted. The MC-4 may still be full
muted if other conditions require the audio path to be muted. This is only a direct access to the
user mute state.
6.3.9.4 Data Validation
The data value transmitted to the MC-4 will be verified as a valid value. If it is valid, the MC-4 will
set/clear the mute and respond with an ACK Packet. If the data value is invalid, the MC-4 will
respond with a DC_INVALID_DATA error NAK.
6.3.10 Send Display String Command
This command allows the Host to send a 40 character string to the MC-4 for display on the OSD and
Front Panel Display (FPD).
6.3.10.1 Packet Description
Application Header:
Command
Data Count
Application Data:
DC_CMD_SET_DISPLAY_ST
R
Number of characters in the
DisplayStr + 2
0x33
nn
Data[0] DisplayFlags nn
Data[1]-Data[DataCount-1] DisplayStr ch ch ch … 0x00
6.3.10.2 Data Description
Display Command Flags:
Word Bit Definition
0 0
FPD only: If set TRUE, the display string will only be sent to the FPD
device for display.
Data Type: Null (0x00) terminated ASCII character string.
Max Length: 40 Characters.
6.3.10.3 MC-4 Response
The display string is sent to the OSD and Front Panel Display. The MC-4 will ACK when
completed with this command.
6.3.10.4 Data Validation:
If a string length exceeds the 40 character maximum, the string will be truncated before
displaying and the MC-4 will transmit a DC_NAK command with an error code
DC_INVALID_DATA.
6.3.11 MC-4 Get Parameter Definition by Id
Request to MC-4 for a Parameter Definition by Parameter Id. MC-4 will respond with “MC-4 Parameter
Definition Packet”.
6.3.11.1 Command Packet Description
Application Header:
Command MC_GET_PARAM_BY_ID 0x35
Data Count 2 0x02
Application Data:
Data[0] ParamId(LSB) nn
Data[1] ParamId(MSB) nn
6.3.11.2 Data Description
ParamId:
Data Type: Unsigned 16 bit Integer
Max Value: Max Parameter Count as reported by the MC-4 Unit Configuration
6.3.11.3 Data Validation:
If the ParamId is not a valid Id, the MC-4 will respond with a NAK packet and error code
DC_ INVALID_PARAM_ID.
Response Packet (
6.3.14.2 page 22).
17
Page 18
Lexicon MC-4 Serial Communications Protocol
6.3.11.4 Parameter Definition Response Packet
The following Packet has been defined as follows for the MC-4 V1.00. Future releases may
modify this definition.
Application Header:
Command MC_SYS_PARAM_DEF_PKT 0x8F
Data Count 110 0x6E
Application Data:
Data[0] ParamId(LSB) nn
Data[1] ParamId(MSB) nn
Data[2] ParamType nn
Data[3] MAX Value(LSB) nn
Data[4] MAX Value(MSB) nn
Data[5] MIN Value(LSB) nn
Data[6] MIN Value(MSB) nn
Data[7-27] CurrentValue[0 -20] nn nn nn…
Data[28]-Data[108] Parameter Path ch ch ch … 0x00
Data[108] Read Only nn
6.3.11.5 Data Description
ParamId:
Data Type: Unsigned 16 bit Integer
Max Value: Max Parameter Count as reported by the MC-4 Unit Configuration
Response Packet (
6.3.14.2 page 22).
ParamType:
Data
Size
(Bytes)
Param Type Name
Param
Type ID
Type Description
PARAM_TYPE_UINT8 0 Unsigned 8 bit integer (0 to 255) 1
PARAM_TYPE_UINT16 1 Unsigned 16 bit integer (0 to 65535) 2
PARAM_TYPE_CSTR8 2 Zero terminated string of 8 ASCII characters 9
PARAM_TYPE_CSTR13 3 Zero terminated string of 13 ASCII characters 14
PARAM_TYPE_UINT32 4 Unsigned 32 bit integer (0 to 4,294,967,295 ) 4
PARAM_TYPE_BOOLEAN 5 Boolean( 0 to 1) 1
PARAM_TYPE_INT8 6 Signed 8 bit integer (-127 to 128) 1
PARAM_TYPE_BRANCH 7 Parameter Branch N/A
PARAM_TYPE_INT16 8 Signed 16 bit integer (-32,767 to 32,768) 2
PARAM_TYPE_CSTR20 9 Zero terminated string of 20 ASCII characters 21
Data:
The data value transmitted is dependent on the ParamType, as described above. The
CurrentValue is always packed starting at the CurrentValue [0] byte in the packet. For
multi-byte data, the values are packed LSB first(CurrentValue [0]) to MSB(CurrentValue
[0+(num bytes-1)]).
For example: Setting a given signed 16 bit parameter to a value of -300 the data array
All signed values are in the 2's compliment format.
Max Value:
This is a 16 bit value representing the maximum value for a parameter. Parameter
values exceeding the maximum will be limited to the maximum. This may be a signed or
unsigned value depending on the Parameter Type.
Min Value:
This is a 16 bit value representing the minimum value for a parameter. Parameter values
less than the minimum will be limited to the minimum. This may be a signed or unsigned
value depending on the Parameter Type.
Parameter Path:
This is a zero terminated ASCII character string describing the parameter's name and
path in the units parameter tree structure.
Read Only:
Data Type: Boolean
TRUE: Parameter is read only
FALSE: Parameter is writeable
6.3.12 MC-4 Set Parameter Value by Id
MC-4 Set Parameter by Id command sets the parameter value equal to the value sent in the command
packet, and then runs the appropriate functional changes associated with changing the given parameter.
6.3.12.1 Command Packet Description
Application Header:
Command MC_CMD_SET_SYS_PARAM_VALUE_BY_ID 0x36
Data
Count
Application Data:
24 0x18
Data[0] ParamId(LSB) nn
Data[1] ParamId(MSB) nn
Data[2] ParamType nn
Data[3-23] Value[0 -20] nn nn nn…
19
Page 20
Lexicon MC-4 Serial Communications Protocol
6.3.12.2 Data Description
ParamId:
Data Type: Unsigned 16 bit Integer
Max Value: Max Parameter Count as reported by the MC-4 Unit Configuration
Response Packet (
6.3.14.2 page 22).
ParamType:
Data
Size
(Bytes)
Param Type Name
Param
Type ID
Type Description
PARAM_TYPE_UINT8 0 Unsigned 8 bit integer(0 to 255) 1
PARAM_TYPE_UINT16 1 Unsigned 8 bit integer(0 to 65535) 2
PARAM_TYPE_CSTR8 2 Zero terminated string of 8 ASCII characters 9
PARAM_TYPE_CSTR13 3 Zero terminated string of 13 ASCII characters 14
PARAM_TYPE_UINT32 4 Unsigned 32 bit integer (0 to 4,294,967,295 ) 4
PARAM_TYPE_BOOLEAN 5 Boolean (0 to 1) 1
PARAM_TYPE_INT8 6 Signed 8 bit integer (-127 to 128) 1
PARAM_TYPE_BRANCH 7 Parameter Branch N/A
PARAM_TYPE_INT16 8 Signed 16 bit integer (-32,767 to 32,768) 2
PARAM_TYPE_CSTR20 9 Zero terminated string of 20 ASCII characters 21
Value:
The data value transmitted is dependent on the ParamType, as described above. The
Data Value is always packed starting at the Value[0] byte in the packet. For multi-byte
data, the values are packed LSB first(Value[0]) to MSB(Value[0+(num bytes-1)]). For
example: Setting a given signed 16 bit parameter to a value of -300 the data array would
be packed as follows:
Value[0] = 0xd4
Value[1] = 0xfe
Value[2 - 13] = don't care.
All signed values are in the 2's compliment format.
6.3.12.3 Data Validation:
The ParamId must be a valid Parameter. The ParamType must be valid for the given ParamId. If
either of these conditions is not true the MC-4 will respond with a NAK packet and error code DC
_ INVALID_PARAM_ID. The data value size cannot exceed the size of a given data type. A
value that does exceed the size of a given data type will be truncated to the appropriate size.
The ParamType transmitted must match the ParamType for the Parameter being transmitted, as
per the Parameter Definition as transmitted by the MC_SYS_PARAM_DEF_PKT. If the types do
not match, the MC-4 will transmit a NAK packet with a DC_INVALID_INPUT error code. The
MC-4 will transmit a NAK packet with a DC_ERR_READ_ONLY error code for read only
parameters.
20
Page 21
Lexicon MC-4 Serial Communications Protocol
6.3.13 MC-4 Set Parameter Value by Id, No Run
MC-4 Set Parameter by Id command sets the parameter value equal to the value sent in the command
packet and does not run the appropriate functional changes associated with changing the given
parameter.
6.3.13.1 Command Packet Description
Application Header:
Command MC_CMD_SET_SYS_PARAM_VALUE_BY_ID_NO_RUN 0x37
Data Count 24 0x18
Application Data:
Data[0] ParamId(LSB) nn
Data[1] ParamId(MSB) nn
Data[2] ParamType nn
Data[3-23] Value[0 -20] nn nn nn…
6.3.13.2 Data Description
Same as MC-4 Set Parameter Value by Id: Data Description (
6.3.12.2 page 20).
6.3.14 MC-4 Get Unit Configuration
Request to MC-4 for its current unit configuration. MC-4 will respond with “Unit Configuration Packet”.
The HOST should use this information to determine if any information saved by the HOST is current.
6.3.14.1 Command Packet Description
Application Header:
Command MC_CMD_GET_CONFIG 0x38
Data Count 0 0x00
Application Data:
N/A
21
Page 22
Lexicon MC-4 Serial Communications Protocol
6.3.14.2 MC-4 Unit Configuration Response Packet
Application Header:
Command MC_RESP_UNIT_CONFIG 0x91
Data Count 30 0x1E
Application Data:
Data[0] ProductId nn
Data[1] Software Type nn
Data[2] Software Level nn
Data[3] Software Major Revision nn
Data[4] Software Minor Revision nn
Data[5] Protocol Major Revision nn
Data[6] Protocol Minor Revision nn
Data[7] Parameter Count Low(LSB) nn
Data[8] Parameter Count High(MSB) nn
Data[9] Effect Count nn
Data[10] TimeStamp[0] ch
Data[11] TimeStamp[1] ch
Data[12] TimeStamp[2] ch
Data[13] TimeStamp[3] ch
Data[14] TimeStamp[4] ch
Data[15] TimeStamp[5] ch
Data[16] TimeStamp[6] ch
Data[17] TimeStamp[7] ch
Data[18] TimeStamp[8] ch
Data[19] TimeStamp[9] ch
Data[20] TimeStamp[10] ch
Data[21] TimeStamp[11] ch
Data[22] TimeStamp[12] ch
Data[23] TimeStamp[13] ch
Data[24] TimeStamp[14] ch
Data[25] TimeStamp[15] 0x00
Data[26] SerialNumber(LSB) nn
Data[27] SerialNumber nn
Data[28] SerialNumber nn
Data[29] SerialNumber(MSB) nn
*Note: SW level indicates the status of the MC-4 internal application software.
Software Major Revision:
An unsigned 8 bit integer value indicating the unit’s major software version. The host
should use this information to determine if new effects, effect parameters, or system
parameters have been added or removed.
23
Page 24
Lexicon MC-4 Serial Communications Protocol
Software Minor Revision:
An unsigned 8 bit integer value indicating this unit’s minor software version. Indicates the
unit’s software operation has changed but effects, effect parameters, or system
parameters have not changed.
Protocol Major Revision:
An unsigned 8 bit integer value indicating the serial communication protocol major
version. The host should use this value to determine if new commands, notifications, or
response packets have been added or deleted from this specification.
Protocol Minor Revision:
An unsigned 8 bit integer value indicating the serial communication protocol minor
version. The host should use this value to determine if the existing commands,
notifications, or response packets have changed in this specification
Parameter Count:
An unsigned 16 bit integer value indicating the maximum number of parameters for this
version of software. All Parameters are sequentially ordered within the unit so cycling
from ParamId 0 to ParamId = Parameter Count -1 allows for the host system to learn the
Parameter definitions for all Parameters defined for a given software version. The 16 bit
value is packed LSB followed by the MSB.
Total Number of Effects:
An unsigned 8 bit integer value indicating the maximum number of effects available for
this version of software.
TimeStamp:
A null terminated ASCII text string describing the build date and time of the current
software build. The Format of this text string is:
“yy/mm/dd(sp)hh:mm”
yy- is the last two digits of the year (i.e. year 2001=01, year 2002 = 02)
mm - is the month
dd- is the day
(sp) - is an ASCII space character (0x20)
hh - is the hour
mm - is the minute
SerialNumber:
An unsigned 32 bit integer holding the unique value of the current unit.
6.3.15 MC-4 Send IR Command
This command allows the HOST to transmit IR command key codes to the MC-4.
6.3.15.1 Command Packet Description
Application Header:
Command MC_CMD_IR 0x39
Data Count 1 0x01
Application Data:
Data[0] KeyCode nn
24
Page 25
Lexicon MC-4 Serial Communications Protocol
6.3.15.2 Data Description
KeyCode:
Data Type: Unsigned 8 bit integer.
Valid Values: MC-4 IR Codes (
Appendix C page 36)
6.3.15.3 MC-4 Response
The KeyCode is processed as a valid IR code. No acknowledgment will be sent from the MC-4.
6.3.15.4 Data Validation
The KeyCode data will be verified as a legal IR code. If the Code is not valid, the MC-4 will not
respond.
6.3.16 MC-4 Get Parameter Value by Id
Request to MC-4 for the current value of a given parameter. The MC-4 will respond with a “Parameter
Value Packet”.
6.3.16.1 Command Packet Description
Application Header:
Command MC_CMD_GET_PARAM_VALUE_BY_ID 0x3A
Data Count 2 0x02
Application Data:
Data[0] ParamId (LSB) nn
Data[1] ParamId (MSB) nn
6.3.16.2 Data Description
ParamId:
Data Type: Unsigned 16 bit integer.
Max: Max Parameter Count as reported by the MC-4 Unit Configuration
Response Packet (
6.3.14.2 page 22)
6.3.16.3 Data Validation
If ParamId exceeds its maximum value, the MC-4 will ignore the command and transmit a
DC_NAK command with an error code DC_INVALID_PARAM_ID.
6.3.16.4 MC-4 Value String Response Packet
Application Header:
Command MC_RESP_PARAM_VALUE 0x92
Data Count 24 0x18
Application Data:
Data[0] ParamId (LSB) nn
Data[1] ParamId (MSB) nn
Data[2] ParamType nn
Data[3-23] Value[0 -20] nn nn nn…
6.3.16.5 Data Description
Same as MC-4 Set Parameter Value by Id: Data Description (
6.3.12.2 page 20).
25
Page 26
Lexicon MC-4 Serial Communications Protocol
6.3.17 MC-4 Set Parameter Notification by Id
Request to MC-4 to enable or disable transmission of the MC-4 parameter change notification for a given
parameter.
6.3.17.1 Command Packet Description
Application Header:
Command MC_CMD_SET_PARAM_NOTIFICATION_BY_ID 0x3B
Data Count 3 0x03
Application Data:
Data[0] ParamId (LSB) nn
Data[1] ParamId (MSB) nn
Data[2] Enable/Disable nn
6.3.17.2 Data Description
ParamId:
Data Type: Unsigned 16 bit integer.
Max: Max Parameter Count as reported by the Unit Configuration Response
Packet in MC-4 Unit Configuration Response Packet (
6.3.14.2 page 22)
Enable/Disable:
Data Type: Boolean
TRUE: Enable transmission of parameter notification
FALSE: Disable transmission of parameter notification
6.3.17.3 Data Validation
If ParamId exceeds its maximum value, the MC-4 will ignore the command and transmit a
DC_NAK command with an error code DC_INVALID_PARAM_ID.
6.3.17.4 MC-4 Response
If a parameter has been enabled for notification, the MC-4 will transmit its current value whenever
it has been changed due to any user or system action, see MC-4 Parameter Notification by Id
notification packet (
6.1.4 page 9).
6.3.18 MC-4 Parameter Get Value String by Id
Request to MC-4 for the string representation of a given value for a given parameter. The MC-4 will
respond with a “Value String Response Packet”.
6.3.18.1 Command Packet Description
Application Header:
Command MC_CMD_PARAM_GET_VALUE_STRING_BY_ID 0x3C
Data Count 23 0x17
Application Data:
Data[0] ParamId (LSB) nn
Data[1] ParamId (MSB) nn
Data[2] - Data[22] Value[0] - Value[20] nn nn nn ..
26
Page 27
Lexicon MC-4 Serial Communications Protocol
6.3.18.2 Data Description
ParamId:
Data Type: Unsigned 16 bit integer.
Max: Max Parameter Count as reported by the MC-4 Unit Configuration
Response Packet (
6.3.14.2 page 22).
Value:
See
MC-4 Set Parameter Value by Id: Data Description (6.3.12.2 page 20).
6.3.18.3 Data Validation
If ParamId exceeds its maximum value, the MC-4 will ignore the command and transmit a
DC_NAK command with an error code DC_INVALID_PARAM_ID.
6.3.18.4 MC-4 Value String Response Packet
Application Header:
Command MC_RESP_VALUE_STRING 0x93
Data Count Number of Characters in Value String + 1 nn
Application Data:
Data[0] - Data[20] Value String ch ch ch … 0x00
6.3.18.5 Data Description
Value String:
Data Type: Null (0x00) terminated ASCII string.
Max Length: 21 (20 characters plus terminating Null)
6.3.19 MC-4 Clear All Parameter Notifications
Request to MC-4 to disable all MC-4 parameter notifications.
6.3.19.1 Command Packet Description
Application Header:
Command MC_CMD_CLEAR_ALL_PARAM_NOTIFICATIONS 0x3D
Data Count 0 0x00
Application Data:
N/A
6.3.20 MC-4 Get System Status
Request to MC-4 for its current system status. MC-4 will respond with “System Status Packet”.
6.3.20.1 Command Packet Description
Application Header:
Command MC_CMD_GET_SYS_STATUS 0x3E
Data Count 0 0x00
Application Data:
N/A
27
Page 28
Lexicon MC-4 Serial Communications Protocol
6.3.20.2 System Status Response Packet
Application Header:
Command MC_RESP_SYS_STATUS 0x94
Data Count 10 0x0A
Application Data:
Data[0] System Volume nn
Data[1] Current Input nn
Data[2] Current Effect Id nn
Data[3] Current Input Sample Rate nn
Data[4] Current Input Format nn
Data[5] Mute Active nn
Data[6] Effect Bypass nn
Data[7] Left/Right Balance nn
Data[8] Front/Back Balance nn
Data[9] Video Sync nn
6.3.20.3 Data Description
System Volume:
Data Type: Signed 8 bit integer (2’s compliment)
Max: +12 (0x0C) (12 dB)
Min: -80 (0xB0) (-80 dB)
Current Input:
Data Type: Unsigned 8 bit integer
Definition/Conversion: MC-4 Input Ids (
Appendix F page 40)
Current Effect Id:
Data Type: Unsigned 8 bit integer
Definition/Conversion: MC-4 Mode Ids (
Data Type: Boolean.
TRUE: System Mute is Active
FALSE: System is unmuted.
Effect Bypass:
Data Type: Boolean
TRUE: Effect Bypass is Active
FALSE: Effect Bypass is Inactive
Left/Right Balance:
Data Type: Signed 8 bit integer (2’s compliment)
Max: 16 (0x10) (Full Right)
Min: -16 (0xF0) (Full Left)
Front/Back Balance:
Data Type: Signed 8 bit integer (2’s compliment)
Max: 16 (0x10) (Full Front)
Min: -16 (0xF0) (Full Back)
Video Sync:
Data Type: Boolean.
TRUE: MC-4 has detected Video Sync for current video input
FALSE: MC-4 can not detect Video Sync for the current video input
6.3.21 MC-4 Set System Volume
This command is a request to the MC-4 to set the system volume with the value in this packet.
6.3.21.1 Command Packet Description
Application Header:
Command MC_CMD_SET_SYS_VOLUME 0x40
Data Count 1 0x01
Application Data:
Data[0] Value nn
29
Page 30
Lexicon MC-4 Serial Communications Protocol
6.3.21.2 Data Description
Value:
Data Type: Signed 8 bit integer (2’s compliment)
Max: +12 (0x0C) (12 dB)
Min: -80 (0xB0) (-80 dB)
6.3.21.3 MC-4 Response
The MC-4 will assign the value from the packet to the system volume.
6.3.21.4 Data Validation
If a value is passed that exceeds the maximum value of that parameter, the MC-4 will ignore the
command and transmit a DC_NAK command with an error code DC_INVALID_DATA.
6.3.22 MC-4 Set Main Balance
Commands MC-4 to set the system balance to the value in this packet.
6.3.22.1 Command Packet Description
Application Header:
Command DC_CMD_SET_SYS_BALANCE 0x41
Data Count 1 0x01
Application Data:
Data[0] Value nn
6.3.22.2 Data Description
Value:
Data Type: Signed 8 bit integer (2’s compliment)
Max: +16 (0x10) (Full Right)
Min: -16 (0xF0) (Full Left)
6.3.22.3 MC-4 Response
The MC-4 will assign the value from the packet to the system balance.
6.3.22.4 Data Validation
If a value is passed that exceeds the maximum value of that parameter, the MC-4 will ignore the
command and transmit a DC_NAK command with an error code DC_INVALID_DATA.
6.3.23 MC-4 Set Fader
Commands MC-4 to set the front/back balance to the value in this packet.
6.3.23.1 Packet Description
Application Header:
Command
Data Count
MC_CMD_SET_FRONT_BACK_BALANCE 0x42
1 0x01
Application Data:
Data[0]
Value nn
30
Page 31
Lexicon MC-4 Serial Communications Protocol
6.3.23.2 Data Description
Value:
Data Type: Signed 8 bit integer (2’s compliment)
Max: +16 (0x10) (Full Front)
Min: -16 (0xF0) (Full Back)
6.3.23.3 MC-4 Response
The MC-4 will assign the value from the packet to the front/back balance.
6.3.23.4 Data Validation
If a value is passed that exceeds the maximum value of that parameter, the MC-4 will ignore the
command and transmit a NAK command with an error code DC_INVALID_DATA.
6.3.24 MC-4 Set Active Effect by Id
This command requests the MC-4 to set the active effect to the value in this packet.
6.3.24.1 Command Packet Description
Application Header:
Command MC_CMD_SET_EFFECT 0x43
Data Count 1 0x01
Application Data:
Data[0] EffectId nn
6.3.24.2 Data Description
EffectId:
Data Type: Unsigned 8 bit integer
Definition/Conversion: MC-4 Mode Ids (
Appendix E page 39)
6.3.24.3 MC-4 Response
The MC-4 will load the desired effect.
6.3.24.4 Data Validation
If a value is passed that exceeds the maximum value of that parameter, the MC-4 will ignore the
command and transmit a NAK command with an error code DC_INVALID_DATA.
6.3.25 MC-4 Get Input Name by Id
This command is a request to MC-4 for the custom input name. MC-4 will respond with “Input Name
Packet”.
6.3.25.1 Command Packet Description
Application Header:
Command MC_CMD_GET_INPUT_NAME 0x47
Data Count 1 0x01
Application Data:
Data[0] InputId nn
31
Page 32
Lexicon MC-4 Serial Communications Protocol
6.3.25.2 Data Description
InputId:
Data Type: Unsigned 8 bit Integer
Definition/Conversion: MC-4 Input Ids (
Appendix F page 40)
6.3.25.3 Data Validation
The InputId must be a valid Input number. If it is not, the MC-4 will respond with a NAK packet
and error code DC_INVALID_INPUT.
Data Type: Unsigned 8 bit Integer
Description/Conversion: MC-4 Input Ids (
Appendix F page 40)
InputName:
Data Type: Null (0x00) terminated ASCII character string.
Max Length: INPUT_NAME_LENGTH defined in Protocol Constants table
Appendix D page 38)
(
nn
32
Page 33
Lexicon MC-4 Serial Communications Protocol
6.3.26.3 MC-4 Response
MC-4 will copy the InputName to the given input.
6.3.26.4 Data Validation
The InputId must be a valid Input Id. If it is not, the MC-4 will respond with a NAK packet and
error code DC_INVALID_INPUT. If the InputName string exceeds the INPUT_NAME_LENGTH,
the MC-4 will truncate the string to the INPUT_NAME_LENGTH.
5.1 L7 Music 19 13
THX(ex) 20 14
Dolby Digital 21 15
5.1 2-Channel 22 16
5.1 Mono Logic 23 17
5.1 Mono Surround 24 18
5.1 Mono 25 19
dts L7 Film 26 1A
dts L7 Music 27 1B
dts 2-Channel 28 1C
dts 29 1D
dts THX 30 1E
2ch Analog Bypass 31 1F
5.1 Analog Bypass 32 20
Nightclub 41 29
Concert Hall 42 2A
Church 43 2B
Cathedral 44 2C
L7 Music Surround 45 2D
Panorama 50 32
PLII + THX 14 0E
PLII Movie 12 0C
PLII Music 13 0D
PL + THX 51 33
Pro Logic 11 0B
DtsNEO6 + THX 52 34
DtsNEO6 Cin 15 0F
DtsNEO6 Music 16 10
THX Music (5.1) 48 30
Dts THX Music 47 2F
MC-4
Effect ID
MC-4 Effect
ID (hex)
39
Page 40
Lexicon MC-4 Serial Communications Protocol
Appendix F: MC-4 Input Ids
MC-4 Input Name MC-4 Input Id
OFF 0
DVD1 1
DVD2 2
TV 3
SAT 4
VCR 5
CD 6
TUNER 7
AUX 8
Application Notes and Examples
6.4 Box initializations
6.4.1 MC-4
When the MC-4 is powered on, it will initialize the serial port, transmit the DC_WAKEUP Packet, and look
for an ACK from the HOST. Currently, if an ACK is not received, the MC-4 continues to operate. This
message is mostly for the HOST to know if the MC-4 is in an operational state.
6.4.2 HOST
When the HOST issues a HOST_WAKEUP Packet, the MC-4 responds with an ACK and then transmits
the current FPD buffer with a DC_FPD notification. If the Host issues a HOST_WAKEUP command and
does not receive the ACK, it should assume it is not connected or the MC-4 is not capable of responding
on the RS232 and therefore further serial communications will not be possible. If the MC-4 RS232 is
capable of communicating, the MC-4 will respond to a HOST_WAKEUP Command in any “Powered up”
state including standby.
6.5 Simple System Control & System Status
The HOST can control the system via the IR commands thus making any direct IR code a direct
command. Because of some limitations in the IR codes, the HOST also has direct control over the
system volume, balance, fader, effect selection, zone 2 volume, balance and input selection through
dedicated commands.
6.6 Examples:
The following examples show the bytes transmitted for the MC-4 Get Unit Configuration, and Send MC-4
IR Commands. They are shown, as they should be transmitted from left to right.
40
Page 41
Lexicon MC-4 Serial Communications Protocol
6.6.1 MC-4 Get Unit Configuration
The HOST initiates by sending the GET_UNIT_CONFIG command packet:
SOP DLL DC CMD AppDC EOP
F1 03 38 00 F2
If the command is received without error, the MC-4 responds with the UNIT_CONFIG response packet:
Serial Number (LSB) Serial Number Serial Number Serial Number (MSB)
68 04 00 00 F2
From the response packet we can see that the MC-4 is configured as:
Product Id is Lexicon MC-4
Software type COMPLETE
Software level of RELEASED
Software Version 1.00
Protocol Version 1.01
with 1007 parameters
and 25 effects,
and the software image was built
“01/07/27 17:07”
and has an internal serial number of
1128 (0x00 00 04 68)
41
Page 42
Lexicon MC-4 Serial Communications Protocol
6.6.2 Send MC-4 IR Command Example
SOP DLL DC CMD AppDC DATA0 EOP
IR Key Code
F1 04 39 01 23 F2
This example shows how to transmit the IR command for “
MAIN_CD”. This example command will select
the CD input for the Main Zone. The bytes are transmitted from left to right and they are defined as:
Byte 0: Start of Packet (F1 hex)
Byte 1: Data Link Layer (DLL) Data Count (DC); for an IR command this would be 4 bytes to follow
Byte 2: The Application Layer Command, in this case it is 39 hex indicating this is an IR command
packet.
Byte 3: The Application Layer Data Count (DC); for this packet it is 1 data byte to follow.
Byte 4: The Application Command Data: This IR Command Packet is transmitting Key Code
“
MAIN_CD”(23 hex). To transmit other IR Key Codes the user would replace this byte with other
IR key codes as found in
Appendix C: MC-4 IR Codes.
Byte 5: End of Packet (F2 hex)
42
Page 43
Lexicon MC-4 Serial Communications Protocol
MC-4 V1.00 Parameter Id List
The following table is for V1.00 reference only. These Parameter Id Values will change with S/W and
Protocol version changes. The MC-4 can always be queried for the correct Parameter Id numbers and
Parameter Definition Packets.