The USB 12 Switch Interface (Part # XK-1202-UHS12-R) is a user programmable computer input device. It is a USB device that uses the Human Interface Device (HID) class protocol. It can emulate a keyboard, mouse, and joystick, or communicate directly with software like MacroWorks or other software written within the SDK. Any standard 3.5mm (1/8") mono switch can execute a programmed function through the Switch Interface.


  • 6 switches by default and up to 12 supported with our L/R splitter cable
  • π3 firmware, which features HID keyboard, mouse and joystick hardware emulation
  • Full MacroWorks and ControllerMate for OS 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
  • Detachable angle feet, allowing portrait or landscape orientation
  • Phantom key protection circuits

Indicator LEDs:

LEDs light here

There are two indicator LEDs on the Switch Interface. The green LED will be on by default when the device is powered. By default, the red LED is used to indicate the alternate red device layer, to create a visual reference for the current layer. The LEDs can be manipulated in either software or hardware mode and both LEDs are also capable of flashing autonomously.


Any switch can trigger an action from your computer. Connect up to 12 switches to the X-keys USB 12 Switch Interface and program each switch with a function. Any keyboard shortcut your software uses can have a designated switch (copy, paste, save, open, close). Switches are easily set up to launch applications, open files, or type short lines of text like names, addresses, and account numbers. Switches are connected via Assistive Technology standard 3mm (1/8”) phone plugs.

L/R Splitter Cable:

L/R Splitter Cable

The Switch Interface requires our L/R Splitter cable to access all 12 possible switches by doubling the capacity of each switch.

Non-volatile Memory:

The XK-24 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 24 keys 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, Unit ID, and start up backlighting state.

Unit ID:

Each device has a Unit ID to help identify an individual unit and prevent conflicts if 2 or more of the same kind of device 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 1027 endpoints: Keyboard, Joystick, Mouse, Output
  • PID 1028 endpoints: Keyboard, Joystick, PI Consumer Input, Output
  • PID 1029 endpoints: Keyboard, Mouse, 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, Z rotation and slider
PI Consumer Input – Sends custom messages to the HID consumer page for custom software
Output – Output to device, required endpoint for programming and controlling LEDs


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 XK-24 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.

Mounting Kits:

Mounting kits are available for several X-Keys devices. Visit our website for details.

Extra Cable Length:

The Switch Interface 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.


Operating System
Use: Any OS via USB HID | Programming: Windows XP through 10, Mac OS X 10.4 through 10.10
Free Programming Software

Mac OS X: ControllerMate

Free Software Development Kits
(C++, C#, VB.NET)
(any language/OS)
USB Codes Supported
HID keyboard, HID mouse, HID game controller, HID multimedia
Port Type
3.5mm stereo (accepts 3.5mm mono or stereo plug)
Number of Ports
6 ports ()
Optional Accessories
, , or
Wired USB 2.0 standard “A” plug
Cord Length
92” (2.3 m)
Wiring Distance
Up to 1,000 feet (300m) from switch to port
2.55” x 2.55” x 1.01” (65mm x 65mm x 26mm)
Two 0.19” DIA mounting holes, 3” O.C. (4.8mm DIA, 76mm O.C.)
6 oz. (160 g)
USB type
USB 1.1 (compatible through 3.0)
Power Source
USB port, nominal voltage = 5 VDC
Power Consumption
21 mA @ 5 VDC
Temperature Range
-20 to 60 C
Memory Capacity
Approximately 1000 keystrokes or commands
Memory Type
EEPROM, non volatile memory (X-keys retains memory for over 200 years)
Environmental Rating
IP 40, typical indoor office environment
FCC class B, CE, RoHS, WEEE compliant

Specifications are subject to change without notice.

Contact Information

For tech support please email tech@piengineering.com (USA) or tech@xkeys.uk (EU).