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.
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.
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.
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
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:
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.