usb-stack
Included with Lifetime
$97 forever
USB device and host stack implementation expertise
Communication Protocols
What this skill does
# USB Stack Skill
## Overview
This skill provides USB device and host stack implementation expertise for embedded systems, covering descriptor generation, device class implementation, and protocol debugging.
## Capabilities
### USB Descriptor Generation
- Device descriptor configuration
- Configuration descriptors
- Interface descriptors
- Endpoint descriptors
- String descriptors
- BOS descriptors (USB 3.x)
### Device Class Implementation
- CDC (Communications Device Class)
- HID (Human Interface Device)
- MSC (Mass Storage Class)
- DFU (Device Firmware Upgrade)
- Audio class
- Video class
- Custom class implementation
### USB Stack Configuration
- TinyUSB configuration
- STM32 USB stack setup
- NXP USB stack integration
- Zephyr USB subsystem
- Endpoint buffer management
### Enumeration and Debugging
- Enumeration sequence debugging
- Protocol analysis
- USB analyzer integration
- Descriptor validation
- Compliance testing
### Advanced Features
- Composite device configuration
- USB power delivery
- High-speed/full-speed selection
- Isochronous transfers
- Interrupt transfers
- Bulk transfers
### DFU Implementation
- DFU bootloader design
- Runtime DFU mode
- Detach and download
- Upload capability
- Manifest phase handling
## Target Processes
- `device-driver-development.js` - USB driver implementation
- `bootloader-implementation.js` - USB DFU bootloader
- `hw-sw-interface-specification.js` - USB interface specification
## Dependencies
- TinyUSB or vendor USB stack
- USB protocol analyzers
- usb-tools (lsusb, usbmon)
## Usage Context
This skill is invoked when tasks require:
- USB device implementation
- Device class development
- USB bootloader creation
- Protocol debugging
- Descriptor optimization
## Device Class Examples
### CDC Virtual COM Port
```c
tusb_desc_interface_t cdc_interface = {
.bLength = sizeof(tusb_desc_interface_t),
.bDescriptorType = TUSB_DESC_INTERFACE,
.bInterfaceNumber = 0,
.bAlternateSetting = 0,
.bNumEndpoints = 2,
.bInterfaceClass = TUSB_CLASS_CDC,
.bInterfaceSubClass = CDC_COMM_SUBCLASS_ACM,
.bInterfaceProtocol = CDC_COMM_PROTOCOL_NONE,
.iInterface = 0
};
```
### HID Report Descriptor
```c
uint8_t const hid_report_desc[] = {
HID_USAGE_PAGE(HID_USAGE_PAGE_DESKTOP),
HID_USAGE(HID_USAGE_DESKTOP_MOUSE),
HID_COLLECTION(HID_COLLECTION_APPLICATION),
HID_USAGE(HID_USAGE_DESKTOP_POINTER),
HID_COLLECTION(HID_COLLECTION_PHYSICAL),
// ... buttons and axes
HID_COLLECTION_END,
HID_COLLECTION_END
};
```
## Configuration
```yaml
usb:
vid: 0x1234
pid: 0x5678
device_class: cdc | hid | msc | dfu | composite
speed: full | high
endpoints:
- ep1_in: bulk, 64
- ep1_out: bulk, 64
```
Related in Communication Protocols
protocol-analyzer
IncludedSerial protocol analysis and debugging for common embedded interfaces (I2C, SPI, UART)
Communication Protocols
wireless-protocols
IncludedEmbedded wireless protocol implementation (LoRa, Zigbee, Thread, Matter)
Communication Protocols
can-bus
IncludedCAN/CAN-FD bus analysis and development expertise
Communication Protocols