Shopping Cart
We accept VISA Mastercard American Express Discover

Windows, Mac OS X, Linux, and Android logos

Windows SDK for X-keys

Key Legends

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  section just under the Platform Condition.

.NET Component

The Windows SDK includes two different ways of communicating with the X-keys on Windows systems:

ATEM
  • 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
  • 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.

Join our Private E-mail List

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.

Please note: MWII and SE SDKs support devices which have been replaced with newer firmware and have different Product IDs and different SPLAT messages. We encourage you to develop for the latest firmware with the SDK on the first tab.

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.