User guide
Broadcast Messages
A Frame ID value of 3F is used to broadcast messages to all LX-300s. The message includes a checksum. Details
on calculating the checksum are in the following section.
A Frame ID value of 7F means broadcast to all LX-300s without checking the checksum field. You still must include
a dummy CHECKSUM byte in the message. The value of the checksum dummy byte should be 0.
The option for sending a message without checksum checking is only to be used by devices which are not smart
enough to calculate the checksum value. It is recommended to use the proper checksum checking whenever possible.
The exception is when using TCP/IP since the protocol includes message verification.
The message will be routed to the appropriate LX-300 specified by the Frame ID, regardless of which unit first received
the message.
Checksum
The sender calculates the CHECKSUM such that the 7 bit sum of all the values BETWEEN the first F0 and the final
F7 bytes, INCLUDING the CHECKSUM value, add up the 7 bit value 0.
To calculate the checksum, first calculate the sum of all the known 7 bit data value starting immediately after the
initial F0, and concluding with the 7 bit data value prior to the checksum. Call this value the SUM.
Then calculate the CHECKSUM value with the following C code:
CHECKSUM = (0x80 - (SUM & 0x7f)) & 0x7f;
Where '&' is a bitwise AND function.
C Language Example
Here is an example of some C code to send a 'Go Next Cue' command. Note that in the original data, the next to
last byte (00) is a placeholder for the checksum value.
typedef unsigned char uInt8;
uInt8 Message[] = {0xF0, 0x1F, 0x7E, 0x10, 0x3F, 0x09, 0x05, 0x00, 0x00, 0x00, 0x00, 0x78, 0x05, 0x00, 0xF7};
uInt8 Checksum = 0x00;
uInt8 MessageLength = 15;
uInt8 i;
for (i=1;i<MessageLength-2; i++}
{
Checksum += Message[i] & 0x7F;
}
Checksum=(0x80 -Checksum) & 0x7F; // note clearing eight bit
Message[MessageLength-2] = Checksum;
Tip
Checksum values have been included in this text for all fixed messages. For TCP/IP communication you can use
the non-checksum versions since that protocol includes message integrity checks.
A Frame ID value of 7F means broadcast to all LX-300s without checking the checksum field. A Frame ID value of
40 (hex) means send to the LX-300 with Frame ID 01 without checking the checksum field. You still must include a
dummy CHECKSUM byte in the message. The value of the checksum dummy byte should be 0.
8
Message Format