USB Stack Skill

SkillDev tools

USB device and host stack implementation expertise

Instructions available. Your AI can read the instructions. Execution depends on the setup they require.

Add ahel to your AI once: Claude, ChatGPT, Cursor, Claude Code or Codex. Then ask it to use this.

Then ask your AI: use the USB Stack Skill skill

What this skill tells your AI

The instructions your AI receives, as published by a5c-ai/babysitter in library/specializations/embedded-systems/skills/usb-stack/SKILL.md and read by ahel’s review.

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

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

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

usb:
  vid: 0x1234
  pid: 0x5678
  device_class: cdc | hid | msc | dfu | composite
  speed: full | high
  endpoints:
    - ep1_in: bulk, 64
    - ep1_out: bulk, 64

Signals

GitHub stars
2k
Forks
112
Last commit
Sep 2026
Advanced
Item type
skill
Key
usb-stack
Source
github.com/a5c-ai/babysitter