information it contains is subject to c hange without notice. Lexicon, Inc . assum es no respons ibility
for errors that may appear within this document.
Lexicon, Inc.
3 Oak Park
Bedford, MA 01730-1441 USA
Tel781-280-0300
Fax781-280-0490
www.lexicon.com
MC1/DC2 Serial Port Definition, Protocol Version 0.5
070-14773 Manual, Owner’s, MC12/MC12B
2 Definitions
User Parameter:A user changeable variable that stores a specific value that describes an
operating condition for the MC-12 system.
HOST:The device initiating or receiving the serial communication packets to/from the
MC-12.
MC-12 ,MC-1,DC-2:The Lexicon product receiving or transmitting the serial communication packets
to/from the HOST.
Nonvolatile RAM:The area of memory in an MC-12 that stores users adjustable parameters. The
Nonvolatile RAM is battery backed, to maintain values during MC-12 power
down.
2.1 Protocol Version Cross-reference
All references to MC-12 shall be valid for both the MC-12 and SDP-40 products unless specifically
documented otherwise. All references to MC-1 shall be valid for the MC-1, DC-2 and SDP-3 products
unless specifically documented otherwise.
3 Abbreviations
SOPStart of Packet
EOPEnd of Packet
ACKAcknowledge
NAKNo Acknowledge
FPDFront Panel D isplay
4 General Description
The intention of the MC-12 serial port and protocol communication is for an external connected HOST to
control and obtain status from the MC-12. The protocol has been designed to focus on two specific goals.
The first is HOST uploading and downloading of MC-12 configuration, and system/effect setups. The
second is HOST control of basic user adjustable parameters.(i.e. input, volume, balance…)
Lexicon, Inc.
MC-12 Serial Communications ProtocolPrinted on: 11/07/01
The MC-12 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-12. The MC-12 Protocol is a 3 layered system. The MC-12
serial protocol allows for the MC-12, or the HOST, to initiate a communication transaction. Most
transactions are initiated by the HOST. MC-12 then responds to the HOST command with either a response
or acknowledgment packet. There are a few asynchronous notifications that MC-12 initiates indicating
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
The MC-12 Serial Protocol attempts to be as backward compatible with the MC-1 as possible. This
document will try to inform the user/programmer of the consistencies and differences between the MC-1
protocol and the MC-12 protocol. The basic structure of the protocol has not changed. A number of
command/responses/notifications packets have been implemented exactly as they were in the MC-1. These
commands may not fully exercise the functionality of the MC-12 (i.e. Mc-1 has 8 inputs that have been
mapped to 8 of the 12 inputs on the MC-12, MC-1 IR codes are not the same as MC-12 IR codes) In the
case of these commands additional MC-12 commands have been added to fully implement the MC-12
functionality. In addition, some the internal structure of the MC-12 has forced the protocol to be unable to
support some MC-1 commands. These commands have been totally replaced with new commands that
provide more control over the MC-12 than was capable in the MC-1. (Parameter Set/Get commands)
The MC-12 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-12 will reset the transaction and begin to look for a
start of packet byte.
5.4 MC-12 Receive Buffer
The MC-12 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-12 will be ignored. Therefore, making the currently transmitted packet, if partially
transmitted invalid.
5.5 MC-12 Hardware Verification (Not Supported in MC-12 V1.00, V1.01)
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-12 transmits a known test signal just following a power up. The MC-12 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-12 labeled “RS232”. The wraparound plug shorts pins 2 to 3,
allowing for the MC-12 to receive the signal it is transmitting. Once installed, power cycle the MC-12 and
verify the following message is displayed on the FPD:
Lexicon, Inc.
MC-12 Serial Communications ProtocolPrinted on: 11/07/01
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.
6 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 NumberDescriptionValue
First Byte(0)Start of Packet (SOP)0xF1
Byte(1)DLL Data Countnn
Application Header:
Byte(2)Commandnn
Byte(3)
Application Data:
Byte(4)Data[0]nn
Byte(5)Data[1]nn
…Data[…]nn
Last Data Byte -1Data[Data Count -1]nn
Data Link Tail:
Last ByteEnd of Packet (EOP)0xF2
APP Data Count (number of application data bytes to
Follow)nn
6.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-12 responds by transmitting a NAK packet with an error code DC_ERR_INVALID_PACKET.
The MC-12 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.
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-12 will
respond by transmitting a NAK packet with an error code DC_ERR_INVALID_PACKET. The MC-12
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.
Lexicon, Inc.
MC-12 Serial Communications ProtocolPrinted on: 11/07/01
7 Application Layer
7.1 MC-12 Asynchronous Notification Packets
MC-12 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:
7.1.1 Wakeup Notification (MC-12, MC-1)
By transmitting the Wakeup Notification, MC-12 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-
12.
7.1.1.1 Notif icat ion Packet Description
Application Header:
CommandDC_WAKEUP0x01
Data Count00x00
Application Data:
N/A
7.1.1.2 Host Response
The MC-12 does not expect any response from the HOST.
7.1.2 Sleep Notification (MC-12, MC-1)
By transmitting the Sleep Notification, MC-12 indicates the unit is shutting down into a standby mode.
Because the hard power switch could be activated independently of the MC-12 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-12.
7.1.2.1 Notif icat ion Packet Description
Application Header:
CommandDC_SLEEP0x02
Data Count00x00
Application Data:
N/A
7.1.3 Front Panel Display (MC-12, MC-1)
MC-12 will transmit the front panel display buffer following the update to the MC-12 front panel display.
The MC-12 front panel display is 2 X 20 ASCII character display. The HOST can control the operation of
this notification message by FPD internal control registers. Individual notifications can be enabled or
disabled and the minimum transmit interval can be adjusted. Transmission of the display buffer is
asynchronous to other host/MC-12 communication and will only transmit following the completion of any
Data Type:Null (0x00) terminated ASCII character string.
Max Length:DISP_LINE_LENGTH defined in Appendix G Protocol Constants.
Line2
Data Type:Null (0x00) terminated ASCII character string.
Max Length:DISP_LINE_LENGTH defined in Appendix G Protocol Constants.
The MC-12 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 08 - 0F(hex). The codes are used as
follows:
'08' - left 1 bar
'09' - left 2 bars
'0A' - left 3 bars
'0B' - left 4 bars
'0C' - Full Cell
'0D' - Underscore
'0E' - right 3 bars
'0F' - not in use
7.1.3.3 HOST Response
The MC-12 does not expect any response from the HOST.
7.1.4 MC-1 Parameter Change (MC-12, MC-1)
MC-12 will transmit predetermined parameter change notifications. If a parameter value is changed due to
any user action or system action the MC-12 will transmit the current value of the parameter that is changing.
This command has been maintained for backward compatibility with MC-1. In order to maintain backward
compatibility, the MC-12 Parameters have been mapped to the MC-1 parameters as described in the
Supported System Parameters table listed below.
Lexicon, Inc.
MC-12 Serial Communications ProtocolPrinted on: 11/07/01
7.1.4.1 Notif icat ion Packet Description
Application Header:
CommandDC_PARAM_CHG_MSG0x04
Data Count20x02
Application Data:
Data[0]ParamIdnn
Data[1]Valuenn
7.1.4.2 Data Description
ParamId:
Data Type:Unsigned 8 bit integer
Max:255.
Value:
The Current Value for this system parameter.
Data Type:Unsigned 8 bit integer
Max:Set by the Max Value per the Parameter Definition response Packet for
the Parameter Id of this packet.
7.1.4.3 HOST Response
The MC-12 does not expect any response from the HOST.
7.1.4.4 Supported System Par ameters
The following parameters will be supported by this Parameter Change Notification:
ParameterMC-12 Parameter
Name
Current EffectPROGRAM1
MuteMUTE3
System VolumeVOLUME5
BalanceLR_BALANCE6
Input SelectionINPUT7
Record/Zone 2 On/OffRECORD_ENABLED18
Zone 2 VolumeZ2_VOL154
Zone 2 BalanceZ2_BAL156
Zone 2 MuteZ2_MUTE157
BassBASS167
TrebleTREBLE168
LoudnessLOUDNESS169
TiltTILT174
Menu Background On/OffMENU_BKGND190
Note: The Record/Zone 2 On/Off only applies to the MC-12 Record zone. The Zone 2 Volume, Zone 2
Balance and Zone 2 Mute only apply to the MC-12 Zone-2.
For Input Parameter Change Notifications the Input Value is a MC-12 to MC-1 input mapping, as shown in
Appendix F MC-12 Input Id's.
MC-1
ParamId(V4.00)
7.2 Acknowledgment Packets
Acknowledge and No Acknowledge packets are used to communicate transmission, packet and data
validation status. Both the HOST and MC-12 can transmit and receive these packets.
Lexicon, Inc.
MC-12 Serial Communications ProtocolPrinted on: 11/07/01
7.2.1 Acknowledge (MC-12, MC-1)
7.2.1.1 Packet Description
Application Header:
CommandDC_ACK0xE0
Data Count10x01
Application Data:
Data[0]Commandnn
7.2.1.2 Data Description
Command:
DataType:Valid MC-12 command as defined in Appendix A Command Codes.
7.2.2 No Acknowledge (MC-12, MC-1)
7.2.2.1 Packet Description
Application Header:
CommandDC_NACK0xE1
Data Count20x02
Application Data:
Data[0]Commandnn
Data[1]ErrorCodenn
7.2.2.2 Data Description
Command:
DataType:Valid MC-12 command as defined in Appendix A Command Codes.
ErrorCode:
DataType:Error code as defined in Appendix B Error Codes.
7.3 Host Initiated Command Packets
The MC-12 serial communication protocol has been designed to respond to the following commands as
described below. Each command is transmitted to the MC-12 with the identified parameters. If the
command is successfully received and processed by the MC-12, the unit will respond with the described
response packet or action.
Lexicon, Inc.
MC-12 Serial Communications ProtocolPrinted on: 11/07/01
7.3.1.2 MC-12 Response
The MC-12 will perform an internal r eset. After reset the MC-12 will go through a soft power-up
initialization. This includes transmitting the “Wakeup Notification Packet”. A soft reset does not
reinitialize the MC-12. Nonvolatile RAM is maintained.
7.3.2 Restore (MC-12, MC-1)
Commands the MC-12 to restore the system and effect parameters to the factory defaults.
7.3.2.1 Command Packet Description
Application Header:
Command DC_CMD_RESTORE_DEFAULTS0x13
Data Count 00x00
Application Data:
N/A
7.3.2.2 MC-12 Response
The MC-12 will reset, clear any saved system and effect parameters in Nonvolatile RAM, and restore the
factory default system and effect parameters. After reset the MC-12 will go through a soft power-up
initialization. This includes transmitting the “Wakeup Notification Packet”.
7.3.3 MC-1 Send IR Command (MC-12, MC-1)
Transmits MC-1 IR command key codes to the MC-12.
This command has been maintained for backward compatibility to the MC-1. The MC-1 IR code
functionality has been mapped to the MC-12 IR code functionality as per the MC-1 to MC-12 IR code
table.
7.3.3.1 Command Packet Description
Application Header:
CommandDC_CMD_IR0x14
Data Count10x01
Application Data:
Data[0]KeyCodenn
7.3.3.2 Data Description
KeyCode:
Data Type:Unsigned 8 bit integer.
Valid Values:Appendix C MC-1 IR-Codes
7.3.3.3 MC-12 Response
The KeyCode is processed as a valid IR code. No acknowledgment will be sent from MC-12.
7.3.3.4 Data Validation
The KeyCode data will be verified as a legal IR code. If the Code is not valid the MC-12 will not respond.
Lexicon, Inc.
MC-12 Serial Communications ProtocolPrinted on: 11/07/01
7.3.4 Get Unit Configuration (MC-12, MC-1)
This command is supported for backward compatibility. MC-12 users should be using paragraph " 7.3.39
MC-12 Get Unit Configuration (MC-12)" The Request to MC-12 for it’s current unit configuration. MC-12
will respond with “Unit Configuration Packet”. The HOST should use this information to determine if any
information saved by the HOST is current.
7.3.4.1 Command Packet Description
Application Header:
CommandDC_CMD_GET_CONFIG0x15
Data Count00x00
Application Data:
N/A
7.3.4.2 MC-12 Unit Configuration Response Packet
Application Header:
Command DC_RESP_UNIT_CONFIG0x80
Data Count 250x19
Application Data:
Data[0]ProductIdnn
Data[1]Software Typenn
Data[2]Software Levelnn
Data[3]Software Major Revisionnn
Data[4]Software Minor Revisionnn
Data[5]Protocol Major Revisionnn
Data[6]Protocol Minor Revisionnn
Data[7]N/Ann
Data[8]Total Number of Effectsnn
Data[9]TimeStamp[0]ch
Data[10]TimeStamp[1]ch
Data[11]TimeStamp[2]ch
Data[12]TimeStamp[3]ch
Data[13]TimeStamp[4]ch
Data[14]TimeStamp[5]ch
Data[15]TimeStamp[6]ch
Data[16]TimeStamp[7]ch
Data[17]TimeStamp[8]ch
Data[18]TimeStamp[9]ch
Data[19]TimeStamp[10]ch
Data[20]TimeStamp[11]ch
Data[21]TimeStamp[12]ch
Data[22]TimeStamp[13]ch
Data[23]TimeStamp[14]ch
Data[24]TimeStamp[15]0x00
*Note: SW level indicates the status of the MC-12 internal application software.
Software Major Revision: An unsigned integer va lue indicating the uni t ’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.
Software Minor Revi sion: An unsigned integer value indicating thi s uni ts minor software version. Indicates
the units software operation has changed but effects, effect parameters, or system
parameters ha ve not changed.
Protocol Major Revision: An unsigned 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 Revisio n: An unsigned integer value indicating the serial communicatio n protocol mino r
version. The host should use this value to determine if the existing commands,
notifications, or response packets have changed in this specification
Lexicon, Inc.
MC-12 Serial Communications ProtocolPrinted on: 11/07/01
Total Number of Effects: An unsigned integer value indicating the maximum number of effects available
for this version of software. This should be used to determine the maximum
EffectId used in the “Get Effect Definition Packet”, “Get Effect Parameter
Definition Packet”, “Set Effect Name Packet” , and “Set Effect Parameter
Values Packet”.
TimeStamp:Is 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 1999 = 99, year 2000 = 00)
mm - is the month
dd- is the day
(sp) - is an ASCII space character (0x20)
hh - is the hour
mm - is the minu te
7.3.5 Get System Status (MC-12, MC-1)
Request to MC-12 for it’s current system status. MC-12 will respond with “System Status Packet”.
7.3.5.1 Command Packet Description
Application Header:
Command DC_CMD_GET_SYS_STATUS0x16
Data Count 00x00
Lexicon, Inc.
MC-12 Serial Communications ProtocolPrinted on: 11/07/01
7.3.16 Set Effect Parameter Values (MC-1)
This command is not supported by the MC-12.
7.3.17 Set Effect Name by Effect Id (MC-1)
This command is not supported by the MC-12.
7.3.18 Set System Volume (MC-12, MC-1)
This command is a request to the MC-12 to set the system volume with the value in this packet.
7.3.18.1 Command Packet Description
Application Header:
Command DC_CMD_SET_SYS_VOLUME0x21
Data Count 10x01
Application Data:
Data[0]Valuenn
7.3.18.2 Data Description
Value:
Data Type:Unsigned 8 bit integer.
Max:92
Conversion:0 = -80 dB
92 = +12 dB
7.3.18.3 MC-12 Response
The MC-12 will assign the value from the packet to the system volume.
7.3.18.4 Data Validation
If a value is passed that exceeds the maximum value of that parameter the MC-12 will ignore the command
and transmit a DC_NAK command with an error code DC_INVALID_DATA.
7.3.19 Set Main Balance (MC-12, MC-1)
Commands MC-12 to set the system balance to the value in this packet.
7.3.19.1 Command Packet Description
Application Header:
CommandDC_CMD_SET_SYS_BALANCE0x22
Data Count 10x01
Lexicon, Inc.
MC-12 Serial Communications ProtocolPrinted on: 11/07/01
Value:
Data Type:Unsigned 8 bit integer.
Maximum Value:32
Conversion:0 = Left
16 = Center
32 = Right
7.3.19.3 MC-12 Response
The MC-12 will assign the value from the packet to the system balance.
7.3.19.4 Data Validation
If a value is passed that exceeds the maximum value of that parameter the MC-12 will ignore the command
and transmit a DC_NAK command with an error code DC_INVALID_DATA.
7.3.20 Set Front/Back Balance (MC-12, MC-1)
Commands MC-12 to set the front/back balance to the value in this packet.
7.3.20.1 Packet Description
Application Header:
CommandDC_CMD_SET_FRONT_BACK_BALANCE0x23
Data Count 10x01
Application Data:
Data[0]Valuenn
7.3.20.2 Data Description
Value:
Data Type:Unsigned 8 bit integer.
Max:32
Conversion:0 = Front
16 = Center
32 = Back
7.3.20.3 MC-12 Response
The MC-12 will assign the value from the packet to the front/back balance.
7.3.20.4 Data Validation
If a value is passed that exceeds the maximum value of that parameter the MC-12 will ignore the command
and transmit a NAK command with an error code DC_INVALID_DATA.
7.3.21 Set Active Effect by Id (MC-12, MC-1)
This command requests the MC-12 to set the active effect to the value in this packet. This command is
available for backward compatibility to the MC-1. The MC-1 Effect Id’s have been mapped to the MC-12
Effect Ids as shown in Appendix H MC-12 Effect Id's.
Lexicon, Inc.
MC-12 Serial Communications ProtocolPrinted on: 11/07/01
7.3.21.1 Command Packet Description
Application Header:
CommandDC_CMD_SET_EFFECT0x24
Data Count10x01
Application Data:
Data[0]EffectIdnn
7.3.21.2 Data Description
EffectId:
Data Type:Unsigned 8 bit integer
Max:As shown in Appendix H MC-12 Effect Id’s
Effect ID MC-1 to MC-12 Mapping is shown in Appendix I MC-1 to MC-12 Effect ID Map.
7.3.21.3 MC-12 Response
The MC-12 will load the desired effect.
7.3.21.4 Data Validation
If a value is passed that exceeds the maximum value of that parameter the MC-12 will ignore the command
and transmit a NAK command with an error code DC_INVALID_DATA.
7.3.22 Set Record Input (MC-12, MC-1)
Sets the Record input. If Record was inactive, this command will set the input then activate the Record
function.
7.3.22.1 Command Packet Description
Application Header:
CommandDC_CMD_SET_REC_INPUT0x25
Data Count10x01
Application Data:
Data[0]InputIdnn
7.3.22.2 Data Description
InputId:
Data Type:Unsigned 8 bit Integer
Max Value:7
Conversion:Input Id’s are defined in Appendix F MC-12 Input Id's
7.3.22.3 MC-12 Response:
If the Input Id is a valid MC-12 input then the MC-12 will make the request Input the active record input.
7.3.22.4 Data Validation:
The InputId must be a valid Input Id. If it is not the MC-12 will respond with a NAK packet and error code
DC_INVALID_INPUT. If the input selection is disallowed (input blocked, digital input not selected…)
MC-12 will respond with a NAK packet and error code DC_INVALID_INPUT. If the input is assigned the
MC-12 will respond with an ACK Packet.
Lexicon, Inc.
MC-12 Serial Communications ProtocolPrinted on: 11/07/01
7.3.23 Clear Record Input (MC-12, MC-1)
Clears or Unassign’s the Record input. If Record is active, this command will set the Record Input to OFF
7.3.23.1 Packet Description
Application Header:
CommandDC_CMD_CLEAR_REC_INPUT0x26
Data Count 10x01
Application Data:
Data[0]InputIdnn
7.3.23.2 Data Description
InputId:
This value is not used by MC-12.
Data Type:Unsigned 8 bit Integer
7.3.23.3 MC-12 Response
The MC-12 will set the active record input to OFF.
7.3.23.4 Data Validation
The InputId is not used.
7.3.24 Set Zone2 Volume (MC-12, MC-1)
Commands MC-12 to set the Zone 2 volume with the value in this packet.
7.3.24.1 Command Packet Description
Application Header:
CommandDC_CMD_SET_ZONE2_VOLUME0x27
Data Count 10x01
Application Data:
Data[0]Valuenn
7.3.24.2 Data Description
Value:
Data Type:Signed 8 bit integer.(2’s Compliment)
Min:-80 dB (0xB0)
Max:+12 dB(0x0C)
7.3.24.3 MC-12 Response
The MC-12 will assign the value from the packet to the Zone 2 volume.
7.3.24.4 Data Validation
If a value is passed that exceeds the maximum value of that parameter the MC-12 will ignore the command
and transmit a NAK command with an error code DC_INVALID_DATA.
7.3.25 Set Zone2 Left/Right Balance (MC-12, MC-1)
Commands MC-12 to set the Zone 2 balance to the value in this packet.
Lexicon, Inc.
MC-12 Serial Communications ProtocolPrinted on: 11/07/01
7.3.25.1 Packet Description
Application Header:
CommandDC_CMD_SET_ZONE2_BALANCE0x28
Data Count 10x01
Application Data:
Data[0]Valuenn
7.3.25.2 Data Description
Value:
Data Type:Signed 8 bit integer.(2’s Compliment)
Min:-16 (0 xF0) Max Left
Max:+16 (0x10) Max Ri ght
7.3.25.3 MC-12 Response
The MC-12 will assign the value from the packet to the Zone 2 balance.
7.3.25.4 Data Validation
If a value is passed that exceeds the maximum value of that parameter the MC-12 will ignore the command
and transmit a NAK command with an error code DC_INVALID_DATA.
7.3.26 Set Custom Name (MC-12, MC-1)
Sets the Custom Name that can be displayed when the unit powers up.
Data Type:Null (0x00) terminated ASCII character string.
Max Length:CUSTOM_NAME_ LENGTH defined in Appendix G Protocol Constants.
Number of characters in
CustomName + 2nn
7.3.26.3 MC-12 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-12 will ACK when completed with this command.
Lexicon, Inc.
MC-12 Serial Communications ProtocolPrinted on: 11/07/01
7.3.26.4 Data Validation:
No data validation is done on the transmitted data.
7.3.27 Set Input Name by Id (MC-12, MC-1)
Sets an Input Name to the transmitted value for a given input.
7.3.27.1 Command Packet Description
Application Header:
CommandDC_CMD_SET_INPUT_NAME 0x2E
Data Count
Application Data:
Data[0]InputId0 to 7
Data[1]-Data[DataCount-1]InputNamech ch ch ... 0x00
7.3.27.2 Data Description
InputId:
Data Type:Unsigned 8 bit Integer
Max Value:7
Conversion:Input Id’s are defined in Appendix F MC-12 Input Id's
Number of characters in
InputName + 2nn
InputName:
Data Type:Null (0x00) terminated ASCII character string.
Max Length:INPUT_N AM E_LENGTH defined in Appendix G Protocol Constants.
7.3.27.3 MC-12 Response
MC-12 will copy the InputName to the given input.
7.3.27.4 Data Validation:
The InputId must be a valid Input Id. If it is not the MC-12 will respond with a NAK packet and error code
DC_INVALID_INPUT. If the InputName string exceeds the INPUT_NAME_LENGTH, the MC-12 will
truncate the string to the INPUT_NAME_LENGTH.
7.3.28 Set FPD Control Registers (MC-1)
This command is not supported by the MC-12.
7.3.29 Host Wakeup (MC-12, MC-1)
By transmitting the Wakeup Notification, the Host indicates it has just “powered on” or reset and is ready to
receive MC-12 Notifications or Responses.
Lexicon, Inc.
MC-12 Serial Communications ProtocolPrinted on: 11/07/01
N/A
7.3.29.3 MC-12 Response
The MC-12 will respond to this command with an ACK.
7.3.30 Host Sleep (MC-12, MC-1)
By transmitting the Sleep command, the Host indicates it has just “powered down” and will no longer
respond to MC-12 Notifications. No Acknowledgment is expected.
7.3.30.1 Packet Description
Application Header:
CommandHOST_SLEEP0x12
Data Count00x00
Application Data:
N/A
7.3.30.2 Data Description
N/A
7.3.31 Get Communication Configuration (MC-12, MC-1)
This command is a request to the MC-12 for the current communications configuration for the serial port
and protocol. The MC-12 responds to this command with a Communication Configuration Packet.
7.3.31.1 Command Packet Description
Application Header:
CommandDC_CMD_GET_COM_CONFIG0x2F
Data Count00x00
Application Data:
N/A
7.3.31.2 Communicat ion Configuration Response Packet
Application Header:
CommandDC_RESP_COM_CONFIG0x8C
Data Count10x01
Application Data:
Data[0]Configuration Register 0nn
7.3.31.3 Data Description
Data Word Bit Definition
00Acknowledge Enabl e
01Parameter Change Enable
Acknowledge Enable:
TRUE Indicates the MC-12 will transmit Acknowledge Notification’s to the Host.
FALSE Indicates the MC-12 will not transmit any positive Acknowledge Notification
messages. The MC-12 will always transmit NAK error notification messages.
Lexicon, Inc.
MC-12 Serial Communications ProtocolPrinted on: 11/07/01
Parameter Change Enable:
TRUE Indicates the MC-12 will transmit any parameter change Notification as
specified in the Parameter Change Notification Message.
FALSE Indicates the MC-12 will not transmit parameter change Notifications.
7.3.32 Set Communication Configuration (MC-12, MC-1)
The Set Communication Configuration Command allows the serial port user to set up the various serial
port/ protocol configuration parameters.
7.3.32.1 Command Packet Description
Application Header:
CommandDC_CMD_SET_COM_CONFIG0x30
Data Count10x01
Application Data:
Data[0]Configuration Register 0nn
7.3.32.2 Data Description
Data Word Bit Definition
00Acknowledge Enabl e
01Parameter Change Enable
Acknowledge Enable:
TRUE Indicates the MC-12 will transmit Acknowledge Notification’s to the Host.
FALSE Indicates the MC-12 will not transmit any positive Acknowledge Notification
messages. The MC-12 will always transmit NAK error notification messages.
Parameter Change Enable:
TRUE Indicates the MC-12 will transmit any parameter change Notification as
specified in the Parameter Change Notification Message.
FALSE Indicates the MC-12 will not transmit parameter change Notifications.
7.3.32.3 MC-12 Response
The data values transmitted will be copied over to the registers stored in nonvolatile RAM. The MC-12
will respond with an ACK Packet.
7.3.33 Set Mute (MC-12, MC-1)
The Set Mute Command message allows the RS232 users to set/clear the MC-12 mute state directly.
Lexicon, Inc.
MC-12 Serial Communications ProtocolPrinted on: 11/07/01
MUTE State:
ValueDefinitionDescription
0UNMUTEThe user mute state is set to unmuted. The MC-12 may
still be muted for other internal reasons.
1USER MUTEThe system volume decrements by the specified user
amount as set in the OUTPUT LEVELS Menu.
2FULL MUTEThe system is fully muted.
7.3.33.3 MC-12 Response
The MC-12 will set the mute state according to the value transmitted. The MC-12 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.
7.3.33.4 Data Validation
The data value transmitted to the MC-12 will be verified as a valid value. If it is valid the MC-12 will
set/clear the mute and respond with an ACK Packet. If the data value is invalid the MC-12 will respond
with a DC_INVALID_DATA error NAK.
7.3.34 Set Output Level Adjustments (MC-1)
This command is not supported by the MC-12.
7.3.35 Send Display String Command (MC-12, MC-1)
This command allows the Host to send a 40 character string to the MC-12 for display on the OSD and Front
Panel Display.
7.3.35.1 Packet Description
Application Header:
CommandDC_CMD_SET_DISPLAY_STR 0x33
Data CountNumber of characters in the
00FPD only: If set TRUE, the display string will only be sent to the FPD device for display.
01Undefined.
02Undefined.
03Undefined.
04Undefined.
05Undefined.
06Undefined.
07Undefined.
nn
Display String:
Data Type:Null (0x00) terminated ASCII character string.
Lexicon, Inc.
MC-12 Serial Communications ProtocolPrinted on: 11/07/01
Max Length:40 Characters.
7.3.35.3 MC-12 Response
The display string is sent to the OSD and Front Panel Display. The MC-12 will ACK when completed with
this command.
7.3.35.4 Data Validation:
If a string length exceeds the 40 character maximum the string will be truncated before displaying and the
MC-12 transmit a DC_NAK command with an error code DC_INVALID_DATA.
7.3.36 MC-12 Get Parameter by Id (MC-12)
Request to MC-12 for a Parameter Definition by Parameter Id. MC-12 will respond with “MC-12 Parameter
Definition Packet”.
7.3.36.1 Command Packet Description
Application Header:
Command MC_GET_PARAM_BY_ID0x35
Data Count 20x02
Application Data:
Data[0]ParamId(LSB)nn
Data[1]ParamId(MSB)nn
7.3.36.2 Data Description
ParamId:
Data Type:Unsigned 16 bit Integer
Max Value:Max Parameter Count as reported by the MC-12 Unit Configuration Response
Packet in 7.3.39.2
7.3.36.3 Data Validation:
If the ParamId is not a valid Id the MC-12 will respond with a NAK packet and error code DC_
INVALID_PARAM_ID.
Data Type:Unsigned 16 bit Integer
Max Value:Max Parameter Count as reported by the MC-12 Unit Configuration Response
Packet in 7.3.39.2
ch ch ch …
0x00
ParamType:
Param Type NameParamTy
pe ID
PARAM_TYPE_UINT80Unsigned 8 bit integer(0 to
PARAM_TYPE_CSTR81Zero terminated string of 8
PARAM_TYPE_CSTR132Zero terminated string of 13
PARAM_TYPE_UINT323Unsigned 32 bit integer (0 to
PARAM_TYPE_BOOLEAN4Boolean( 0 to 1)1
PARAM_TYPE_INT85Signed 8 bit integer
PARAM_TYPE_BRANCH6Parameter BranchN/a
PARAM_TYPE_INT167Signed 16 bit integer
Data:
The data value transmitted is dependent on the ParamType, as described above. The Data
Value is always packed starting at the Data[0] byte in the packet. For multi-byte data, the
values are packed LSB first(Data[0]) to MSB(Data[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:
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 P arameter Type .
Min Value:
This is a 16 bit value representing the minimum value for a parameter. Parameter values
exceeding the minimum will be limited to the minimum. . This may be a signed or
unsigned value depending on the P arameter Type .
Data:
The data value transmitted is dependent on the ParamType, as described above. The Data
Value is always packed starting at the Data[0] byte in the packet. For multi-byte data, the
values are packed LSB first(Data[0]) to MSB(Data[0+(num bytes-1)]). For example: If a
parameter's current value is a signed 16 bit parameter with a value of -3 the data array
would be packed as follows:
All signed values are in the 2's compliment format.
Parameter Path:
This is a zero terminated ASCII character string describing the parameter's name and path
in the units parameter tree structure.
7.3.37 MC-12 Set Parameter by Id (MC-12)
MC-12 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.
7.3.37.1 Command Packet Description
Application Header:
CommandMC_CMD_SET_SYS_PARAM_VALUE_BY_ID 0x36
Data Count 180x12
Lexicon, Inc.
MC-12 Serial Communications ProtocolPrinted on: 11/07/01
ParamType:
Param Type NameParam
Type
ID
PARAM_TYPE_UINT80Unsigned 8 bit integer(0 to
PARAM_TYPE_CSTR81Zero terminated string of 8
PARAM_TYPE_CSTR132Zero terminated string of 13
PARAM_TYPE_UINT323Unsigned 32 bit integer (0 to
PARAM_TYPE_BOOLEAN4Boolean( 0 to 1)1
PARAM_TYPE_INT85Signed 8 bit integer
PARAM_TYPE_BRANCH6Parameter BranchN/a
PARAM_TYPE_INT167Signed 16 bit integer
Data:
The data value transmitted is dependent on the ParamType, as described above. The Data
Value is always packed starting at the Data[0] byte in the packet. For multi-byte data, the
values are packed LSB first(Data[0]) to MSB(Data[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:
All signed values are in the 2's compliment format.
7.3.37.3 Data Validation:
The ParamId must be a valid Parameter. The ParamType must be valid for the given ParamId. If either of
these condition is not true the MC-12 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 give 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-12 will transmit a
NAK packet with a DC_INVALID_INPUT error code. The MC-12 will transmit a NAK packet with a
DC_ERR_READ_ONLY error code for read only parameters.
7.3.38 MC-12 Set Parameter by Id, No Run (MC-12)
MC-12 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.
Request to MC-12 for it’s current unit configuration. MC-12 will respond with “Unit Configuration
Packet”. The HOST should use this information to determine if any information saved by the HOST is
current.
*Note: SW level indicates the status of the MC-12 internal application software.
Software Major Revision: An unsigned 8 bit integer value indic ating 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.
Software Minor Revision: An unsigned 8 bit integer value indicating this units minor software version.
Indicates the units 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 para meters
for this version of software. All Parameters are sequential ordered with in 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
Lexicon, Inc.
MC-12 Serial Communications ProtocolPrinted on: 11/07/01
TimeStamp:Is 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 minu te
SerialNumber:The Serial Number is an unsigned 32 bit integer holding the unique value o f t he
current unit.
7.3.40 MC-12 Send IR Command (MC-12)
This command allows the HOST to transmit IR command key codes to the MC-12.
7.3.40.1 Command Packet Description
Application Header:
CommandMC_CMD_IR0x39
Data Count10x01
Application Data:
Data[0]KeyCodenn
7.3.40.2 Data Description
KeyCode:
Data Type:Unsigned 8 bit integer.
Valid Values:Appendix D MC-12 IR-Codes
7.3.40.3 MC-12 Response
The KeyCode is processed as a valid IR code. No acknowledgment will be sent from MC-12.
7.3.40.4 Data Validation
The KeyCode data will be verified as a legal IR code. If the Code is not valid the MC-12 will not respond.
7.3.41 MC-12 Get Parameter Value by Id (MC-12)
TBD.
7.3.42 MC-12 Set Parameter Notification by Id (MC-12)
Lexicon, Inc.
MC-12 Serial Communications ProtocolPrinted on: 11/07/01
Appendix C DC-2,MC-1 IR-Codes
MC-1
Function
OffSTANDBY19 Trigger OffTRIGGER1_OFF 99 Zone-2: OffZONE_OFF59
OnON18 Trigger OnTRIGGER1_ON 98 Zone-2: OnZONE_DVD_258
OSD OffOSD02 Menu Back Off BLUE82 Reserved42
FrontPanel Off FP03 reserved83 Reserved43
LIGHTN/A N/A N/A
FrontPanel On FP04 reserved84 Reserved44
OSD OnOSD05 Menu Back On BLUE85 Status MenuINPUT_STATUS45
Menu UpUP_ARROW01 Fade Front81 Reserved41
Lexicon, Inc.
MC-12 Serial Communications ProtocolPrinted on: 11/07/01
Appendix I MC-1 to MC-12 Effect ID Map
MC-1
Effect
ID
0BypassAnalog Bypass
1ChurchLogic 7
2THX CinemaPL II THX
3TV LogicL7 TV
4Mono LogicMono Logic
5PanoramaL7 Film
6NightclubL7 Film
7PrologicPrologic II
8Music LogicL7 Music
9Party2-Ch Surround
10N/Anone
11N/Anone
12Concert HallL7 Film
13CathedralL7 Film
14Music SurroundL7 Music
15Logic 7L7 Film
162-Channel2-Channel
17DD 2.0 PrologicPrologic II
18DD 2.0 THX CinemaPL II THX
19DD 2.0 Logic 7L7 Film
20DD 2.0 Music SurroundL7 Music
21DD 2.0 2-Channel2-Channel
22Dolby DigitalDolby Digital
23THX 5.15.1 THX
245.1 Logic 75.1 L7 Film
255.1 Music5.1 L7 Music
265.1 2-Channel5.1 2-Channel
27dts Filmdts
28dts THX 5.1dts THX
29dts Logic 7dts L7 Film
30dts Musicdts L7 Music
31dts 2-Channeldts 2-Chan
32dts 2-Channeldts
33N/Anone
34N/Anone
35N/Anone
36N/Anone
37N/Anone
Lexicon, Inc.
MC-12 Serial Communications ProtocolPrinted on: 11/07/01
Application Notes and Examples
7.4 Box initializations:
7.4.1 MC-12:
When the MC-12 is powered on it will initialize the serial port and then transmit the DC_WAKEUP Packet,
and look for an ACK from the HOST. Currently, if an ACK is not received, the MC-12 continues to
operate. This message is mostly for the HOST to know if the MC-12 is in an operational state.
7.4.2 HOST:
When the HOST issues a HOST_WAKEUP Packet the MC-12 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-12 is not capable of responding
on the RS232 and therefore further serial communications will not be possible. If the MC-12 RS232 is
capable of communicating, the MC-12 will respond to a HOST_WAKEUP Command in any “Powered up”
state including standby.
7.5 Getting System Wide Status and Setup:
TBD
7.6 Downloading the System Setup to the MC-12:
TBD
7.7 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 sele ction through de dicated commands.
Lexicon, Inc.
MC-12 Serial Communications ProtocolPrinted on: 11/07/01
7.8 Examples:
The following examples show the byte’s transmitted for the MC-12 Get Unit Configuration, and Send MC-1
IR, and Send MC-12 IR Commands . They are shown as they should be transmitted from left to right.
7.8.1 MC-12 Get Unit Configuration
The HOST initiates by sending the GET_UNIT_CONFIG command packet:
SOPDLL DCCMDAppDCEOP
F1033800F2
If the command is received without error the MC-12 responds with the UNIT_CONFIG response packet:
Lexicon, Inc.
MC-12 Serial Communications ProtocolPrinted on: 11/07/01
Product Id is Lexicon MC-12
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)
7.8.2 Send MC-1 IR Command Example
SOPDLL DCCMDAppDC DATA0EOP
IR Key
F104140117F2
This example shows how to transmit the MC-1 IR command for “Volume Up”. 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 14 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
“Volume Up”(17 hex). To transmit other IR Key Codes the user would replace this byte
with other IR key codes as found in Appendix C MC-12 IR-Codes.
Byte 5: End of Packet (F2 hex)
Lexicon, Inc.
MC-12 Serial Communications ProtocolPrinted on: 11/07/01
7.8.3 Send MC-12 IR Command Example
SOPDLL DCCMDAppDC DATA0EOP
IR Key
F104390128F2
Code
This example shows how to transmit the IR command for “
the GAME 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 14 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_GAME
“
”(28 hex). To transmit other IR Key Codes the user would replace this byte
with other IR key codes as found in Appendix D MC-12 IR Codes.
Byte 5: End of Packet (F2 hex)