X-keys XC-DMX512T Data Report | Main Page

General Information

The X-keys XC-DMX512T-RJ45 is a device that can transmit user provided data into the DMX512 communication protocol or read DMX data from DMX controllers depending on the configuration. By default the XC-DMX512T is configured for transmission. An RJ-45 connector is provided for outputting and standard daisy chaining of the DMX signal. Using the P.I. Engineering SDK samples users can create a software solution to driving their DMX peripherals. In addition the XC-DMX512T-R45 has 8 digital inputs (4 ports with a left and right on each) to allow for switches to be connected, 4 digital input pins located on header J7, and 4 digital output pins located on header J8.

VID
05f3h
XC-DMX512T-RJ45
04C9h or 1225
Consumer Usage Page
1
Usage Page
000Ch or 12

PID #1 Endpoints: Consumer Usage Page Input and Output (Hid Usage Page 12, Hid Usage 1), Keyboard (Hid Usage Page 1, Hid Usage 6).

The XC-DMX512T is an Android enabled device. This means the device can be enumerated, read, and written to on Android OS that support host USB, generally 3.1 or higher.

IAB-DMX512T is a standard USB HID device and is supported by P.I. Engineering's Macroworks 3.1, X-keys Basic Setup, X-keys Setup for Mac, and our many SDKs.

X-keys XC-DMX512T Input Report

Report Length: 37 bytes

1a. General Incoming Data for XC-DMX512T-RJ45 Switch Data

This data is returned when new data is detected such as button presses or unit id change. This report can be manually stimulated by sending an output report: Generate Data which is very useful for obtaining the initial state of the device immediately after enumeration.

Byte 1*
Byte 2
Byte 3
Byte 4
Byte 5
Byte 6
Bytes 7-32
Bytes 33-36
Byte 37
Constant Unit ID Data Type Jacks 1-4 Digital Inputs NumLck, CapsLck, ScrLck Reserved Time Stamp Reserved
0
<data>
DT
D1
D2
DS
value
Time
value

DT: Data Type value of 0 or 2 indicates the following data is a General Incoming Data report, 2 if generated by the output report: Generate Data. Data Type value of 214 (0xd6) indicates a Descriptor Data Report, see below. Data Type value of 224 (0xE0) indicates a Custom Data Report, see below.
D1: If using a splitter to read both L and R then for all bits 0 for switch open, 1 for switch closed. If plugging in a mono switch to the jack then the corresponding R will always be closed for that jack. Bit 1=1R, bit 2=1L, bit 3=2R, bit 4=2L, bit 5=3R, bit 6=3L, bit 7=4R, bit 8=4L.
D2: Bit 1=Digital Input 1, bit 2=Digital Input 2, bit 3=Digital Input 3, bit 4=Digital Input 4, bits 5-8=NA
DS: Bit 1=NumLock, bit 2=CapsLock, bit 3=ScrLock.
Time: If enabled using Enable Time Stamp output report gives a time in ms starting from when the device was plugged into a port in 4 bytes where byte 33 is the MSB and byte 36 is the LSB.

2. Descriptor Data

This data is returned after an output report: Request for Descriptor is sent.

Byte 1*
Byte 2
Byte 3
Byte 4
Byte 5
Byte 6
Byte 7
Byte 8
Byte 9
Byte 10
Byte 11
Byte 12
Byte 13
Byte 14
Byte 15
Byte 16
Byte 17
Byte 18
Byte 19
Byte 20
Bytes 21-37
Constant Unit ID Data Type Mode Key mapstart Layer2 Offset Constant Constant Max Columns Max Rows LED States Version PID Low PID Hi Key mapstart hi Max Address lo Max Address hi Digital Output States DMX Mode Default DMX Mode Reserved
0
<data>
214
0
128
128
255
255
2
8
LEDs
<data>
PIDL
PIDH
0
value
value
DO
DMX1
DMX2
value

LEDs: Current on/off states of the 2 indicator LEDs . Bits 1 ,2 3, 4, 5=na, bit 7=Green LED, and bit 8=Red LED.
PIDL: LSB of the Product Identification number or PID.
PIDH: MSB of the Product Identification number or PID.
DO: Current on/off states of the 4 digital outputs. Bit 1=Digital Output 1, bit 2=Digital Output 2, bit 3=Digital Output 3, and bit 4=Digital Output 4, bits 5, 6, 7, 8=na.
DMX1: Current DMX mode of the device, 0=transmit, 1=receive, factory default is transmit. This mode can be changed by sending a Set Mode output report.
DMX2: Default DMX mode, ie DMX mode when device is plugged in, 0=transmit, 1=receive, factory default is transmit. The default mode can be changed by sending a Save Mode output report.

3. Custom Data

This data is returned after an output report: Generate Custom Data is sent.

Byte 1*
Byte 2
Byte 3
Byte 4
Byte 5
Byte 6
Byte 7
Byte 37
Constant Unit ID Data Type Count of custom bytes to follow Custom byte 1 Custom byte 2 Custom byte 3... Reserved
0
<data>
224
Count
B1
B2
B3...
value

Count: Number of custom bytes to follow, maximum value 32.
B1: 1st custom byte.
B2: 2nd custom byte.
B3: 3rd custom byte and so on for as many bytes as specified in Count.

4. Check Dongle Key

This is received immediately following a Check Dongle Key output report is sent. The four values R0-R3 are required to continue the check. See Dongle Implementation for further details.

Byte 1*
Byte 2
Byte 3
Byte 4
Byte 5
Byte 6
Byte 7
Bytes 8 to 37
Constant Unit ID Data Type 1st byte returned from hash 2nd byte returned from hash 3rd byte returned from hash 4th byte returned from hash Reserved
0
<data>
193
R0
R1
R2
R3
value

R0: Value need for comparison to check for correct dongle key.
R1: Value need for comparison to check for correct dongle key.
R2: Value need for comparison to check for correct dongle key.
R3: Value need for comparison to check for correct dongle key.

5. DMX Write Length

This data is returned after an output report: Get DMX Write Length is sent.

Byte 1*
Byte 2
Byte 3
Byte 4
Byte 5
Bytes 6 to 37
Constant Unit ID Data Type DMX Length LSB DMX Length MSB Reserved
0
<data>
163
LenLo
LenHi
value

LenLo: Least significant byte of the DMX Length=256*LenHi+LenLo.
LenHi: Most significant byte of the DMX Length=256*LenHi+LenLo.

6. DMX Read Length

This data is returned after an output report: Get DMX Read Length is sent.

Byte 1*
Byte 2
Byte 3
Byte 4
Byte 5
Bytes 6 to 37
Constant Unit ID Data Type DMX Length LSB DMX Length MSB Reserved
0
<data>
146
LenLo
LenHi
value

LenLo: Least significant byte of the DMX Length=256*LenHi+LenLo.
LenHi: Most significant byte of the DMX Length=256*LenHi+LenLo.

7. Read DMX Data Manually

This data is returned after an output report: Read DMX Data Manually is sent. After sending the output report with the desired start address, 20 bytes with their current values are returned. In this documentation "address" has the same meaning as "slot".

Byte 1*
Byte 2
Byte 3
Byte 4
Byte 5
Byte 6
Bytes 7-27
Bytes 28-32
Bytes 33-36
Byte 37
Constant Unit ID Data Type Start Address LSB Start Address MSB Number of Addresses Value for Start Address to Start Address + Count -1 Reserved Time Stamp Reserved
0
<data>
165
AddLo
AddHi
Count
CurVals
value
Time
value

Count: The number of values (bytes) to follow. This is 20 unless the Start Address is greater than 491, then Count will be 512-Start Address.
AddLo:
Least significant byte of the Start Address=256*AddHi+AddLo. This is the same address entered in the Read DMX Data Manually command.
AddHi: Most significant byte of the Start Address=256*AddHi+AddLo.
CurVals: Starting at Byte 7, the value of the Start Address, value of Start Address+1, etc. A total of 20 addresses are read per input report. For example, if Start Address = 300 and Count = 20, values for addresses 300 to 319 are contained in Bytes 7-27.
Time: If enabled using Enable Time Stamp output report gives a time in ms starting from when the device was plugged into a port in 4 bytes where byte 33 is the MSB and byte 36 is the LSB.

8. Read DMX Data by Notification

This data is returned when new DMX data is detected within the user defined range of addresses. User must enable DMX notification and desired address ranges by sending the output report: Enable Read DMX Data by Notification. If more than one address changes then multiple reports will be sent. The Time Stamp will be the same if the values changed at the same time. In this documentation "address" has the same meaning as "slot".

Byte 1*
Byte 2
Byte 3
Byte 4
Byte 5
Byte 6
Byte 7
Bytes 8-32
Bytes 33-36
Byte 37
Constant Unit ID Data Type Address LSB Address MSB Number of Addresses Value for Address Reserved Time Stamp Reserved
0
<data>
147
AddLo
AddHi
Count
CurVal
value
Time
value

Count: The number of values (bytes) to follow. In this case Count will always be 1. Only 1 address and corresponding value is reported per input report.
AddLo:
Least significant byte of the Address with the changed data, Address=256*AddHi+AddLo.
AddHi: Most significant byte of the Address with the changed data, Address=256*AddHi+AddLo.
CurVal: The changed data for the Address.
Time: If enabled using Enable Time Stamp output report gives a time in ms starting from when the device was plugged into a port in 4 bytes where byte 33 is the MSB and byte 36 is the LSB.

*This first byte may be omitted on some non-PC operating systems. On these systems the read and write lengths will be 1 byte smaller.

X-keys XC-DMX512T Output Report

The following types of output reports are shown in the summary below. Please be aware that several of these commands result in writing to the device's eeprom which has a limit to the number of writes allowed before it is "burnt out". The manufacturer's specification is 50,000 eeprom writes. Because of this we recommend the commands designated with e be executed rarely and not within timing loops. Note, the first byte listed in this documentation is 0 and represents the report ID. This is not present on some non-PC operating systems. So when sending an output report on Android for example, eliminate this byte.

Report
Format
Description
1
0, 179, Index, State, 0... Set LEDs and Digital Outputs
2
0, 189, UnitID, 0... Set Unit IDe
3
0, 214, 0... Get Descriptor
4
0, 177, 0... Generate Data
5
0, 224, Count, B1, B2, B3..., 0... Generate Custom Data
6
0, 195, Version LSB, Version MSB, 0... Set Version Numbere
7
0, 238, 0... Reboot Device
8
0, 201, Modifier, 0, HC1, HC2, HC3, HC4, HC5, HC6, 0... Keyboard Reflector
9
0, 192, K0, K1, K2, K3, 0... Set Dongle Keye
10
0, 193, N0, N1, N2, N3, 0... Check Dongle Key
11
0, 161, Add LSB, Add MSB, Span, B1, B2,... Load DMX Write Buffer
12
0, 162, Length LSB, Length MSB, 0... Set DMX Write Length
13
0, 163, 0... Get DMX Write Length
14
0, 164, 0... Clear DMX Write Buffer
15
0, 169, Mode, 0... Set Mode (transmit or receive)
16
0, 172, Mode, 0... Save Modee
17
0, 171, 0... Set and Clear for DMX for Read
18
0, 165, StartAddLo, StartAddrHi, 0... Read DMX Data Manually
19
0, 147, Enable, StartAddLo, StartAddrHi, EndAddLo, EndAddHi, 0... Enable Read DMX Data by Notification
20
0, 146, 0... Get DMX Read Length

eCommand writes to EEPROM, do not perform this command excessively, do not exceed 50,000 writes to EEPROM.

Endpoint: Vendor Defined Usage Page.

Report Length: 36 bytes.

1. Set LED

Send this output report to control the green or red indicator LED or the four digital outputs.

Byte 1*
Byte 2
Byte 3
Byte 4
Bytes 5-36
Constant Command LED Index LED State Constant
0
179
Index
State
0

Index: 1 = Digital Output 1, 2 = Digital Output 2, 3 = Digital Output 3, 4 = Digital Output 4, 6 = Green LED, 7 = Red LED.
State: 0 = off, 1 = on, 2= flash.

2. Set Unit ID

Send this output report to set the Unit ID of the device. This is useful if connecting more than one of the same device to the a computer.

Byte 1*
Byte 2
Byte 3
Bytes 4-36
Constant Command Unit ID (0-255) Constant
0
189
value
0

3. Get Descriptor

After sending this output report a Descriptor Data input report will be generated.

Byte 1*
Byte 2
Bytes 3-36
Constant Command Constant
0
214
0

4. Generate Data

After sending this output report a General Incoming Data input report will be generated with bit 2 of PS set. This is useful in determining the initial state of the device before any data has changed.

Byte 1*
Byte 2
Bytes 3-36
Constant Command Constant
0
177
0

5. Generate Custom Data

After sending this output report a Custom Data input report will be generated with Byte 3 set to 224 and the count and custom bytes following.

Byte 1*
Byte 2
Byte 3
Byte 4
Byte 5
Byte 6...
Bytes (Count+4) to 36
Constant Command Count of custom bytes to follow Custom byte 1 Custom byte 2 Custom byte 3... Constant
0
224
Count
B1
B2
B3...
0

Count: Number of custom bytes to follow.
B1: 1st custom byte.
B2: 2nd custom byte.
B3: 3rd custom byte and so on for as many bytes as specified in Count.

6. Set Version Number

Send this output report to set the Version of the device. This is not the firmware version given in the descriptor but a 2 byte number (0-65535) available on enumeration. Version = (256*Version MSB) + Version LSB. The value is "remembered" so if it is changed, using this report, the device must be rebooted. The device can be rebooted by replugging it or by sending the output report : Reboot Device.

Byte 1*
Byte 2
Byte 3
Byte 4
Bytes 5-36
Constant Command Version LSB (0-255) Version MSB (0-255) Constant
0
195
value
value
0

7. Reboot Device

Send this output report to reboot the device without having to unplug it. After sending this report the device must be re-enumerated.

Byte 1*
Byte 2
Bytes 3-36
Constant Command Constant
0
238
0

8. Keyboard Reflector

Sends native keyboard messages.

Byte 1*
Byte 2
Byte 3
Byte 4
Byte 5
Byte 6
Byte 7
Byte 8
Byte 9
Byte 10
Bytes 11-36
Constant Command Modifier Constant Hid Code 1 Hid Code 2 Hid Code 3 Hid Code 4 Hid Code 5 Hid Code 6 Constant
0
201
Modifier
0
HC1
HC2
HC3
HC4
HC5
HC6
0

Modifier: Bit 1=Left Ctrl, bit 2=Left Shift, bit 3=Left Alt, bit 4=Left Gui, bit 5=Right Ctrl, bit 6=Right Shift, bit 7=Right Alt, bit 8=Right Gui.
HC1=Hid Code for 1st key down, or 0 to release previous key press in this byte position.
HC2=Hid Code for 2nd key down, or 0 to release previous key press in this byte position.
HC3=Hid Code for 3rd key down, or 0 to release previous key press in this byte position.
HC4=Hid Code for 4th key down, or 0 to release previous key press in this byte position.
HC5=Hid Code for 5th key down, or 0 to release previous key press in this byte position.
HC6=Hid Code for 6th key down, or 0 to release previous key press in this byte position.

9. Set Dongle Key

Sets the user entered key. Remember these numbers as they are required to check for the key. This is intented to be done once by the developer prior to sale. See Dongle Implemenation for more details.

Byte 1*
Byte 2
Byte 3
Byte 4
Byte 5
Byte 6
Bytes 7-36
Constant Command 1st byte of key 2nd byte of key 3rd byte of key 4th byte of key Constant
0
192
K0
K1
K2
K3
0

K0: 1st byte of user determined dongle key, any number 1-254.
K1: 2nd byte of user determined dongle key, any number 1-254.
K2: 3rd byte of user determined dongle key, any number 1-254.
K3: 4th byte of user determined dongle key, any number 1-254.

10. Check Dongle Key

Checks the key that was entered in Set Dongle Key. This is intented to be done by the developer within their own software to determine if the connected X-keys device is the one they sold to the customer. 4 random bytes along with the actual key are entered into the DongleCheck2() hash function of the Piehid32.dll/PieHid32Net.dll which returns 4 bytes. Then after sending this output report a Check Dongle Key input report will be received containing the same 4 bytes returned from the hash if the key matches. See Dongle Implemenation for more details.

Byte 1*
Byte 2
Byte 3
Byte 4
Byte 5
Byte 6
Bytes 7-36
Constant Command Random number Random number Random number Random number Constant
0
192
N0
N1
N2
N3
0

K0: 1st byte of a random number that was used in the hash, any number 1-254.
K1: 2nd byte of a random number that was used in the hash, any number 1-254.
K2: 3rd byte of a random number that was used in the hash, any number 1-254.
K3: 4th byte of a random number that was used in the hash, any number 1-254.

11. Load DMX Write Buffer

The DMX Write Buffer is an array of up to 512 bytes which is continously transmitted by the XC-DMX512T as long as the DMX Write Length (last address to transmit + 1) is greater than 0. This output report is used to load values into the array in user defined chunks. When the XC-DMX512T is plugged in the values in this array and the DMX Write Length are 0. When this output report is sent it checks the current DMX Write Length and if it is too small, increases it automatically to Start Address+ByteCount then it transmits the buffer from address 1 to the DMX Write Length. If the Start Address+ByteCount is greather than 512, it sets DMX Write Length to 512, truncating the bytes over 512. This output report will never decrease the DMX Write Length so if devices on upper addresses are removed or no longer needed and the user wishes to shorten the DMX Write Length, the output report Set DMX Write Length can be used to manually set it. In this documentation "address" has the same meaning as "slot".

Byte 1*
Byte 2
Byte 3
Byte 4
Byte 5
Byte 6
Byte 7
Byte 8...
Bytes x to 36
Constant Command Start Address LSB Start Address MSB Number of Addresses to Load DMX value for Start Address DMX value for Start Address+1 DMX value for Start Address+2... DMX value or Constant
0
161
AddLo
AddHi
ByteCount
B1
B2
B3...
value or 0

AddLo: The least significant byte of the Start Address which is the address to begin loading the DMX Write Buffer.
AddHi: The most significant byte of the Start Address which is the address to begin loading the DMX Write Buffer.
ByteCount: Number of addresses to load, maximum value is 31 as output report length is 36.
B1: DMX value for address Start Address, 0-255.
B2: DMX value for address (Start Address + 1), 0-255.
B3: DMX value for address (Start Address + 2), 0-255 and so on for as many bytes as specified in the Span. If less than 31 address to load then fill remaining bytes with 0.

Example:

Below is the DMX Write Buffer on startup or hotplug of the XC-DMX512T, all addresses 0 to 511 are set to 0. The DMX Write Length is 0. Nothing transmitted.

Address
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19...
Value
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0...

Next a Load DMX Write Buffer output report is sent with Start Address = 3, ByteCount = 3, and 255 for values corresponding to addresses 3, 4, and 5 (0, 161, 3, 0, 3, 255, 255, 255, 0...) which results in the DMX Write Buffer shown below and DMX Write Length = Start Address + ByteCount = 6. Continuous tranmission of 6 bytes corresponding to addresses 0 to 5. Only the 3 addresses were modified, all other addresses remain untouched.

Address
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19...
Value
0 0 0 255 255 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0...

Next a Load DMX Write Buffer output report is sent with Start Address = 12, ByteCount = 4, and 255 for values corresponding to addresses 12, 13, 14, 15 (0, 161, 12, 0, 4, 255, 255, 255, 255, 0..) which results in the DMX WriteBuffer shown below. Since the current DMX Write Length of 6 is less than the new Start Address + ByteCount = 16, it is set to 16 and continuous transmission of 16 bytes corresponding addresses 0 to 15.

Address
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19...
Value
0 0 0 255 255 255 0 0 0 0 0 0 255 255 255 255 0 0 0 0...

Finally a Load DMX Write Buffer output report is sent with Start Address=8, ByteCount=2, and values 128 for values corresponding to addresses 8 and 9 (0, 161, 8, 0, 2, 128, 128, 0...) which results in the DMX Write Buffer shown below. Since the current DMX Write Length of 16 is greater than this Start Address + ByteCount = 10, it remains at 16. Continuous transmission of 16 bytes corresponding addresses 0 to 15.

Address
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19...
Value
0 0 0 255 255 255 0 0 128 128 0 0 255 255 255 255 0 0 0 0...


12. Set DMX WriteLength

Normally the DMX Write Length is automatically determined as the DMX Write Buffer is loaded up using the Load Write DMX Buffer output report. However a user may wish to manually set the DMX Write Length. One reason for this may be if devices on the were previously set up on upper addresses are removed or no longer needed and there is no reason to be transmitting out the larger DMX Write Buffer. The smaller the DMX Write Length is the faster the transmission. Setting the DMX Write Length to 0 will stop transmission. A DMX Write Length of 0 will also result in the next Load Write DMX Buffer output report to automatically set the DMX Write Length.

Byte 1*
Byte 2
Byte 3
Byte 4
Bytes 5-36
Constant Command DMX Write Length LSB DMX Write Length MSB Constant
0
162
LenLo
LenHi
0

LenLo: The least significant byte of the DMX Write Length (0-512).
LenHi: The most significant byte of the DMX Write Length (0-512).

13. Get DMX Write Length

Use this to get the DMX Write Length. After sending this output a DMX Write Length input report will be generated.

Byte 1*
Byte 2
Bytes 3-36
Constant Command Constant
0
163
0

14. Clear DMX Write Buffer

Send this output report to clear the DMX Write Buffer.

Byte 1*
Byte 2
Bytes 3-36
Constant Command Constant
0
164
0

15. Set Mode

Send this output report to set the XC-DMX512T to either transmit mode (factory default) or receive mode. Sending this output report will not save the mode to the eeprom, ie on reboot of the XC-DMX512T it will be in the mode that was saved to the eeprom. To change the mode saved in the eeprom send the Save Mode output report.

Byte 1*
Byte 2
Byte 3
Bytes 4-36
Constant Command Desired Mode Constant
0
169
Mode
0

Mode: Enter 0 for transmit (write DMX) and 1 for receive (read DMX).

16. Save Mode

Send this output report to save the desired mode to the eeprom so that when the device is rebooted it will automatically be in the desired mode. Sending this output report does not change the mode the device is currently in. To change the mode the device is currently in, send the Set Mode output report.

Byte 1*
Byte 2
Byte 3
Bytes 4-36
Constant Command Desired Startup Mode Constant
0
172
Mode
0

Mode: Enter 0 for transmit (write DMX) and 1 for receive (read DMX).

17. Set and Clear DMX Buffer for Read

Send this output report to both set the mode to receive and to clear the DMX buffer. If the device was previously set up for receive using the Configure Mode output report, sending this output report is not necessary. If the device was previously setup to boot up in receive mode using the Save Mode output report and the device was rebooted, sending this output report is not necessary, the DMX buffer will be cleared automatically on start up.

Byte 1*
Byte 2
Bytes 3-36
Constant Command Constant
0
171
0

18. Read DMX Data Manually

Send the output report to read the DMX values of 20 addresses beginning at the entered Start Address. After sending this output report, a Read DMX Data Manually input report will be generated with the desired data. In this documentation "address" has the same meaning as "slot".

Byte 1*
Byte 2
Byte 3
Byte 4
Bytes 5-36
Constant Command Start Address LSB Start Address MSB Constant
0
165
AddLo
AddHi
0

AddLo: The least significant byte of the desired Start Address.
AddHi: The most significant byte of the desired Start Address.
For example, if want values of DMX addresses from 300 to 319, Start Address = 0x012C (300 decimal) so AddHi = 0x01 (1 decimal) and AddLo = 0x2C (44 decimal).

19. Enable Read DMX Data by Notification

Send this output report to enable notification when changes in DMX values occur in the desired address range of Start Address to End Address. If a DMX value changes within the range, including Start Address and End Address, then a Read DMX Data by Notification input report will be generated for that address. If multiple changes occurred then multiple input reports will be sent and the Time Stamp on the input report tells whether the changes occurred at the same time or different times. In this documentation "address" has the same meaning as "slot".

Byte 1*
Byte 2
Byte 3
Byte 4
Byte 5
Byte 6
Bytes 5-36
Constant Command Start Address LSB Start Address MSB End Address LSB End Address MSB Constant
0
165
StartAddLo
StartAddHi
EndAddLo
EndAddHi
0

StartAddLo: The least significant byte of the desired Start Address.
StartAddHi: The most significant byte of the desired Start Address.
EndAddLo: The least significant byte of the desired End Address.
EndAddHi: The most significant byte of the desired End Address.

20. Get DMX Read Length

Send this output report to request the DMX read length of the connected device being read from. After sending a DMX Read Length input report will be generated.

Byte 1*
Byte 2
Bytes 3-36
Constant Command Constant
0
146
0

*This first byte may be omitted on some non-PC operating systems. On these systems the read and write lengths will be 1 byte smaller.

Back to top