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 though it were a 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 speed (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
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, MTP, 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)

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

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

emUSB-Device is available under various embedded software license models and delivered in object and source-code packages. With a wide range of licensing options, emUSB-Device can fulfill both commercial and technical requirements.
All licenses are obtained through one-time payments. emUSB-Device is royalty free and is not subscription based, meaning that software is a part of equipment expenses, keeping costs static. emUSB-Device licenses include six months of updates and support from SEGGER's Embedded Experts.
* Applies only to a second license and any additional license(s) purchased for the same product under the Single Product License and Single Developer License.
Friendly License
emUSB-Device is also available under SEGGER's Friendly License, which allows free-of-charge use for non-commercial, evaluation, and educational purposes. With this license, the product is fully functional and there are no technical limitations. To download the license, please visit https://www.segger.com/downloads/emusb-device/.
Get in touch with us
Have questions or need assistance? Our Embedded Experts are here to help!
Reach out to us for:
- Licensing quotes
- Technical inquiries
- Project support





