Integration

Pi3 firmware offers X-keys users and developers a broad range of alternatives for USB input.

Using MacroWorks 3.1 Software

An X-keys with our free MacroWorks 3.1 (MW3.1) software offers a great deal of flexibility for customization with little work required from the programmer. The MW3.1 script uses the VB language so anyone proficient in VB can easily create custom scriptlets or modify existing script parameters in MW3.

MW3

  • Software messaging: keystrokes, mouse, Unicode, pre-defined scriptlets
  • Hardware messaging: keystrokes and mouse commands
  • Custom messaging: VB scripting
  • Reflector messaging: data is received as hardware keystroke or mouse message
  • Simultaneous messaging: any combination of above is possible

P.I. Engineering provides live technical support for installation, programming, and scripting.

Pros:
  • Application sensitivity
  • Virtually unlimited macro length
  • Allows mixing of messages, commands, and scripting
  • GUI driven programming
  • Supports VB scripting
  • Works for everyone from complete novice to experienced programmer
  • End user may be given access to change programming
Cons:
  • Requires MW3.1 installation on end user's PC
  • No direct communication from application to X-keys device
  • End user may have access to change programming

Using Your Application with Our SDK

Direct communication between the X-keys and your software provides the most reliable and best control on both ends.

MW3

  • Direct link from key press to action
  • Direct path to analog control position
  • Direct control of indicators and displays on X-keys devices
  • Hardware and Reflector messaging are also supported

P.I. Engineering provides live technical support to assist the developer and support our SDK.

Pros:
  • Best possible link from X-keys to application - bypasses keyboard and mouse data filters
  • Absolute position of analog controls reported directly to application
  • All backlighting and indicators may be controlled by the application
  • Dongle feature may be implemented
  • Allows for control of hardware or reflector messages
Cons:
  • Requires developer to understand and implement X-keys data reports
  • Requires developer to manage and update software

Using X-keys as a Stand Alone USB Device

Direct communication between the X-keys and your software provides the most reliable and best control on both ends.

MW3

  • Operation uses standard HID drivers
  • No software to install on end user PCs
  • Programming stored in X-keys onboard memory
  • Keyboard, mouse, and game controller (joystick) input

X-keys installs as a compound USB device: Keyboard and Mouse (or other configurations - see Alternate Firmware Configurations under 'Alternate' Tab above). A programmed X-keys can be plugged to any computer supporting USB HID Keyboard and mouse and sends standard USB messages.

Pros:
  • Every application open to USB keyboard, mouse, or game controller is supported
  • Software has full control of hardware messages
  • Feedback from applications can affect hardware messages
  • Can be combined with other forms of input
Cons:
  • Requires custom scripting or programming

Using X-keys Reflector Feature

Reflector

  • Messages sent to the X-keys are reflected back
  • Messages come through lowest level HID input
  • Messages can originate in MW3.1 or your custom application
  • Keyboard, mouse, and game controller (joystick) input

Keyboard, mouse, or joystick messages are reflected back to the PC at the lowest possible level, coming from our HID USB Hardware. Even the most "reluctant" applications will not ignore messages coming from a USB keyboard or mouse. MW3.1 and our SDK support this feature, (available in Pi3 devices.)

Pros:
  • Every application open to USB keyboard, mouse, or game controller is supported
  • Software has full control of hardware messages
  • Feedback from applications can affect hardware messages
  • Can be combined with other forms of input
Cons:
  • Requires custom scripting or programming

Alternate Firmware Configurations

X-keys with Pi3 firmware have four possible USB HID endpoints. Changing endpoints in a Pi3 device is available as a standard feature in our SDK. Changing the endpoints also changes our USB Product I. D. (PID).

In standard configuration (as shipped from our warehouse), Pi3 X-keys contain four endpoints which are defined as:

  1. HID Consumer Page Input
  2. HID Keyboard Input
  3. HID Mouse Input
  4. HID Consumer Page Outbound Report (for programming, backlighting, or display control)

Developers can reconfigure the endpoints to be:

  1. HID Consumer Page Input
  2. HID Keyboard Input
  3. HID Game Controller (Joystick Input)
  4. HID Consumer Page Outbound Report (for programming, backlighting, or display control)

Or:

  1. HID Keyboard Input
  2. HID Mouse Input
  3. HID Game Controller (Joystick Input)
  4. HID Consumer Page Outbound Report (for programming, backlighting, or display control)

In all cases #4, the outbound report, is required to communicate with the device. Windows requires a game controller endpoint on a USB port to allow software emulation of game controller commands.

Game Controller input includes:

  • Joystick X, Y, Z
  • Z rotation
  • Slider
  • POV Hat
  • Game Buttons 1-32