The Pi3 Matrix Board (Part # XK-0988-UNM128-R) is a user programmable input device. The 128 digital inputs can be used to emulate a keyboard, mouse, joystick, or communicate directly with software like MacroWorks. It works well with any type of dry contact switch enclosure (momentary, toggle, rotary, relay). Ideal for wiring your own input panel such as a cockpit simulator, cab simulator, or other gaming station. Programming is easily accomplished via our included X-keys MacroWorks software for Windows (XP, Vista, 7, or 8) and programmers can use one of our SDKs for Windows or Linux to read data directly from the X-keys.


  • 128 digital inputs in an 8 x 16 matrix
  • π3 firmware, which features HID keyboard, mouse and joystick hardware emulation
  • Full MacroWorks software support, in addition to internal memory for hardware resident macros
  • Internal memory for hardware resident macros for OS independent support
  • Complete SDK, for both Windows and Linux
  • Phantom key protection circuits

Key Matrix:

The matrix consists of 8 rows and 16 columns for a total of 128 possible keys.


Non-volatile Memory:

The Pi3 Matrix Board has a non-volatile memory to allow the unit to record keyboard and other hardware messages. If programmed, these message are retained with the individual unit. The messages are permanent until the unit is reprogrammed. This allows the programmed unit to be used on any USB compatible system without extra software. Keyboard, mouse, and joystick(game controller) messages can be stored and replayed from this memory.

A total of approximately 1200 keystrokes can be recorded on a single unit. These can be distributed over the assigned switches in any fashion. Mouse and joystick commands also use this memory and will reduce the total number of keystrokes available in memory. Additionally, other variables are stored in the unit memory, such as: Product ID, Endpoint settings, and Unit ID.

Programming Switch:

The program switch is located on the side of the Matrix Board. Pressing the program switch will display the MacroWorks GUI by default.


Connection to the computer is accomplished via standard USB plug (included). Connection for switches is a 30 pin header which will accept a double row, .100" (2.5mm) Female Header Receptacle (not included) commonly available from electronics connector suppliers.

Connection Specs

Connection Pins

Header Wiring:

Number XK-3

Connecting the Switches:

The 128 switch points in the matrix are connected by wiring one side of eight switches to one of the 16 column pins. The other side of each switch is then wired, through a diode, to one of the 8 rows and the wiring is repeated for each of the 16 columns (see diagram below). Using standard signal diodes (1N4148 or equivalent) will isolate each switch so no phantom keys will appear if more than 3 keys are pressed.

Number XK-3


The two LEDs mounted next to the programming switch indicate the active layer on the Matrix Board. If you choose to make second layer features available to the end user, we recommend making these LEDs visible. Pins 8 and 21 provide a means of connecting indicator LEDs through the header. The other end of the LEDs must be connected to a 5V source and pins 13 and 16 may be used for this purpose. When connecting LEDs to these pins, the LEDs on the Encoder Board should be disconnected

Unit ID:

Each device has a Unit ID (UID) to help identify an individual unit and prevent conflicts if 2 or more of the same devices are attached to computer. From the factory the UID is set to 0. The unit ID is incremented by the programming software to prevent conflicts and uniquely identify the associated macros. The maximum UID is 255, and is stored in the non-volatile device memory.

Endpoints and PIDs:

This device has several USB HID endpoints to allow the device to emulate standard USB HID devices. The Product ID (PID) may be changed to use different combinations.

  • PID 1068 endpoints: Keyboard, Mouse, PI Consumer Input, Output
  • PID 1069 endpoints: Keyboard, Joystick, Mouse, Output
  • PID 1070 endpoints: Keyboard, Joystick, PI Consumer Input, Output

Keyboard - Sends keyboard HID codes
Mouse - Mouse clicks, buttons, movements
Joystick - Game buttons 1-32, POV hat, x,y,z axis movement
PI Consumer Input - Sends custom messages to the HID consumer page for custom software
Output - Output to device, required endpoint for programming


The SDK (software development kit) contains data and sample programs to demonstrate how to write a complete custom application interface. There are samples that can view the full HID USB device consumer input reports, enabling you to manipulate the input with your own custom application. All aspects of the Matrix Board hardware can be tested with the sample programs. SDKs are available for Windows and Linux OS. Please visit our website for more information on SDKs.

Extra Cable Length:

The Matrix Board has an attached 1.4 m cord. It may be possible to use a short extension cord if a little extra length is needed. To achieve lengths much greater than 5 meters a USB Extender must be used. The X-keys® Extender uses Category 5 cable to extend the connection between any X-keys USB device and the USB port on the computer. Standard CAT 5 cable cut to any length up to 150 feet (45.7 m) and wired with standard RJ45 network connectors can be used to create a reliable long distance USB connection.


Unit Specifications
Connector Type
USB "A" plug
Input Connector
0.1" double row, 30 pin female header receptacle (not included)
Number of Inputs
128 possible matrix points (switches)
2" x 1.3" x 0.58", (50.8mm x 33mm x 15mm)
2.56 oz. (73 grams)
Cord Length
8' (2.44 m)
Power Consumption
Low power USB device, less than 15 ma @ 5 vdc
Power Source
USB port power, nominal voltage = 5vdc
FCC Class B, CE
Software Mode Features
Operating System
Windows XP, Vista, 7
Included Software
Windows: MacroWorks 3.1
Mac: ControllerMate for X-keys
Available Software
Windows (C++, C#, VB.NET)
Linux (C++)
MW3 supports multiple layers including application specific programming
Hardware Mode Features
Hardware System
Any architecture supporting USB, including Sun, SGI, and HP workstations
Operating System

Programming requires MacroWorks 3 for Windows XP, Vista, or 7
Operates on any OS supporting USB including Unix, Sun and Mac OS-X

Memory Capacity
Each matrix point is allocated 3 characters and a pool of 560 additional keystrokes is available to any switches requiring additional characters
Memory Type
EEPROM, non volatile memory (X-keys retains memory for over 200 years)
2 layers - user selectable toggle and/or shift function

Specifications are subject to change without notice.

Contact Information

For tech support please email (USA) or (EU).