### X-keys Matrix Board Data Report | Main Page

General Information

VID | 05f3h
Matrix Board PID | 026Ah or 618
Consumer Usage Page | 1
Usage Page | 000Ch or 12

Matrix Board Input Report

Figure 1: X-keys Matrix Board key reference

Endpoint: 1, consumer usage page

Report Length: 32 bytes

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
Constant | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Unit ID (0-255) | Program Switch Position
0 | D1 | D1 | D1 | D1 | D1 | D1 | D1 | D1 | D1 | D1 | D1 | D1 | D1 | D1 | D1 | D1 | <data> | Swpos

D1: For all bits 0 if key is up, 1 if key is down. Bits 1 to 8 correspond to rows 1-8 respectively of the given column. For example Byte 2 gives the state of A1, A2, A3, A4, A5, A6, A7 and A8. A value of 67 in this byte would indicate that A1, A2 and A7 are pressed.
Swpos: bits 1-3=0, bit 4=0 if program switch is down or 1 if program switch is up, bit 5=1, bits 6-8=0.

Matrix Board Output Reports

The following types of output reports are available; Set LEDs, Set Unit ID. The Unit ID is a value between 0 and 255 which can be set and read. This number stays permanently in the device independent of computer. It is useful if more than one device of the same PID will be connected to the same computer in order to distinguish the devices uniquely. The Set Key and Check Key reports are for the dongle feature available on the Pendant and Button Panel, non PC users please contact P. I. Engineering for further details.

Endpoint: 2, vendor defined usage page

Report Length: 9 bytes.

1. Set LEDs

Byte 1 | Byte 2 | Byte 3 | Byte 4 | Byte 5 | Byte 6 | Byte 7 | Byte 8 | Byte 9
Constant | Constant | Constant | Constant | Constant | Constant | Constant | Constant | LED Control
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | LED

LED: Bits 1-6=0, Bit 7=1 to turn on Green LED or 0 to turn off Green LED, Bit 8=1 to turn on Red LED or 0 to turn off Red LED.

2. Set Unit ID*

Byte 1 | Byte 2 | Byte 3 | Byte 4 | Byte 5 | Byte 6 | Byte 7 | Byte 8 | Byte 9
Constant | Unit ID Command | Unit ID Command | Constant | Constant | Constant | Constant | Unit ID (0-255) | Unit ID Command
0 | 137 | 137 | 0 | 0 | 0 | 0 | <value> | 16

*Make sure the programming switch is set before sending the WriteData() command in order to write the Unit ID to the eeprom