USB Driver Programming

Develop your own USB Driver

Kithara USB Toolkit

Kithara USB Toolkit provides all important function mechanisms for the development of USB device drivers. With an easy-to-use API, you can access hardware components from your familiar programming environment as if you were developing a real device driver that would take high effort otherwise.

Kithara USB Toolkit is a tool, which provides convenient development of USB drivers for Windows. It is also possible to develop drivers for external USB hardware, without initial training of the complex kernel programming. Programming languages like C, C++, Delphi or C# are directly supported and the developers can work in their familiar programming environment during the entire development. Kithara USBToolkit provides a generic driver, which enables the developers a direct communication to USB devices.

For further information see Kithara Driver Collection. An individual combination of the function modules as well as real-time capability is provided by Kithara RealTime Suite.

Technical details

  • Communication with USB devices via USB 1.1, USB 2.0, USB 3.0 and USB 3.1 at application or kernel level
  • Supports devices with several interfaces and several configurations
  • Reaction at kernel level to all plug and play and power management events as well as to received data
  • Transmission and reception rountines can be executed directly from a real-time context
  • Arbitrary device names, e. g. for serial interfaces
  • Generic WDM-driver for plug and play installation included
  • Unlimited distribution of the runtime files
  • Code execution on the kernel-level supported by C, C++ and Delphi
USB in real time

Modules

Kithara USB Toolkit consists of following modules, which provide only the mentioned real-time capabilities if the module is part of Kithara RealTime Suite.

Basic Functions

Base/Kernel Module

  • Supports Windows and Windows Server (64-bit operating system only), each with Dedicated Mode
  • Supports multi-core processors, hyper-threading and NUMA multi-processor PCs
  • Functions for: opening the driver, execution of real-time code at kernel level, real-time memory management, device handling, version information, debugging support, system information
  • Real-time tasks, events, callbacks, shared memory, data and message pipes, fast mutex objects

Further information …

System Module

  • Interception of system events, e. g. protection faults and system crashes at the kernel level (e. g. FailSafe-Handler/“BlueScreen-Handler”)

Further information …

Communication

USB Driver Module

  • Communication with USB devices via Windows driver stack
  • Low, full, high-speed
  • Control, bulk, interrupt and isochronous transfers
  • Response to all plug and play and power management events

Further information …

Device Module

  • Includes a Windows programming interface for communication devices (ReadFile, WriteFile, DeviceIoControl)
  • Any device names possible, for example virtual COM ports

Further information …



Platforms

Real-time capability can only be achieved on the kernel level. For this purpose a programming language is required that is able to generate native machine code, e. g. C, C++ or Delphi and others. Nevertheless Kithara RealTime Suite supports various platforms, for example a .NET environment. The solution is to transfer the time-critical code into a DLL, which will be loaded directly into the real-time context at the kernel level. A number of usable program frameworks for the aforementioned platforms are provided with every software purchase.


System Requirements

The products of Kithara RealTime Suite support a wide range of hardware and software combinations. If you have questions regarding the system support, please contact us!

Operating system

The software supports the following operating systems:

  • Windows 10 (64 bit version only) and Windows 11
  • Windows Server 2016, 2019, 2022 and 2025

Hardware

The software runs on the following hardware:

  • CPU: x64-compatible CPU (Intel, AMD)
  • Multi-Core; optional Hyper-Threading usable, currently up to 48 logical CPUs, more on request
  • UEFI necessary
  • Regarding compatibility of communication interfaces see e.g. here.

Compiler

Immediately usable program frameworks for the following programming languages / compilers are included in the supplied software (other programming languages can be supported on request):

  • Visual Studio 20xx C++ with MFC user interface (provided project files up to VS 2026)
  • C++ Builder (Embarcadero, formerly Borland) VCL user interface
  • Delphi (Embarcadero, formerly Borland) VCL user interface
  • Visual Studio 20xx C# with WPF user interface (incl. C++ DLL for real-time execution, provided project files up to VS 2026)

In order to execute code in a real-time context, any compiler that can generate a DLL with native machine code, is generally usable. Furthermore, the Windows application can also be generated with other programming languages, such as C#.


EtherCAT® and Safety over EtherCAT® are registered trademarks and patented technologies, licensed by Beckhoff Automation GmbH, Germany.
CANopen® is a registered trademark of the CAN in Automation e. V.
GigE Vision® is a registered trademark of the Automated Imaging Association.
USB3 Vision® is a registered trademark of the Automated Imaging Association.