The emUSB-Device Bulk component allows developers to quickly and painlessly develop software for an embedded device that communicates with a PC via USB.
It offers easy and fast communication without any protocol overhead, allows quick implementation of custom protocols and requires minimal resources to run (memory and endpoints).
SEGGER Debug Probe J-Link
Software Protection Dongle
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.
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.
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 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.