Windows SDK for X-keys
This Software Development Kit (SDK) supports all X-keys devices we are currently shipping and offers code examples for Visual Studio C# 2008 Express, Visual Studio C++ 2005 and Visual Studio VB 2010 for Windows; Eclipse for Android.
Note: The information on this page is for Windows-based developers writing applications for Windows or Android operating systems. Options for other developers can be found on the menu to the left.
Download Now
PIEngineeringSDK.exe (v1064) (15.15 MB) updated 2/25/2019.
Technical Note
Users of the .NET Express versions; C# Express and Visual Basic Express. These versions no longer have the Platform Target selection in the project properties. It is necessary to use a platform target of x86 when using PIEHidDotNet.dll or PIEHid32Net.dll. To do this, open the project's .csproj file (C#) or the .vbproj file (VB) in any text editor and add the line:
<PlatformTarget>x86</PlatformTarget>
This line should be in the
.NET Component
The Windows SDK includes two different ways of communicating with the X-keys on Windows systems:
- The traditional SDK where the developer uses calls to our unmanaged or managed (.NET) DLL to communicate with the device. Samples are included for C++, C#, and VB.NET. All modern X-keys devices are supported.
- The new X-keys .NET Components, which include a simplified API that encapsulates much of the functionality of the standard SDK. Once installed in the Visual Studio environment, just drag-and-drop onto your form and support an X-keys device in mere minutes of development time. Samples are included for C# and VB.NET.
- .NET Component Currently supports
- XK-24
- XK-3 Switch Interface
- XK-12 Switch Interface
- XK-16/8/4 Sticks
- XK-80/XK-60
- XKE-128
- XK-3 Foot Pedal
- Matrix Encoder Board
- XKE-124 T-bar
- XC-RS232-DB9
- XC-DMX512T
- (more coming soon)
- The image on the right shows a comparison of the code required to use each.
Developer E-mail List
Before downloading the SDK, please join our private Developer's List. This is the best way for us to keep you apprised of changes in our SDKs or products. We only send out information pertinent to our products and never provide your address to anyone else.
More Code Samples
Though the samples in our standard SDK above fit a wide variety of developers' needs, occasionally we've had cause to write special samples. These odd ducks do not fit in with the other samples in our SDK, but you can find them here. If you don't find what you're looking for, please contact us.
Large Key Samples
IDE: Microsoft Visual C# Express 2008, Microsoft Visual C# 2010
Product: XK-24
Description: Demonstrates how to read incoming data if using large key caps; tall, wide and quad.
Download: LargeKeyDemoCsharpExpress.zip (101Kb) or if using .NET component LargeKeyComponentSample.zip (102Kb)
Device Notification C++ 2003
IDE: Microsoft Visual Studio 2003 C++ .NET
Product: XK-24
Description: Detects the removal and arrival of any usb hid device. Uses RegisterForDeviceNotification
call.
Download: DeviceNotification CPlusPlus.zip (20Kb)
Device Notification C# Express
IDE: Microsoft Visual C# Express 2008, Windows Form Application
Product: any P.I. Engineering device
Description: Detects the removal and arrival of any usb hid device with P.I.
Engineering devices specifically noted. Uses RegisterForDeviceNotification call.
Download: Device Notification CSharp Express.zip (20Kb)
Multi-Unit C# Express
IDE: Microsoft Visual C# Express 2008, Windows Form Application
Product: any P.I. Engineering product
Description: Use of the PIEHidDotNet.dll .NET class library to communicate with
X-keys devices. Demonstrates reading of two or more simultaneously connected
P.I. Engineering products.
Download: Multi-Unit CSharpExpress.zip (109Kb)
WpfApplication
IDE: Microsoft Visual C# Express 2008, WPF Application
Product: X-keys Pro MWII
Description: Use of the PIEHidDotNet.dll .NET class library to communicate with
X-keys devices.
Download: WpfApplication1.zip (132Kb)
Keyboard Reflector C# Express
IDE: Microsoft Visual C# Express 2008, WPF Application
Product: XK-24, applicable only to Pi3 devices
Description: Demonstrates more extensively the use of keyboard reflector commands.
Download: Keyboard Reflector CSharp Express.zip (169Kb)
Polling C# Express
IDE: Microsoft Visual C# Express 2008, Windows Form Application
Product: X-keys Stick MWII
Description: Use of the PIEHidDotNet.dll .NET class library to communicate with
X-keys devices. Demonstrate 2 ways of reading data; with the callback and with
a polling timer.
Download: Polling CSharp Express.zip (66Kb)
Legacy SDKs
In most cases software developers should use our latest SDK since it supports all devices we are currently offering and works on the most current operating systems. These legacy SDKs offer support for older firmware versions of our X-keys.
P.I. Part # | Description | SDK download |
---|---|---|
Discontinued Products SDK | PIEngineeringLegacySDK.exe (2.19 MB) Updated 10/05/2012 | |
XKS-79-USB | X-keys SE Stick (16 keys) | XKStickDevKit.zip (2.3 MB) Updated 7/26/2004 |
XD-03-USB | X-keys SE Desktop (20 keys) | XKDesktopDevKit.zip (2.3 MB) Updated: 7/26/2004 |
XP-05-USB | X-keys SE Professional (58 keys) | XKProfessionalDevKit.zip (2.3 MB) Updated: 7/26/2004 |
XPS-08-US | X-keys SE Jog & Shuttle Professional (46 keys with Jog & Shuttle knob) | XKEditorDevKit.zip(2.3 MB) Updated 7/26/2004 |
XK–184–BP | X–keys SE Button Panel | XK184BPDevKit.zip (2.1 MB) Updated: 7/27/2004 |
XSI-38-US | X-keys SE Switch Interface (12 switch ports) | XKSwitchInterfaceDevKit.zip (2.3 MB) Updated: 7/26/2004 |
PIEHID Dynamic Load Samples* | PIEHIDDynamicLoad.zip (1.1 MB) Updated: 7/27/2004 |
IMPORTANT NOTE: In order to communicate with our SDK applications,
your X–keys USB device must be in Software mode. Our SPLAT
Converter Utility (Windows only) will check an X–keys device and set
the mode. SplatConverter.exe may also be found on your X–keys SE installation
CD in the “\utilities\Memory Resident Mode” directory.
* PIHID Dynamic Load Samples are to be used in conjunction with the individual product SDKs above. They demonstrate how to dynamically load PIEHID.dll, which is necessary to communicate with P.I. Engineering X–keys, RailDriver, and ReDAC devices. Dynamically loading the dll offers an opportunity for the application to do checks for required software or operating systems needed for the application to function correctly. More information is found in the help file.
Notes from the ReadMe file for Legacy SDKs:
The Visual Basic samples were written using Microsoft Visual Basic v6.0 and Microsoft Visual Studio 7.0. Therefore, you must have one of these environments installed in order to open the project. The .exe will run regardless.
The C++ Builder samples were written using Borland C++ Builder 6.0. Therefore, you must have Borland C++ Builder v6 or higher installed in order to open the project. The .exe will run regardless
The Visual C++ sample was written using Microsoft Visual C++ v6.0 and Microsoft Visual Studio 7.0. Therefore, you must have one of these environments installed in order to open the project. The .exe will run regardless.