The XK-60 (Part # XK-0979-UBK60-R) is a user-programmable USB computer input device. It is a complete keypad with an enclosure suitable for desktop, handheld, or mounted use.

The device uses the Human Interface Device (HID) class protocol. It can emulate keyboard, mouse, game controller (joystick), and multimedia commands. The device can also communicate directly with macro software such as MacroWorks 3.1, or any custom software written using the PI Engineering Software Development Kit (SDK) or raw data reports.

The standard keycaps are designed for insertion of custom labels by the user.

Assorted accessories are available, including options for flexible layouts, larger keys, professionally-labelled keys, additional indictators, and mounting kit.



  • 60 buttons, arranged in 4 sections, plus a programming switch on top
  • Blue and red individually-controlled backlighting for each key
  • Green and red indicator LEDs
  • Internal memory for recording keyboard, mouse, game controller, and multimedia macros; enabling OS-independent operation
  • Support by MacroWorks 3.1 (Windows) and ControllerMate for X-keys (Mac) in software mode
  • Complete SDK, for Windows, Linux, and Android; raw data reports available for other platforms
  • Detachable angled feet, allowing subtle tilt in portrait or landscape orientation
  • Phantom key protection

Alternate Versions

If the standard USB HID XK-60 does not quite meet your needs, one of the alternate versions available may. Also available are:

  • XK-60 for KVM (part # XK-1364-UKVM60-R), a USB device with special firmware designed to work well on KVM devices

    Hardware and Firmware Features

    Indicator LEDs:

    Indicator LEDS

    Two indicator LEDs are on the top left corner of the device. The green LED will be on by default when the device is powered. The red LED is used, by default, to indicate when a second layer of device programming is being accessed.

    These indicator LEDs can be controlled by developers within their software, and can be used to indicate any state within the software.


    LED Backlights:

    The XK-60 has two banks of LEDs: blue and red. Each key has one of each and they may be addressed individually.

    By default, the initial backlighting of an XK-60 when it is plugged in is all blue on, all red off. If an initial backlighting configuration different than this is desired, the "hardware default backlighting" can be changed within MacroWorks 3.1.

    The backlighting can be changed via keypress by using functions available in MacroWorks 3.1.

    Complete backlighting control is available for advanced users via scripting (in MacroWorks 3.1) or our software development kit.

    Program Switch:

    Program switch

    The programming switch is located on the top side of the XK-60. Pressing this switch will trigger the MacroWorks 3.1 interface by default, if a user is working in software mode.

    The switch can be used as an additional button input by developers.

    Key Matrix:

    Numbered XK-80

    In MacroWorks 3.1 or other consumer software, buttons are numbered sequentially starting with button 1 in the upper left corner of your device. The buttons are numbered down each column, starting again at the top of the next column.

    Users of our software development kit will follow the same numbering scheme, however the button numbers used will be 0-59 rather than 1-60.

    With the ControllerMate for X-keys software (on Mac OS X) the buttons are laid out ascending left to right by row, instead of column.

    Phantom Key Protection:

    Diodes are in placed underneath each button to prevent "phantom button presses" when multiple buttons are pressed, which can be a problem on standard keyboards.

    Unlike a a typical computer keyboard's protection scheme, this design prevents buttons from being ignored during multiple button press scenarios.

    Non-volatile Memory:

    The XK-60 has on-board non-volatile memory which macros can be recorded to, typically known as "hardware mode." The macro types support by hardware programming include keyboard, mouse, joystick (game controller), and multimedia.

    This memory enables the X-keys to retain button macros within the unit. Regardless of what computer (or USB-enabled machine) the device is plugged into, the macros will play back without the use of additional software or drivers, once programmed.

    Unit ID:

    Each device has something called a Unit ID stored in its memory, which identifies a unique device connected to a computer. This prevents conflicts, enabling two XK-60s to be used on the same computer with different programming.

    From the factory, this ID is set to 0. The ID is incremented by MacroWorks 3.1 when it is connected to your comuputer (first unit connected will be set to 1, second to 2, and so on). Users may assign the Unit ID of their choosing (1-254) on the Unit Data tab within MacroWorks 3.1. Note: MacroWorks 3.1 assigns scripts based on Unit ID, so changing the ID after programming macros will require reloading in the appropriate script.

    The Unit ID may also be accessed and modified by developers using our Software Development Kit, should distinguishing between two otherwise identical devices be required.

    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 1122 endpoints: Keyboard, Joystick, Mouse, Output
    • PID 1123 endpoints: Keyboard, Joystick, PI Consumer Input, Output
    • PID 1121 endpoints: Keyboard, Mouse, PI Consumer Input, Output
    • PID 1254 endpoints: Keyboard, Mouse, Multimedia, Output 

    Keyboard – Sends keyboard HID codes, as would be sent from a normal keyboard
    Joystick – Game buttons 1-32, POV hat, X, Y, Z axis, Z rotation and slider 
    Mouse – Mouse clicks, buttons, and movements 
    Multimedia – Multimedia commands, such as those typically available on multimedia-enhanced keyboards: Play/Pause, Next Track, Mute, and so on
    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

    Software Development Kits:

    The SDK (software development kit) contains information and sample programs to demonstrate how to implement X-keys directly into a custom application.

    SDKs are available for Windows (C++, C# and VB.NET), Linux (C++) and Android (Java). The Windows SDK includes a 32-bit unmanaged DLL, and 32 and 64-bit managed (.NET) dlls, for ease of implementation. Raw HID data can be used to communicate to the device on other platforms or in other languages, if desired. Please visit our website's developer section for more information.

    Customizing the XK-60 with Accessories

    Labeling a Key:

    Carefully pry the lens off

    Standard key caps have two parts: the clear lens and the base which may be clear or opaque. These parts can be separated by prying with a fingernail or other thin object. Labels (also known as "legends") may then be inserted before the key cap is put back together.

    Legends may be designed with MacroWorks 3.1's Legend Maker, or by using one of the templates available on the X-keys website.

    Custom legends, as well as custom-printed key caps for a more professional look, are available from P.I. Engineering for medium-to-large projects. Typically a minimum order of 10 full X-keys layouts is required, and setup fees and lead times can vary. Please emailsales@piengineering.com for more information.

    Blocking Out Keys:

    Safest removal is accomplished with a key puller

    Keys can be removed from the XK-60, so that keys (or sections of keys) can be blocked out. To remove a key, a key puller (provided in all retail boxes, or part #XK-A-303-R) or other method of prying may be used to pull from underneath the key in a gentle but firm straight-upward motion.A specal note: the blockers that come pre-installed witht the XK-60 have no electronics under them and so cannot be used for additional buttons.

    Key blockers are available as part #XK-A-556-R, and may be used to define sections within a key layout or to separate keys from other keys. These are simply pushed into the keyframe, after removing the applicable key, by lining up the posts under the blocker with the holes in the frame.

    Replacement/Alternate Key Caps:

    Assorted keycaps, shown with blue LED backlighting

    The standard clear key caps may be removed and replaced. To remove a key, a key puller (provided in all retail boxes, or part #XK-A-303-R) or other method of prying may be used to pull the key in a gentle but firm straight-upward motion.

    Many alternate, or replacement, keycaps are available on our website for the XK-60. These include tall and wide keys that cover the space of 2 keys, and large 2x2 square keycaps. Also available are colored transluscent, clear, beige, and grey single keycaps.

    Visit the keycaps page on our website for more details or to place an order.

    Angled Feet:

    Angle feet prop the device up, making it more ergonomic. The feet may be removed by gently pulling with fingers. The feet can be used to orient the device in either a landscape or portrait style.

    • Replacement Part # 0544

    Mounting Kits:

    Mounting kits are available for the XK-60. Please visit our website's accessories section for details.

    USB Cable Extension:

    The XK-60 has an attached 1.4m USB cord. It may be possible to use a short extension cord if a little extra length is needed.

    To achieve lengths greater than 5 meters, a USB extender must be used. The X-keys® USB Extender (part number #XK-A-1362-R) uses a standard Cat5 cable (not included) to extend the connection between any X-keys USB device and the USB port on the computer. The Cat5 cable can be any length up to 150 feet (45.7 m) and can be used to create a reliable long distance USB connection.


    Operating System
    Use: Any OS via USB HID | Programming: Windows XP through 8.1, Mac OS X 10.4 through 10.10
    Free Programming Software
    Windows: MacroWorks 3.1 
    Mac: ControllerMate for X-keys
    Free Software Development Kits
    Windows (C++, C#, VB.NET) 
    Linux (C++) 
    Android (Java) 
    Raw HID (any language/OS)
    Emulation Modes
    HID keyboard, HID mouse, HID game controller, HID multimedia
    Switch Types
    Full-travel rubber dome, carbon on gold contacts, guaranteed for over 1 million operations
    Number of Keys
    60 single keys + programming button
    Actuation Force
    Approx. 2.5 oz (72g) break-over, approx. 1.5 oz (42g) hold
    0.625” (16mm) sq.; relegendable with Cherry MX compatible stem
    Key Spacing
    0.75" O.C.
    Optional Keys
    2X1, 1X2, 2X2
    60 blue and 60 red LEDs, individually addressable
    Wired USB 2.0 standard “A” plug
    Cord Length
    56” (1.42 m)
    8.25” x 7.25” x 0.94” (210mm x 184mm x 24mm)
    26 oz. (737 g)
    USB type
    USB 1.1 compatible through 3.0
    Power Source
    USB port, nominal voltage = 5 VDC
    Current Draw
    NO backlight: 32 mA , Blue backlight full: 98 mA, Red backlight full: 145 mA, All backlights: 202 mA
    Temperature Range
    -20 to 60 C
    Memory Capacity
    Approximately 1,000 keystrokes or commands in onboard memory
    Memory Type
    EEPROM, non volatile memory (X-keys retains memory for over 200 years)
    Environmental Rating
    IP 40, typical indoor office environment
    FCC class BCERoHS, WEEE compliant

    Specifications are subject to change without notice.

    Contact for Support or More Information

    For tech support please email tech@piengineering.com. To purchase accessories or additional devices, contact sales@piengineering.com.