What problem does it solve? Writing USB firmware for Espressif chips requires choosing between the esp_tinyusb device stack and the USB Host Library, getting Kconfig options, descriptors, PHY setup, and init ordering exactly right. This Skill grounds every API, struct, and config option in the real esp-usb repository so the AI never invents functions and avoids the 12 most common pitfalls. ## Core Features & Use Cases - USB Device Firmware: Build CDC-ACM serial ports, MSC storage (SPI-flash or SD card), HID, composite CDC+MSC devices, console/VFS redirection, NCM/RNDIS Ethernet-over-USB, external PHY, and VBUS monitoring. - USB Host Firmware: Integrate the USB Host Library plus class drivers for CDC-ACM (CP210x/FTDI/CH34x), MSC flash drives, HID keyboards/mice, UVC cameras, and UAC audio. - Verified References: Real function signatures, Kconfig options, chip support tables, and WRONG/CORRECT pitfall examples drawn from actual esp-usb headers and test apps. - Use Case: Ask the AI to make an ESP32-S3 appear as a USB serial port plus mass storage device; it produces the composite IAD descriptors, menuconfig settings, and init code that compiles on the first try. ## Quick Start Ask the AI to create a USB CDC-ACM serial device on an ESP32-S3 using esp_tinyusb, including the component dependency, menuconfig options, and callback-based echo code.