Vendor class
![SEGGER emUSB-Host SEGGER emUSB-Host](/fileadmin/_processed_/6/b/csm_Produkt-Icon_emUSB-Host_03a582a593.png)
Overview
The Vendor Class allows to enumerate and communicate with any USB device. Typically it is used to connect devices running a custom or proprietary protocol. For example our LAN component uses the Vendor Class API to connect with certain Ethernet-over-USB adapters which use a custom protocol.
![jlink bulk](/fileadmin/_processed_/6/6/csm_jlink-bulk_0bf43ca1c0.png)
Key features
- Communicate with any device
- Ideal for custom protocols
- Supports bulk, interrupt, control and isochronous transfers.
- High performance, small overhead
- Small memory footprint in RAM and ROM
Sample Applications emUSB-Host Vendor Class
![J-Link PLUS](/fileadmin/_processed_/2/e/csm_J-Link-PLUS-500x_a95296a5a8.png)
SEGGER Debug Probe J-Link
![thermostat](/fileadmin/_processed_/3/2/csm_thermostat_2d54742476.png)
Temperature Logger
![copy protectio dongle](/fileadmin/_processed_/c/6/csm_copy-protection-dongle_1762153c6e.png)
Software Protection Dongle
![gamepad](/fileadmin/_processed_/1/3/csm_gamepad_3908a1c81f.png)
Gamepad
Requirements
Components required to use emUSB-Host Vendor Class:
- emUSB-Host Vendor Class (included in emUSB-Host PRO package)
- emUSB-Host core (included in emUSB-Host PRO package)
- emUSB-Host target driver (One driver is included in emUSB-Host PRO package)
- Real-time operating system (embOS or other)
Simple user API
- Notification for newly enumerated devices
- Read/Write routines for bulk, interrupt, control and isochronous endpoints.
- Synchronous and asynchronous operations