Skip to main content
Documentation - Limelight XE™ - Tutorial
Using X-Keys Input Devices with Limelight XE


Limelight XE directly supports the P.I. Engineering X-Keys Computer Input Devices.  All clients have some level of support for both X-Keys Keyboards and Analog Controls.  There are two methods for using these hardware interface devices; one - as a controller for the console or Limelight Interface Architect to speed up functions or editing or two - as a dedicated input controller to the Display Client displays (in conjunction with mouse, touch and keyboard input).

Note: For X-Keys devices to operate properly with Limelight XE applications, the P.I. Engineering MacroWorks software must be shutdown (if installed) or it will interfere with device programming and operation.

X-Keys Input as a Function Accelerator

X-Keys keyboards can be used to trigger various functions in both the Limelight XE Console and Limelight Interface Architect.  When using an X-Keys controller for the first time, you need to assign a Unit ID (default from the factory is 0).  The unit ID uniquely identifies the input device from others and is programmed into the device hardware. All Limelight XE applications can handle up to 254 simultaneously connected X-Keys controllers.

Note: X-Keys controllers must have a unique Unit ID if more than one device is used in combination with any Limelight XE application.

To setup an X-Keys device, click the SETUP button on the controller (a small black recessed button located on the cable side of the controller) or use the menu or ribbon controls to reach the X-Keys setup dialog (shown below). When a device is selected for programming, the red LED will light up on the controller... this indicates which device is in setup which can make it easier when several of the same device types are connected.

Setup Dialog Overview

The X-Keys universal setup dialog is divided into several sections.

  • Available X-Keys Devices - Displays the currently detected devices. Click a device to change its properties.
  • Current X-Keys Device - Shows the key ID assignment for the device (also allows direct interface for selecting a key for setup)
  • Back Light Settings - Allows the user to adjust the color and back-lighting intensity in normal operation.
  • Available Functions - Shows the available functions that can be tied to individual keys on a device.
  • Key Assignments - What is current assigned to the selected device.


To set the Unit ID, simply select which device you wish to alter, set the unit ID in the edit control to the right of the "Set Unit ID" button (or use the spinner up/down control to the right of the edit box) and press SET UNIT ID.  This action will write the new unit ID to the selected device which remains even when the device is unplugged. 

To change the back-light levels, simply drag the slider controls for the red or blue bank of LEDs and the color will immediately change in both the dialog (indicating the color) and the device.  This will only remain if when completed you click UPDATE, otherwise it will revert to the previous settings.

To assign a function to a key either press the desired key on the device in setup mode or click a key in the Current X-Keys Device window.  When selected, it will turn blue in the setup dialog (all others will be gray) and the button on the device will flash blue (all others will be off).  To deselect the key simply click it (or press it) again. Alternatively, you can click the Key ID in the Key Assignments list view which accomplishes the same thing.  Once a key is selected, select the function from the Available Functions list view and click the left arrow between both list views.  This will assign the function to the device and key.  To remove a function, select the desired key, and click the right arrow between both list views. This will return it to the pool of available functions.  Available functions will vary by application and revision (more are always being added).

Once your setup is complete, click the UPDATE button.  All X-Keys settings are stored in an separate INI file in the "ProgramData\Strasis Systems\Limelight XE\" directory.  The file will be named limelight_appinitials_xkeys.ini where "appinitials" are the initials assigned to the application.  For example, the console file is limelight_xe_xkeys.ini.

Display Client Control Key Assignments

Unlike application functions, the display client (and Limelight Interface Architect in PREVIEW or FULL SCREEN mode) do not intercept key presses or any other human interface device (HID) input (with a few exceptions).  Instead, input devices are passed to each monitor's form and are interpreted based on each control's configuration.  Every control that can accept input has two properties:

  • HID Key ID - The key number of the button on the X-Keys controller (1-128)
  • HID Unit ID - The assigned unit ID of the X-Keys controller (1-255)
Note: For X-Keys input to be enabled, you must assign a valid HID Key ID and HID Unit ID to a control as well as set Allow Click = true. To disable a key but allow clicking (or touch), use HID Key ID = 0

When developing user interfaces with Limelight Interface Architect, key presses are intercepted while editing controls (Limelight Interface Architect is executing functions based on what was setup in the X-Keys universal setup dialog).  If you switch to PREVIEW or FULL SCREEN mode, the interface you are developing is now receiving the key presses so the interface can be tested.

A simple example to test this functionality is to use a STATE BUTTON. Follow the steps below:

  • Launch Limelight Interface Architect and connect to a Limelight XE server.
  • On the Component Palette select a STATE BUTTON (under the CONTROLS components) and add it to the display form.
  • Next, select the component and edit the HID Key ID and HID Unit ID properties to match a currently installed X-Keys device that was previously setup with a Unit ID.
  • Set the Allow Click property to TRUE (should be true by default). By default, this control has 4 states and is enabled to switch states automatically when clicked.
  • Press F2 to enter PREVIEW MODE (controls should indicate their default states - if they indicate OFFLINE, then you are not connected to a server).
  • Press the associated X-Keys key on the assigned device... the STATE BUTTON should change state with each press of the key cycling back to the begging state after the maximum state is reached.
Note: If you assign the same HID Key ID and HID Unit ID to multiple controls on the same page form, each control will receive the same notification and respond accordingly - sometimes with undesired affects. For best practices, use unique key IDs on the same form page. Also note that key press notifications are only sent to the current form page - that is, hidden pages do not receive any HID notifications.  This allows similar controls that lie on separate form pages to use the same unit ID and key ID.  Only the visible controls will receive the notification.

In general X-Keys keyboards come with translucent key caps that can accept an insert to add legends to the keyboard.  Other key cap options are available including printed caps or double-shot injection molded caps.  For more information on custom key caps, please contact P.I. Engineering directly.  



Strasis Systems, LLC is a provider of software for command and control centers, data visualization, security and systems integration.