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