Skip to main content
  • Products
  • Evaluate our Software
  • Downloads
  • Free Utilities
  • Purchase
  • Support
  • About Us
  • Blog
  • Forum
  • Search
    • Contact Us
    • Forum
    • Knowledge Base
    • Web Shop
    • Newsletter
    • RSS
  •   Jobs
  •   Videos
  •   Blog
  •   Sustainability
  • emUSB-Device
  • Bulk Component
  • Technology
  • Add-Ons

Bulk component

Contact us
Downloads
Documentation
SEGGER emUSB-Device
  1. 1.Overview
    1. 1.1.Key features
  2. 2.Components
  3. 3.Example Application
  4. 4.The Kernel Mode Driver (PC)
  5. 5.Supported Platforms
  6. 6.Bulk Component Structure
  7. 7.Sample Applications emUSB-Device Bulk Component

Overview

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).

jlink bulk

Key features

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

Components

Components required to use the BULK class:

  • emUSB BULK component
  • emUSB-Device core
  • emUSB target driver

Resource usage of all components of emUSB-Device

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.

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.

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.

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.

emUSB Device bulk structure

Sample Applications emUSB-Device Bulk Component

J-Link PLUS

SEGGER Debug Probe J-Link

thermostat

Temperature Logger

copy protectio dongle

Software Protection Dongle

Headquarters

SEGGER Microcontroller GmbH

Ecolab-Allee 5
40789 Monheim am Rhein, Germany
info@segger.com
Tel.: +49-2173-99312-0
Fax: +49-2173-99312-28

Locations

USA: SEGGER Microcontroller Systems LLC

Boston area
101 Suffolk Lane
Gardner, MA 01440, USA
us-east@segger.com
Tel.: +1-978-874-0299
Fax: +1-978-874-0599

Silicon Valley
Milpitas, CA 95035, USA
us-west@segger.com
Tel.: +1-408-767-4068

China: SEGGER Microcontroller China Co., Ltd.

Room 218, Block A, Dahongqiaoguoji
No. 133 Xiulian Road
Minhang District, Shanghai 201199, China
china@segger.com
Tel.: +86-133-619-907-60

ISO 9001 certified

ISO 9001

30+ years of experience

First-class embedded software tools since 1992
  • Imprint
  • Disclaimer
  • Privacy Policy
© 2025 SEGGER - All rights reserved.