Skip navigation

emUSB-Device — High performance USB-Device software

  • Cross platform works with Linux, Mac, Windows, and other hosts
  • Easy to use API and documentation
  • Uniform API for all supported controllers
  • Small memory footprint
  • Direct support from the USB product developers

emUSB-Device is a high performance USB device stack 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. 

Versatile USB device stack for embedded systems

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.

IP-over-USB

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

Printer
printer-500x.png
Headphone
headphone-500x.png

Bulk

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

SEGGER Debug Probe J-Link
J-Link-PLUS-500x.png
Temperature Logger
thermostat.png
Software Protection Dongle
copy-protection-dongle.png

MSD

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-500x.png
Camera
camera-500x.png
Mp3 player
mp3-player_500x.png
DVD player
dvd-player-500x.png

MTP

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-500x.png
Camera
camera-500x.png
Mp3 player
mp3-player_500x.png

CDC

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-500x.png

 

 

Fax
fax-500x.png

 

 

Measurement Device
usb-messgeraet-500.png
POS-Terminal
pos-terminal-500x.png

HID

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-500x.png

 

 

Barcode Scanner
Barcode-Scanner-500x.png
Touch Screen
Touchscreen.png
Joystick
industrie-joystick-500x.png

 

 

Fingerprint Sensor
fingerprint-sensor-500x.png

 

 

RFID Reader
rfid-reader.png
3D Mouse
3d-tracker.png
Trackball
Trackball_500x.png
Uninterruptible Power Supply
USV_500x.png
Weighing Scale
weighing-scale.png

Printer

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

Printer
printer-500x.png

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

Conference speakerphone
emUSB-Device-audio-conference-500x.png
Headset
emUSB-Device-audio-headset-500x.png
USB sound card
mini-Soundcard-500x.png

RNDIS

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 to Ethernet Adapter
usb2ethernet-adapter-500x.png
Router/Gateway
ROUTER-500.png

CDC-ECM

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 to Ethernet Adapter
usb2ethernet-adapter-500x.png
Router/Gateway
ROUTER-500.png

SmartMSD

Cross platform, driverless file transfer, virtual file system

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.

Application samples for emUSB-Device SmartMSD

Smart watch
smartwatch-500x3.png
J-Link OB
J-Link-OB-K22-Eval-500x.png

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), Bulk communication component and SmartMSD component can be combined in any way to suit the requirements of any target USB-Device.

Component Description
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)
Mass storage
emUSB-Device SmartMSDVirtual 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
Other communication
emUSB-Device BulkEasy and fast USB communication without any protocol overhead
emUSB-Device AudioEasily handle audio data.
Core layer
emUSB-Device CoreThe emUSB-Device core is the intrinsic USB stack.
Hardware layer
DriverUSB controller driver.

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.

Buyer's Guide

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.

Included

One item included

Optional