emUSB-Device
High performance USB-Device Software
Overview
emUSB-Device is high-performance USB-device software that is specifically designed for embedded systems. It is written in ANSI C code and enables easy integration of USB functionality into an embedded system. Multiple standard device classes are provided, which allow a system to behave as thought it were standard USB device, as well as ensure that it can communicate with any host (Windows, Linux, and MacOS).
Some examples of supported standard USB devices include mass-storage devices, keyboards, mice, printers, speakers, modems, RS232 serial adapters, and network adapters. Furthermore, proprietary protocols may be implemented using emUSB-Device's Bulk class. Multiple classes can be combined as needed to form a composite device with multiple interfaces that can be used simultaneously.
Key Features
Compliance and Compatibility
emUSB-Device is compliant with USB 1.1, USB 2.0, and USB 3.0, ensuring broad USB-device compatibility across a wide range of application scenarios. This ensures not only compatibility and interoperability, but also performance, flexibility, potential cost savings, a reduction in cases requiring technical support, and extended device product life
A Small Memory Footprint
emUSB-Device uses very little memory, a major advantage for developers working with embedded systems. Its small USB stack size means processors can be smaller, and users benefit from more choices in MCUs, compatibility with legacy hardware, and reduced bill-of-materials costs
Support for Any Speed
emUSB-Device supports all USB speeds, meaning full speed (12 Mb/s), high speed (480 Mb/s), and super supped (5 Gb/s). For developers, this means that one USB stack can be used across a range of products, seamless backward and forward compatibility, optimized performance for each application, hardware scalability, and optimized power efficiency for respective devices
Use Cases
IP-Over-USB
emUSB-Device enables device configuration, control, and communication for data retrieval without the need for host-driver installation on a PC. Standard IP protocols (HTTP, FTP, etc.) can run over a USB cable, enabling plug-and-play web-browser access.

Vendor-Specific Devices
emUSB-Device is customizable for vendor-specific use cases. With features like high-speed data transfer, proprietary control software, and diagnostic tools for devices, it offers impressive levels of both performance and flexibility.

Human-Interface Devices
emUSB-Device can emulate USB devices, such as keyboards, control panels,mice, or custom human-interface devices (HID) devices. In most cases, no drivers are required, which simplifies setup and use.

Components
emUSB-Device consists of three layers : a driver for hardware access, the emUSB-Device core, and at least one USB class driver or a bulk-communication component. USB class drivers (MSD, CDC, HID, RNDIS, IP and MIDI), a bulk-communication component, and a 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 tailorable packages that can be combined and ordered individually. SEGGER recommends purchasing emUSB-Device as a complete package by selecting the emUSB-Device PRO package. This package includes support for the most common use cases, such as HIDs 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 optional.
Ethernet Communication
emUSB-Device IP
Cross-platform IP-Over-USB Communication
emUSB-Device RNDIS
Ethernet over USB communication via Remote Network Driver Interface Specification (RNDIS) protocol
emUSB-Device ECM
Ethernet over USB communication via Communication Device Class (CDC)/Ethernet Control Module (ECM) protocol (CDC-ECM)
emUSB-Device NCM
Ethernet over USB communication via Communication Device Class (CDC)/Network Control Module (NCM) protocol (CDC-NCM)
Mass Storage
emUSB-Device VirtualMSD
Virtual Mass Storage Device (MSD); contains emUSB-MSD
emUSB-Device MSD
Mass Storage Device (MSD) class
emUSB-Device MTP
Mass Storage via Media Transfer Protocol (MTP)
Serial Communication
emUSB-Device CDC
Serial communication over USB via Communication Device Class (CDC)/Abstract Control Module Protocol (CDC-ACM), typically with RS-232 emulation
emUSB-Device HID
Human-Interface Device (HID) class component (e.g. mouse, keyboard)
emUSB-Device Printer
Printer Protocol Class
Multimedia
emUSB-Device Audio
Audio
emUSB-Device Video
USB Video Class
emUSB-Device MIDI
Musical Instrument Digital Interface (MIDI) class
Other
emUSB-Device Bulk
Bulk Class
emUSB-Device DFU
USB Device Firmware Upgrade (DFU) class
emUSB-Device CCID
USB Chip Card Interface Device (CCID) class
Drivers and Supported Controllers
emUSB-Device supports an extensive range of MCUs with on-chip USB controllers. The driver interface has been designed so that it is possible to use the most common USB device controllers, as well as add drivers for USB controllers that have yet to be supported.
Licensing
The software is available under various embedded software license models and can be delivered as source code. All commercial licenses are based on a one-time payment, are royalty-free, and include six months of updates and support from SEGGER’s Embedded Experts.
There are no subscription fees, ensuring predictable and fixed costs over the entire product lifetime.
For non-commercial use, evaluation, and educational purposes, the software is provided under SEGGER’s Friendly License.
