Skip navigation
  • User defined class
  • Highest performance
  • Multi-platform support: Linux, Windows and macOS
  • C, C++ and C# API available
  • Small footprint

emUSB-Device Bulk Component

The emUSB-Device Bulk component allows developers to quickly and painlessly develop software for an embedded device that communicates with a PC via USB.


Typical Applications / Advantages

  • Easy and fast communication without any protocol overhead
  • Implementation of custom specific protocols
  • Minimum resource usage (memory, endpoints)

Bulk Component Structure

The emUSB-Device Bulk component stack consists of an embedded side, which is shipped in source code form, and an API for the host. SEGGER provides an easy-to-understand and easy-to-use API which allows an application to communicate with the device. The BULK API can be used on Windows, Linux and macOS systems. It is delivered in source code for Linux distributions and macOS.

Supported Platforms

The BULK API works on all Windows platforms starting with XP Service Pack 2. The API is tested for Linux using kernels 4.x and later and for macOS.

The Kernel Mode Driver (PC)

In order to communicate with a target (client) running emUSB-Device, a bulk kernel mode driver has to be installed on Windows PCs. emUSB-Device can use the generic USB driver WinUSB.sys which is provided by Windows. This driver is installed automatically when the device is connected to the Windows PC the first time. On Linux and macOS no additional driver is necessary, because the kernels already contain generic USB drivers.

Example Application

Example applications for both the target (client) and the PC (host) are supplied. These can be used for testing the correct installation and proper function of the device running emUSB-Device and as a starting point for easy developing an own application.

Resource Usage by this Component

ROM usage RAM usage
App. 2 KByte  App. 80 Byte