JBL Synthesis
SDP-40 Serial Communications Protocol Printed on: 01/11/02
1 Documents
The following documents should also be used with this document to understand how this protocol can be
used with an SDP-40.
JBLSPD-3TECH, MANUAL, OWNER’S, SDP-3
SDP-3 Serial Port Definition, Protocol Version 1
070-14991rev 0 Manual, Owner’s, SDP-40
2 Definitions
User Parameter: A user changeable variable that stores a specific value that describes an
operating condition for the SDP-40 system.
HOST: The device initiating or receiving the serial communication packets to/from the
SDP-40.
SDP-40, SDP-3: The JBL Synthesis product receiving or transmitting the serial communication
packets to/from the HOST.
Nonvolatile RAM: The area of memory in an SDP-40 that stores users adjustable parameters. The
Nonvolatile RAM is battery backed, to maintain values during SDP-40 power
down.
2.1 Protocol Version Cross-reference
All references to SDP-40 shall be valid for both the SDP-40 and MC -12b products unless specifically
documented otherwise. All references to SDP-3 shall be valid for the SDP-3 and MC -1 products unless
specifically documented otherwise.
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 SDP-40 serial port and protocol communication is for an external connected HOST to
control and obtain status from the SDP-40. The protocol has been designed to focus on two specific goals.
The first is HOST uploading and downloading of SDP-40 configuration, and system/effect setups. The
second is HOST control of basic user adjustable parameters. (i.e. input, volume, balance…)
JBL Synthesis
SDP-40 Serial Communications Protocol Printed on: 01/11/02
The SDP-40 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 SDP-40. The SDP-40 Protocol is a 3 layered system. The SDP-40 serial
protocol allows for the SDP-40, or the HOST, to initiate a communication transaction. Most transactions are
initiated by the HOST. SDP-40 then responds to the HOST command with either a response or
acknowledgment packet. There are a few asynchronous notifications that SDP-40 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.
The SDP-40 Serial Protocol attempts to be as backward compatible with the SDP-3 as possible. This
document will try to inform the user/programmer of the consistencies and differences between the SDP-3
protocol and the SDP-40 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 SDP-3. These
commands may not fully exercise the functionality of the SDP-40 (i.e. SDP-3 has 8 inputs that have been
mapped to 8 of the 12 inputs on the SDP-40, SDP-3 IR codes are not the same as SDP-40 IR codes) In the
case of these commands additional SDP-40 commands have been added to fully implement the SDP-40
functionality. In addition, some of the inter nal structure of the SDP-40 has forced the protocol to be unable
to support some SDP-3 commands. These commands have been totally replaced with new commands that
provide more control over the SDP-40 than was capable in the SDP-3. (Parameter Set/Get commands)
JBL Synthesis
SDP-40 Serial Communications Protocol Printed on: 01/11/02
5 Physical Layer
5.1 DB-9 RS232 Connector
SDP-
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
Host
Receive Data
2
Transmit Data
3
Ground
5
9 Pin D-Shell (male)
5.2 Serial Port Driver
SDP-40 serial port has been setup to operate as follows:
Operating Mode: Full Duplex
Baud rate: 19.2K baud
Data Size: 8 bits (1 byte)
Parity: Odd
Stop Bits: 1
5.3 Errors
The SDP-40 will detect parity, framing and data overrun errors. If any of the physical layer error s are
detected, the complete packet is corrupted and the SDP-40 will reset the transaction and begin to look for a
start of packet byte.
5.4 SDP-40 Receive Buffer
The SDP-40 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 SDP-40 will be ignored. Therefore, making the currently transmitted packet, if partially
transmitted invalid.
5.5 SDP-40 Hardware Verification (Not Supported in SDP-40 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 SDP-40 transmits a known test signal just following a power up. The SDP-40 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 SDP-40 labeled “RS232”. The wraparound plug shorts pins 2 to 3,
allowing for the SDP-40 to receive the signal it is transmitting. Once installed, power cycle the SDP-40 and
verify the following message is displayed on the FPD:
JBL Synthesis
SDP-40 Serial Communications Protocol Printed on: 01/11/02
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.
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 Number Description Value
First Byte(0) Start of Packet (SOP) 0xF1
Byte(1) DLL Data Count nn
Application Heade r:
Byte(2) Command nn
Byte(3) APP Data Count (number of application data bytes to Follow) nn
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
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 SDP-40 responds by transmitting a NAK packet with an error code DC_ERR_INVALID_PACKET. The
SDP-40 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 SDP-40 will respond
by transmitting a NAK packet with an error code DC_ERR_INVALID_PACKET. The SDP-40 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.
JBL Synthesis
SDP-40 Serial Communications Protocol Printed on: 01/11/02
7 Application Layer
7.1 SDP-40 Asynchronous Notification Packets
SDP-40 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 (SDP-40, SDP-3)
By transmitting the Wakeup Notification, SDP-40 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 SDP-
The SDP-40 does not expect any response from the HOST.
7.1.2 Sleep Notification (SDP-40, SDP-3)
By transmitting the Sleep Notification, SDP-40 indicates the unit is shutting down into a standby mode.
Because the hard power switch could be activated independently of the SDP-40 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 SDP-40.
SDP-40 will transmit the front panel display buffer following the update to the SDP-40 front panel display.
The SDP-40 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
JBL Synthesis
SDP-40 Serial Communications Protocol Printed on: 01/11/02
asynchronous to other host/SDP-40 communicati on and will only transmit following the completion of any
communication exchanges in progress or pending. The FPD control register command packets are described
in section 7.3.14 Get FPD Control Registers.
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 SDP-40 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 SDP-40 does not expect any response from the HOST.
7.1.4 SDP-3 Parameter Change (SDP-40, SDP-3)
SDP-40 will transmit predetermined parameter change notifications. If a parameter value is changed due to
any user action or system action the SDP-40 will transmit the current value of the parameter that is changing.
This command has been maintained for backward compatibility with SDP-3. In order to maintain backward
compatibility, the SDP-40 Parameters have been mapped to the SDP-3 parameters as described in the
Supported System Parameters table listed below.
JBL Synthesis
SDP-40 Serial Communications Protocol Printed on: 01/11/02
7.1.4.1 Notification Packet Description
Application Header:
Command DC_PARAM_CHG_MSG 0x04
Data Count 2 0x02
Application Data:
Data[0] ParamId nn
Data[1] Value nn
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 SDP-40 does not expect any response from the HOST.
7.1.4.4 Supported System Parameters
The following parameters will be supported by this Parameter Change Notification:
Parameter SDP-40 Parameter
Name
Current Effect PROGRAM 1
Mute MUTE 3
System Volume VOLUME 5
Balance LR_BALANCE 6
Input Selection INPUT 7
Record/Zone 2 On/Off RECORD_ENABLED 18
Zone 2 Volume Z2_VOL 154
Zone 2 Balance Z2_BAL 156
Zone 2 Mute Z2_MUTE 157
Bass BASS 167
Treble TREBLE 168
Loudness LOUDNESS 169
Tilt TILT 174
Menu Background On/Off MENU_BKGND 190
Note: The Record/Zone 2 On/Off only applies to the SDP-40 Record zone. The Zone 2 Volume, Zone 2
Balance and Zone 2 Mute only apply to the SDP-40 Zone-2.
For Input Parameter Change Notifications the Input Value is a SDP-40 to SDP-3 input mapping, as shown in
SDP-40 Serial Communications Protocol Printed on: 01/11/02
7.2 Acknowledgment Packets
Acknowledge and No Ack nowledge packets are used to communicate transmission, packet and data
validation status. Both the HOST and SDP-40 can transmit and receive these packets.
7.2.1 Acknowledge (SDP-40, SDP-3)
7.2.1.1 Packet Description
Application Header:
Command DC_ACK 0xE0
Data Count
Application Data:
Data[0] Command nn
7.2.1.2 Data Description
Command:
DataType: Valid SDP-40 command as defined in Appendix A Command Codes.
0x01
7.2.2 No Acknowledge (SDP-40, SDP-3)
7.2.2.1 Packet Description
Application Header:
Command DC_NACK 0xE1
Data Count 20x02
Application Data:
Data[0] Command nn
Data[1] ErrorCode nn
7.2.2.2 Data Description
Command:
DataType: Valid SDP-40 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 SDP-40 serial communication protocol has been designed to respond to the following commands as
described below. Each command is transmitted to the SDP-40 with the identified parameters. If the
command is successfully received and processed by the SDP-40, the unit will respond with the described
response packet or action.
JBL Synthesis
SDP-40 Serial Communications Protocol Printed on: 01/11/02
Command DC_CMD_RESET 0x10
Data Count 0 0x00
Application Data: N/A
7.3.1.2 SDP-40 Response
The SDP-40 will perform an internal reset. After reset the SDP-40 will go through a soft power -up
initialization. This includes transmitting the “Wakeup Notification Packet”. A soft reset does not reinitialize
the SDP-40. Nonvolatile RAM is maintained.
7.3.2 Restore (SDP-40, SDP-3)
Commands the SDP-40 to restore the system and effect parameters to the factory defaults.
The SDP-40 will reset, clear any saved system and effect parameters in Nonvolatile RAM, and restore the
factory default system and effect parameters. After reset the SDP-40 will go through a soft power -up
initialization. This includes transmitting the “Wakeup Notification Packet”.
7.3.3 SDP-3 Send IR Command (SDP-40, SDP-3)
Transmits SDP-3 IR command key codes to the SDP-40.
This command has been maintained for backward compatibility to the SDP-3. The SDP-3 IR code
functionality has been mapped to the SDP-40 IR code functionality as per the SDP-3 to SDP-40 IR code
table.
7.3.3.1 Command Packet Description
Application Header:
Command DC_CMD_IR 0x14
Data Count 1 0x01
Application Data:
Data[0] KeyCode nn
7.3.3.2 Data Description
KeyCode:
Data Type: Unsigned 8 bit integer.
Valid Values: Appendix C SDP-3 IR-Codes
JBL Synthesis
SDP-40 Serial Communications Protocol Printed on: 01/11/02
The KeyCode is processed as a valid IR code. No acknowledgment will be sent from SDP-40.
7.3.3.4 Data Validation
The KeyCode data will be verified as a legal IR code. If the Code is not valid the SDP-40 will not respond.
7.3.4 Get Unit Configuration (SDP-40, SDP-3)
This command is supported for backward compatibility. SDP-40 users should be using paragraph " 7.3.39
SDP-40 Get Unit Configuration (SDP-40)" The Request to SDP-40 for it’s current unit configuration. SDP-40
will respond with “Unit Configuration Packet”. The HOST should use this information to determine if any
information saved by the HOST is cur rent.
*Note: SW level indicates the status of the SDP-40 internal application software.
Software Major Revision: An unsigned 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.
Software Minor Revision: An unsigned 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 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 integer value indicating the serial communication protocol minor
version. The host should use this value to determine if the exist ing commands,
notifications, or response packets have changed in this specification
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)
Application Header:
Command DC_RESP_SYS_STATUS 0x81
Data Count 10 0x0A
Application Data:
Data[0] System Volume nn
Data[1] Current Input nn
Data[2] Current EffectId (Mode) nn
Data[3] Current Input Sample Rate nn
Data[4] Current Input Format nn
Data[5] Mute Active nn
Data[6] TBD nn
Data[7] Left/Right Balance nn
Data[8] Front/Back Balance nn
Data[9] Video Synch nn
7.3.5.3 Data Description
System Volume:
Data Type: Unsigned 8 bit integer.
Maximum Value: 92
Conversion: 0 = -80 dB
92 = +12 dB
Current Input:
Data Type: Unsigned 8 bit integer.
Definition: Appendix F SDP-40 Input Id’s
Current EffectId(ModeId):
Data Type: Unsigned 8 bit integer.
Maximum Value: Appendix H SDP-40 Effect Id’s(Mode Id's)
Application Header:
Command DC_RESP_ZONE2_STATUS 0x82
Data Count 5 0x05
Application Data:
Data[0] Zone2 Volume nn
Data[1] Assigned Zone 2 Input nn
Data[2] Zone2 Mute Active nn
Data[3] Record Active nn
Data[4] Zone2 Balance nn
7.3.6.3 Data Description
Zone2 Volume:
Data Type: Unsigned 8 bit integer.
Maximum Value: 92
Conversion: 0 = -80 dB
92 = +12 dB
Assigned Zone 2 Input:
Indicates the Zone 2 input that is currently assigned for the zone 2 outputs.
Data Type: Unsigned 8 bit integer.
Definition: Appendix F SDP-40 Input Id's
Zone2 Mute Active:
Data Type: Boolean.
TRUE: Zone2 Outputs are active.
FALSE: Zone 2 Outputs are not active.
Record Active:
Data Type: Boolean.
TRUE: Record Zone Output is active
FALSE: Record Zone Output is not Active.
JBL Synthesis
SDP-40 Serial Communications Protocol Printed on: 01/11/02
7.3.15 Set System Parameter Values (SDP-3)
This command is not supported by the SDP-40.
7.3.16 Set Effect Parameter Values (SDP-3)
This command is not supported by the SDP-40.
7.3.17 Set Effect Name by Effect Id (SDP-3)
This command is not supported by the SDP-40.
7.3.18 Set System Volume (SDP-40, SDP-3)
This command is a request to the SDP-40 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_VOLUME 0x21
Data Count 1 0x01
Application Data:
Data[0] Value nn
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 SDP-40 Response
The SDP-40 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 SDP-40 will ignore the command
and transmit a DC_NAK command with an error code DC_INVALID_DATA.
7.3.19 Set Main Balance (SDP-40, SDP-3)
Commands SDP-40 to set the system balance to the value in this packet.
7.3.19.1 Command Packet Description
Application Header:
Command DC_CMD_SET_SYS_BALANCE 0x22
Data Count 1 0x01
Application Data:
Data[0] Value nn
JBL Synthesis
SDP-40 Serial Communications Protocol Printed on: 01/11/02
7.3.19.2 Data Description
Value:
Data Type: Unsigned 8 bit integer.
Maximum Value: 32
Conversion: 0 = Left
16 = Center
32 = Right
7.3.19.3 SDP-40 Response
The SDP-40 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 SDP-40 will ignore the command
and transmit a DC_NAK command with an error code DC_INVALID_DATA.
7.3.20 Set Front/Back Balance (SDP-40, SDP-3)
Commands SDP-40 to set the front/back balance to the value in this packet.
7.3.20.1 Packet Description
Application Header:
Command DC_CMD_SET_FRONT_BACK_BALANCE 0x23
Data Count 1 0x01
Application Data:
Data[0] Value nn
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 SDP-40 Response
The SDP-40 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 SDP-40 will ignore the command
and transmit a NAK command with an error code DC_INVALID_DATA.
7.3.21 Set Active Effect by Id (SDP-40, SDP-3)
This command requests the SDP-40 to set the active effect to the value in this packet. This command is
available for backward compatibility to the SDP-3. The SDP-3 Effect Id’s have been mapped to the SDP-40
Effect Ids as shown in Appendix H SDP-40 Effect Id's.
JBL Synthesis
SDP-40 Serial Communications Protocol Printed on: 01/11/02
7.3.21.1 Command Packet Description
Application Header:
Command DC_CMD_SET_EFFECT 0x24
Data Count 1 0x01
Application Data:
Data[0] EffectId nn
7.3.21.2 Data Description
EffectId:
Data Type: Unsigned 8 bit integer
Max: As shown in Appendix H SDP-40 Effect Id’s
Effect ID SDP-3 to SDP-40 Mapping is shown in Appendix I SDP-3 to SDP-40 Effect ID Map.
7.3.21.3 SDP-40 Response
The SDP-40 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 SDP-40 will ignore the command
and transmit a NAK command with an error code DC_INVALID_DATA.
7.3.22 Set Record Input (SDP-40, SDP-3)
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:
Command DC_CMD_SET_REC_INPUT 0x25
Data Count 1 0x01
Application Data:
Data[0] InputId nn
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 SDP-40 Input Id's
7.3.22.3 SDP-40 Response:
If the Input Id is a valid SDP-40 input then the SDP-40 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 SDP-40 will respond with a NAK packet and error code
DC_INVALID_INPUT . If the input selection is disallowed (input blocked, digital input not selected…) SDP-
JBL Synthesis
SDP-40 Serial Communications Protocol Printed on: 01/11/02
40 will respond with a NAK packet and error code DC_INVALID_INPUT. If the input is assigned the SDP-40
will respond with an ACK Packet.
7.3.23 Clear Record Input (SDP-40, SDP-3)
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:
Command DC_CMD_CLEAR_REC_INPUT 0x26
Data Count 1 0x01
Application Data:
Data[0] InputId nn
7.3.23.2 Data Description
InputId:
This value is not used by SDP-40.
Data Type: Unsigned 8 bit Integer
7.3.23.3 SDP-40 Response
The SDP-40 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 (SDP-40, SDP-3)
Commands SDP-40 to set the Zone 2 volume with the value in this packet.
7.3.24.1 Command Packet Description
Application Header:
Command DC_CMD_SET_ZONE2_VOLUME 0x27
Data Count 1 0x01
Application Data:
Data[0] Value nn
7.3.24.2 Data Description
Value:
Data Type: Signed 8 bit integer.(2’s Compliment)
Min: -80 dB (0xB0)
Max: +6 dB (0x06)
7.3.24.3 SDP-40 Response
The SDP-40 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 SDP-40 will ignore the command
and transmit a NAK command with an error code DC_INVALID_DATA.
JBL Synthesis
SDP-40 Serial Communications Protocol Printed on: 01/11/02
7.3.25 Set Zone2 Left/Right Balance (SDP-40, SDP-3)
Commands SDP-40 to set the Zone 2 balance to the value in this packet.
7.3.25.1 Packet Description
Application Header:
Command DC_CMD_SET_ZONE2_BALANCE 0x28
Data Count 1 0x01
Application Data:
Data[0] Value nn
7.3.25.2 Data Description
Value:
Data Type: Signed 8 bit integer.(2’s Compliment)
Min: -16 (0xF0) Max Left
Max: +16 (0x10) Max Right
7.3.25.3 SDP-40 Response
The SDP-40 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 SDP-40 will ignore the command
and transmit a NAK command with an error code DC_INVALID_DATA.
7.3.26 Set Custom Name (SDP-40, SDP-3)
Sets the Custom Name that can be displayed when the unit powers up.
JBL Synthesis
SDP-40 Serial Communications Protocol Printed on: 01/11/02
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 SDP-40 will ACK when completed with this command.
7.3.26.4 Data Validation:
No data validation is done on the transmitted data.
7.3.27 Set Input Name by Id (SDP-40, SDP-3)
Sets an Input Name to the transmitted value for a given input.
Data Count
Application Data:
Data[0] InputId 0 to 7
Data[1]-Data[DataCount-1] InputName ch ch ch ... 0x00
InputName + 2 nn
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 SDP-40 Input Id's
InputName:
Data Type: Null (0x00) terminated ASCII character string.
Max Length: INPUT_NAME_LENGTH defined in Appendix G Protocol Constants.
7.3.27.3 SDP-40 Response
SDP-40 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 SDP-40 will respond with a NAK packet and error code
DC_INVALID_INPUT . If the InputName string exceeds the INPUT_NAME_LENGTH, the SDP-40 will
truncate the string to the INPUT_NAME_LENGTH.
7.3.28 Set FPD Control Registers (SDP-3)
This command is not supported by the SDP-40.
7.3.29 Host Wakeup (SDP-40, SDP-3)
By transmitting the Wakeup Notification, the Host indicates it has just “powered on” or reset and is ready
to receive SDP-40 Notifications or Responses.
7.3.29.1 Command Packet Description
Application Header:
Command HOST_WAKEUP 0x11
Data Count 0 0x00
JBL Synthesis
SDP-40 Serial Communications Protocol Printed on: 01/11/02
Application Data: N/A
7.3.29.2 Data Description
N/A
7.3.29.3 SDP-40 Response
The SDP-40 will respond to this command with an ACK.
7.3.30 Host Sleep (SDP-40, SDP-3)
By transmitting the Sleep command, the Host indicates it has just “powered down” and will no longer
respond to SDP-40 Notifications. No Acknowledgment is expected.
7.3.31 Get Communication Configuration (SDP-40, SDP-3)
This command is a request to the SDP-40 for the current communications configurati on for the serial port
and protocol. The SDP-40 responds to this command with a Communication Configuration Packet.
TRUE Indicates the SDP-40 will transmit Acknowledge Notification’s to the Host.
FALSE Indicates the SDP-40 will not transmit any positive Acknowledge Notification
messages. The SDP-40 will always transmit NAK error notification messages.
Parameter Change Enable:
TRUE Indicates the SDP-40 will transmit any parameter change Notification as specified
in the Parameter Change Notification Message.
FALSE Indicates the SDP-40 will not transmit parameter change Notifications.
7.3.32 Set Communication Configuration (SDP-40, SDP-3)
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:
Command DC_CMD_SET_COM_CONFIG 0x30
Data Count 1 0x01
Application Data:
Data[0] Configuration Register 0 nn
7.3.32.2 Data Description
Data Word Bit Definition
0 0 Acknowledge Enable
0 1 Parameter Change Enable
Acknowledge Enable:
TRUE Indicates the SDP-40 will transmit Acknowledge Notification’s to the Host.
FALSE Indicates the SDP-40 will not transmit any positive Acknowledge Notification
messages . The SDP-40 will always transmit NAK error notification messages.
Parameter Change Enable:
TRUE Indicates the SDP-40 will transmit any parameter change Notification as specified
in the Parameter Change Notification Message.
FALSE Indicates the SDP-40 will not transmit parameter change Notifications.
7.3.32.3 SDP-40 Response
The data values transmitted will be copied over to the registers stored in nonvolatile RAM. The SDP-40 will
respond with an ACK Packet.
7.3.33 Set Mute (SDP-40, SDP-3)
The Set Mute Command message allows the RS232 users to set/clear the SDP-40 mute state directly.
JBL Synthesis
SDP-40 Serial Communications Protocol Printed on: 01/11/02
Application Header:
Command DC_CMD_SET_MUTE 0x31
Data Count 1 0x01
Application Data:
Data[0] Mute State nn
7.3.33.2 Data Description
MUTE State:
Value Definition Description
0 UNMUTE The user mute state is set to unmuted. The SDP-40 may
still be muted for other internal reasons.
1 USER MUTE The system volume decrements by the specified user
amount as set in the OUTPUT LEVELS Menu.
2 FULL MUTE The system is fully muted.
7.3.33.3 SDP-40 Response
The SDP-40 will set the mute state according to the value transmitted. The SDP-40 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 SDP-40 will be verified as a valid value. If it is valid the SDP-40 will
set/clear the mute and respond with an ACK Packet. If the data value is invalid the SDP-40 will respond with
a DC_INVALID_DATA error NAK.
Data Type: Null (0x00) terminated ASCII character string.
Max Length: 40 Characters.
7.3.35.3 SDP-40 Response
The display string is sent to the OSD and Front Panel Display. The SDP-40 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
SDP-40 transmit a DC_NAK command with an error code DC_INVALID_DATA.
7.3.36 SDP-40 Get Parameter by Id (SDP-40)
Request to SDP-40 for a Parameter Definition by Parameter Id. SDP-40 will respond with “SDP-40 Parameter
Definition Packet”.
7.3.36.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
7.3.36.2 Data Description
ParamId:
Data Type: Unsigned 16 bit Integer
Max Value: Max Parameter Count as reported by the SDP-40 Unit Configuration Response
Packet in 7.3.39.2
7.3.36.3 Data Validation:
If the ParamId is not a valid Id the SDP-40 will respond with a NAK packet and error code DC_
INVALID_PARAM_ID.
JBL Synthesis
SDP-40 Serial Communications Protocol Printed on: 01/11/02
7.3.36.4 Parameter Definition Response Packet
The following Packet has been defined as follows for SDP-40 V1.00. Future releases may modify this
definition.
Application Header:
Command MC_SYS_PARAM_DEF_PKT 0x8F
Data Count 102 0x66
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-21] CurrentValue[0 -13] Nn nn nn…
ch ch ch …
Data[22]-Data[101] Parameter Path
0x00
7.3.36.5 Data Description
ParamId:
Data Type: Unsigned 16 bit Integer
Max Value: Max Parameter Count as reported by the SDP-40 Unit Configuration Response
Packet in 7.3.39.2
ParamType:
Param Type Name ParamTy
pe ID
PARAM_TYPE_UINT8 0 Unsigned 8 bit integer(0 to
PARAM_TYPE_CSTR8 1 Zero terminated string of 8
PARAM_TYPE_CSTR13 2 Zero terminated string of 13
PARAM_TYPE_UINT32 3 Unsigned 32 bit integer (0 to
PARAM_TYPE_BOOLEAN 4 Boolean( 0 to 1) 1
PARAM_TYPE_INT8 5 Signed 8 bit integer
PARAM_TYPE_BRANCH 6 Parameter Branch N/a
PARAM_TYPE_INT16 7 Signed 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.
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 SDP-40 Set Parameter by Id (SDP-40)
SDP-40 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:
Command MC_CMD_SET_SYS_PARAM_VALUE_BY_ID 0x36
Data Count 18 0x12
Application Data:
Data[0] ParamId(LSB) nn
Data[1] ParamId(MSB) nn
Data[2] ParamType nn
Data[3-17] Value[0 -13] Nn nn nn…
All signed values are in the 2's compliment format.
Type Description Data
Size
(Bytes)
9
characters
14
ascii characters
4
2^32)
1
(-127 to 128)
2
(-32,767 to 32,768)
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 SDP-40 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 SDP-40 will transmit a
NAK packet with a DC_INVALID_INPUT error code. The SDP-40 will transmit a NAK packet with a
DC_ERR_READ_ONLY error code for read only parameters.
7.3.38 SDP-40 Set Parameter by Id, No Run (SDP-40)
SDP-40 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.
JBL Synthesis
SDP-40 Serial Communications Protocol Printed on: 01/11/02
7.3.38.1 Command Packet Description
Application Header:
Command MC_CMD_SET_SYS_PARAM_VALUE_BY_ID_NO_RUN 0x37
Data Count 18 0x12
Application Data:
Data[0] ParamId(LSB) nn
Data[1] ParamId(MSB) nn
Data[2] ParamType nn
Nn nn
Data[3-17] Value[0 -13]
nn…
7.3.38.2 Data Description
Same as Paragraph 7.3.37.2
7.3.39 SDP-40 Get Unit Configuration (SDP-40)
Request to SDP-40 for it’s current unit configuration. SDP-40 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 SDP-40 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.
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 parameters
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
JBL Synthesis
SDP-40 Serial Communications Protocol Printed on: 01/11/02
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 minute
SerialNumber: The Serial Number is an unsigned 32 bit integer holding the unique value of the
current unit.
7.3.40 SDP-40 Send IR Command (SDP-40)
This command allows the HOST to transmit IR command key codes to the SDP-40.
7.3.40.1 Command Packet Description
Application Header:
Command MC_CMD_IR 0x39
Data Count 1 0x01
Application Data:
Data[0] KeyCode nn
7.3.40.2 Data Description
KeyCode:
Data Type: Unsigned 8 bit integer.
Valid Values: Appendix D SDP-40 IR-Codes
7.3.40.3 SDP-40 Response
The KeyCode is processed as a valid IR code. No acknowledgment will be sent from SDP-40.
7.3.40.4 Data Validation
The KeyCode data will be verified as a legal IR code. If the Code is not valid the SDP-40 will not respond.
7.3.41 SDP-40 Get Parameter Value by Id (SDP-40)
TBD.
7.3.42 SDP-40 Set Parameter Notification by Id (SDP-40)
TBD.
7.3.43 SDP-40 Parameter Notification by Id (SDP-40)
SDP-40 Serial Communications Protocol Printed on: 01/11/02
Appendix C SDP-3 IR-Codes
SDP-3
Function
Off STANDBY 19 Trigger Off TRIGGER1_OFF 99 Zone-2: Off ZONE_OFF 59
On ON 18 Trigger On TRIGGER1_ON 98 Zone-2: On ZONE_DVD_2 58
OSD Off OSD 02 Menu Back Off BLUE 82 Reserved 42
FrontPanel
Off
LIGHT N/A N/A N/A
FrontPanel On FP 04 reserved 84 Reserved 44
OSD On OSD 05 Menu Back On BLUE 85 Status Menu INPUT_STATUS 45
Menu Up UP_ARROW 01 Fade Front 81 Reserved 41
Done
SPARE 06 SPARE 86 SPARE 46
Select
Menu Down DN_ARROW 1D Fade Rear FADER_REAR 9D Reserved 5D
Mute MUTE 15 Full Mute FULL_MUTE 95 Z-2: Mute ZONE_MUTE 55
Effect + MODE_INCR 1A Center Bal/Fad BAL_CENTER 9A Lock the LOCK 5A
Effect - MODE_DECR 1B EQ Off EQ_OFF 9B Reserved 5B
Volume + VOL_INCR 17 Volume +5dB VOL_03DB 97 Z-2: Volume + ZONE_VOL_INCR 57
Volume - VOL_DECR 16 Volume –5dB VOL_N03DB 96 Z-2: Volume - ZONE_VOL_DECR 56
VCR MAIN_VCR 13 Bass + BASS_INCR 93 R/Z-2: VCR ZONE_VCR 53
DVD MAIN_DVD_1 12 Treble + TREBLE_INCR 92 R/Z-2: DVD ZONE_DVD_1 52
V-DISC MAIN_LD 11 Tilt + TILT_INCR 91 R/Z-2: V-DISC ZONE_LD 51
TV MAIN_TV 10 Loudness On 90 R/Z-2: TV ZONE_TV 50
AUX MAIN_AUX 0F Bass - BASS_DECR 8F R/Z-2: AUX ZONE_AUX 4F
CD MAIN_CD 0E Treble - TREBLE_DECR 8E R/Z-2: CD ZONE_CD 4E
TUNER MAIN_TUNER 0D Tilt - TILT_DECR 8D R/Z-2: TUNER ZONE_TUNER 4D
TAPE MAIN_TAPE 0C Loudness Off 8C R/Z-2: TAPE ZONE_TAPE 4C
Dolby DOLBY_LOGO 20 Nightclub A0 Z-2 Vol: -30dB ZONE_VOL_N30DB 60
THX THX_LOGO 21 Concert Hall A1 Z-2 Vol: -20dB ZONE_VOL_N30DB 61
Logic7 LOGIC7_LOGO 22 Church A2 Z-2 Vol: -10dB ZONE_VOL_N30DB 62
dts DTS_LOGO 23 Cathedral A3 Z-2 Vol: +00dB ZONE_VOL_00DB 63
2-Chan
On/Off
Party PARTY 25 Panorama A5 Volume: -20dB VOL_N30DB 65
TV Matrix TV_L_LOGO 26 Mono Logic A6 Volume: -10dB VOL_N30DB 66
Music MUSIC 27 Music Surround MUSIC A7 Volume: +00dB VOL_00DB 67
SPARE 28 SPARE A8 SPARE 68
SPARE 29 SPARE A9 SPARE 69
SPARE 2A SPARE AA SPARE 6A
SPARE 2B SPARE AB SPARE 6B
SPARE 2C SPARE AC SPARE 6C
SPARE 2D SPARE AD SPARE 6D
SPARE 2E SPARE AE SPARE 6E
SPARE 2F SPARE AF SPARE 6F
Null 30 null B0 null 70
JBL Synthesis
SDP-40 Serial Communications Protocol Printed on: 01/11/02
Appendix I SDP-3 to SDP-40 Effect ID Map
SDP-3
Effect
ID
0 Bypass Analog Bypass
1 Church Logic 7
2 THX Cinema PL II THX
3 TV Logic L7 TV
4 Mono Logic Mono Logic
5 Panorama L7 Film
6 Nightclub L7 Film
7 Prologic Prologic II
8 Music Logic L7 Music
9 Party 2-Ch Surround
10 N/A none
11 N/A none
12 Concert Hall L7 Film
13 Cathedral L7 Film
14 Music Surround L7 Music
15 Logic 7 L7 Film
16 2-Channel 2-Channel
17 DD 2.0 Prologic Prologic II
18 DD 2.0 THX Cinema PL II THX
19 DD 2.0 Logic 7 L7 Film
20 DD 2.0 Music Surround L7 Music
21 DD 2.0 2-Channel 2-Channel
22 Dolby Digital Dolby Digital
23 THX 5.1 5.1 THX
24 5.1 Logic 7 5.1 L7 Film
25 5.1 Music 5.1 L7 Music
26 5.1 2-Channel 5.1 2-Channel
27 dts Film dts
28 dts THX 5.1 dts THX
29 dts Logic 7 dts L7 Film
30 dts Music dts L7 Music
31 dts 2-Channel dts 2-Chan
32 dts 2-Channel dts
33 N/A none
34 N/A none
35 N/A none
36 N/A none
37 N/A none
JBL Synthesis
SDP-40 Serial Communications Protocol Printed on: 01/11/02
Application Notes and Examples
7.4 Box initializations:
7.4.1 SDP-40:
When the SDP-40 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 SDP-40 continues to operate.
This message is mostly for the HOST to know if the SDP-40 is in an operational state.
7.4.2 HOST:
When the HOST issues a HOST_WAKEUP Packet the SDP-40 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 SDP-40 is not capable of responding
on the RS232 and therefore further serial communications will not be possible. If the SDP-40 RS232 is
capable of communicating, the SDP-40 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 SDP-40:
TBD
7.7 Simple System Control & System Stat us:
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.
JBL Synthesis
SDP-40 Serial Communications Protocol Printed on: 01/11/02
7.8 Examples:
The following examples show the byte’s transmitted for the SDP-40 Get Unit Configuration, and Send SDP-3
IR, and Send SDP-40 IR Commands . They are shown as they should be transmitted from left to right.
7.8.1 SDP-40 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 SDP-40 responds with the UNIT_CONFIG response packet:
JBL Synthesis
SDP-40 Serial Communications Protocol Printed on: 01/11/02
From the response packet we can see that the SDP-40 is configured as a
Product Id is JBL Synthesis SDP-40
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 SDP-3 IR Command Example
SOP DLL DC CMD AppDC DATA0 EOP
IR Key
F1 04 14 01 17 F2
This example shows how to transmit the SDP-3 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 SDP-40 IR-Codes. Byte 5: End of Packet (F2 hex)
JBL Synthesis
SDP-40 Serial Communications Protocol Printed on: 01/11/02
7.8.3 Send SDP-40 IR Command Example
SOP DLL DC CMD AppDC DATA0 EOP
IR Key
F1 04 39 01 28 F2
This example shows how to transmit the IR command for “MAIN_GAME”. This example command will select
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 SDP-40 IR Codes. Byte 5: End of Packet (F2 hex)