Agent Skills: USB Stack Skill

USB device and host stack implementation expertise

UncategorizedID: a5c-ai/babysitter/usb-stack

Install this agent skill to your local

pnpm dlx add-skill https://github.com/a5c-ai/babysitter/tree/HEAD/plugins/babysitter/skills/babysit/process/specializations/embedded-systems/skills/usb-stack

Skill Files

Browse the full folder contents for usb-stack.

Download Skill

Loading file tree…

plugins/babysitter/skills/babysit/process/specializations/embedded-systems/skills/usb-stack/SKILL.md

Skill Metadata

Name
usb-stack
Description
USB device and host stack implementation expertise

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

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