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
  • Technology
  • Add-Ons

emUSB-Device
High performance USB-Device software

emUSB-Device is a high performance USB device software specifically designed for embedded systems. The software is written in ANSI C and can run on any platform. A variety of target drivers are already available. Support for new platforms can usually be added at no extra charge.

Contact us
Downloads
Documentation
Icon for emUSB-Device the embedded USB stack by SEGGER
  1. 1.Overview
    1. 1.1.Key features
  2. 2.Target emUSB-Device components
    1. 2.1.VirtualMSD
    2. 2.2.CDC-NCM
    3. 2.3.IP-over-USB
    4. 2.4.CCID
    5. 2.5.MIDI
    6. 2.6.DFU
    7. 2.7.CDC-ECM
    8. 2.8.RNDIS
    9. 2.9.Video
    10. 2.10.Audio
    11. 2.11.Printer
    12. 2.12.HID
    13. 2.13.CDC
    14. 2.14.MTP
    15. 2.15.MSD
    16. 2.16.Bulk
  3. 3.Media gallery
  4. 4.emUSB-Device drivers
  5. 5.Licensing

Overview

emUSB-Device enables easy integration of USB functionality into an embedded system. Multiple standard classes are provided that allow embedded systems to behave as standard USB devices and communicate with any host like Windows, Linux and Mac systems. Examples are mass storage device, keyboard, mouse, printer, speaker, modem, RS232 serial adapter or network adapter. Additionally proprietary protocols may be implemented using the BULK class provided by emUSB-Device.

Multiple classes may be combined in any way to form a Composite Device with multiple interfaces that can be used simultaneously.

Key features

  • Cross platform works with Linux, Mac, Windows, and other hosts
  • Easy to use API and documentation
  • Compliant with USB v1.1, USB v2.0 and USB v3.0
  • Supports all speeds including Full (12Mb/s), High (480Mb/s) and SuperSpeed (5Gb/s).
  • Small memory footprint
  • Direct support from the USB product developers

Target emUSB-Device components

emUSB-Device Consists of Three Layers. These layers are a driver for hardware access, the emUSB-Device core, and at least one USB class driver or the bulk communication component. USB class drivers (MSD, CDC, HID, MTP, RNDIS, IP, MIDI), Bulk communication component and VirtualMSD component can be combined in any way to suit the requirements of any target USB-Device.

USB class drivers and hardware drivers are separate packages, which can be combined and ordered individually to suit the requirements of any project. SEGGER recommends to purchase emUSB-Device as a complete package by selecting the emUSB-Device PRO package. It includes support for the most common use cases, such as human interface devices for user interaction, file storage and transfer and serial communication support. The following table shows, which modules are part of the PRO package and which are optionally available.

emUSB Device Structure 02
ComponentDescriptionemUSB-Device BASEemUSB-Device PRO
Ethernet communication
emUSB-Device IPCross platform IP over USB communication
(contains emUSB-RNDIS and emUSB-ECM)
emUSB-Device RNDISEthernet over USB communication using Remote NDIS protocol
emUSB-Device ECMEthernet over USB communication using Communication Device Class
/ Ethernet Control Model protocol (CDC-ECM)
emUSB-Device NCMEthernet over USB communication using Communication Device Class
/ Network Control Model protocol (CDC-NCM)
Mass storage
emUSB-Device VirtualMSDVirtual mass storage device (contains emUSB-MSD)
emUSB-Device MSDMass Storage Device class
emUSB-Device MTPMass storage using Media Transfer Protocol (MTP)
Serial communication
emUSB-Device CDCSerial communication over USB using Communication Device Class /
Abstract Control Model protocol (CDC-ACM), typically RS-232 emulation
emUSB-Device HIDHuman Interface Device Class (HID) component
(e.g. Mouse and Keyboard)
emUSB-Device PrinterPrinter protocol class
Multi media
emUSB-Device AudioEasily handle audio data.
emUSB-Device VideoUSB Video Class implementation.
emUSB-Device MIDIMusical Instrument Digital Interface class.
Other
emUSB-Device BulkEasy and fast USB communication without any protocol overhead
emUSB-Device DFUUSB Device Firmware Upgrade class implementation
emUSB-Device CCIDUSB Chip Card Interface Device class
Core layer
emUSB-Device CoreThe emUSB-Device core is the intrinsic USB stack.
Hardware layer
DriverUSB controller driver.

Included  One item included  Optional 

VirtualMSD

emusb msd bb ns

The Mass Storage Device class (MSD) is used to get access to external storage media such as USB-sticks, external hard disk drives and memory card readers.

Cross platform, driverless file transfer, virtual file system

Application samples for emUSB-Device VirtualMSD

smart watch

Smart watch

J-Link OB K22 Eval

J-Link OB

CDC-NCM

emusb ethernet bb ns

Ethernet via USB

emUSB-Device CDC-NCM enables a USB device to act as a virtual network adapter. This can be used to run TCP/IP-based applications over USB.

Application samples for emUSB-Device CDC-NCM

USB 2 Ethernet Adapter

USB to Ethernet Adapter

Router

Router/Gateway

IP-over-USB

emusb ethernet bb ns

Cross platform, driverless Ethernet via USB

Easily run any IP-based protocol over USB. Simple and driverless! Plug-and-play on any operating system. Use a web browser to look into and configure the USB device.

Application samples for emUSB-Device IP-over-USB

black printer with paper tray

Printer

white overear headphones

Headphone

CCID

emusb CCID bb ns chip on blue background

CCID class

SEGGER's emUSB-Device Chip Card Interface Device (CCID) Class allows to create any CCID compatible USB device, including smart card readers (either contact based or contactless) or authentication tokens (Dongles).

Application samples for emUSB-Device CCID

card reader card

Card reader

card reader nfc 1

NFC card reader

cardreader nfc 2

RFID card reader

MIDI

MIDI Synthesizer Icon

Musical Instrument Digital Interface

The USB class protocol for MIDI is used to interact with music devices and studio equipment, such as MIDI controllers, sequencers, drum machines, samplers, effects units, synthesizers, instruments, lighting and recording equipment.

Application samples for emUSB-Device MIDI

audio keyboard

Synthesizer

novation Launchpad

Controller

MIDI effects unit

Effects Unit

DFU

emusb DFU bb

Device Firmware Upgrade

Easily upgrade the firmware of your devices via a standard USB protocol.

Application samples for emUSB-Device DFU

black fax machine

Fax

camera

Camera

Router

Router/Gateway

 

smart watch

Smart watch

 

black printer with paper tray

Printer

 

CDC-ECM

emusb ethernet bb ns

Ethernet via USB

emUSB-Device CDC-ECM enables a USB device to act as a virtual network adapter. This can be used to run TCP/IP-based applications over USB.

Application samples for emUSB-Device CDC-ECM

USB 2 Ethernet Adapter

USB to Ethernet Adapter

Router

Router/Gateway

RNDIS

emusb ethernet bb ns

Ethernet via USB

emUSB-Device RNDIS allows a USB device to act as a virtual network adapter. This can be used to run any TCP/IP based application via USB. The most noteworthy application is a USB based webserver.

Application samples for emUSB-Device RNDIS

USB 2 Ethernet Adapter

USB to Ethernet Adapter

Router

Router/Gateway

Video

emusb video bb ns

USB Video Device class

UVC 1.1 support. Transmit video data to any host. Expand your embedded device with video capabilities.

Application samples for emUSB-Device Video

camera 2

Camera

webcam

Webcam

Audio

emusb audio

USB Audio Device class

Easily transmit audio via USB. Record or replay audio received from the host, send recorded audio to the host. Simple and driverless! Plug-and-play on any operating system.

Application samples for emUSB-Device Audio

emUSB Device audio conference set

Conference speakerphone

emUSB device audio headset headphones

Headset

mini soundcard

USB sound card

Printer

embUSB printer bb ns icon

Printer class

The USB class protocol for printers is used for the handling of output devices, like printers and plotters.

Application samples for emUSB-Device Printer class

black printer with paper tray

Printer

HID

embUS hid bb ns

Human Interface Device class.

The Human Interface Device class (HID) is an abstract USB class protocol defined by the USB Implementers Forum.

Application samples for emUSB-Device HID

keyboard mouse

Keyboard & Mouse

barcode scanner

Barcode Scanner

touchscreen

Touch Screen

industrial joystick

Joystick

fingerprint sensor

Fingerprint Sensor

rfid reader

RFID Reader

3d tracker

3D Mouse

trackball

Trackball

USV

Uninterruptible Power Supply

weighing scale

Weighing Scale

CDC

emUSB cdc bb ns

Communication Device Class

The USB Communications Device Class (CDC) allows to convert the USB device into a serial communication device.

Application samples for emUSB-Device CDC

modem

Modem

black fax machine

Fax

usb measurement device

Measurement Device

pos terminal

POS-Terminal

MTP

mtp bb ns

Media Transfer Protocol

The Media Transfer Protocol (MTP) is a USB class protocol which can be used to transfer files to and from storage devices. MTP is an official extension of the Picture Transfer Protocol (PTP) designed to allow digital cameras to exchange image files with a computer. MTP extends this by adding support for all types of files.

Application samples for emUSB-Device MTP

smartphone

Smartphone

camera

Camera

mp3 player

Mp3 player

MSD

emusb msd bb ns

Mass Storage Device class

emUSB-Device MSD enables the use of an embedded target device as a USB mass storage device. The target device can be simply plugged-in and used like an ordinary disk drive, without the need to develop a driver for the host operating system.

Application samples for emUSB-Device MSD

memory stick

Memory Stick

camera

Camera

mp3 player

Mp3 player

dvd player

DVD player

Bulk

emUSB bulk ns

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.

Application samples for emUSB-Device Bulk

J-Link PLUS

SEGGER Debug Probe J-Link

thermostat

Temperature Logger

copy protectio dongle

Software Protection Dongle

Media gallery

emUSB-Device — Intro | 6:13 min

emUSB-Device Audio — Intro | 4:06 min

emUSB-Device drivers

SEGGER provide support for an extensive range of MCUs with on-chip USB controllers. The driver interface has been designed in such a way that it should be possible to use the most common USB device controllers and easily add drivers for USB controllers that are not yet supported.

Full list of supported devices

Licensing

emUSB-Device is available under various Embedded Software License models and delivered in source code packages. With a wide range of licensing options, emUSB-Devic can fulfill commercial requirements as well as technical requirements. All licenses are one-time payments. emUSB-Devic is royalty-free and not subscription-based. This makes the software a part of the equipment expenses, keeping the costs static.

* Applies to second seat/product and all additional seats/products of the Single Product License and Single Developer License.

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.