USB Device Solution

[中文]

USB Audio Device Solution

The USB audio device solution is based on the UAC 2.0 (USB Audio Class) protocol standard, which allows Espressif SoCs to function as audio devices, providing convenient and high-quality audio transmission capabilities. For example, it can be used as a microphone or speaker connected to a computer or other USB audio-enabled devices for audio input and output.

Features:

  • Supports UAC 2.0

  • Supports various audio formats and sampling rates

  • Supports audio input and output

Hardware:

  • Chip: ESP32-S2, ESP32-S3

  • Peripheral: USB-OTG

USB Video Device Solution

The USB Video device solution is based on the UVC (USB Video Class) protocol standard, which allows Espressif SoCs to function as video devices, providing convenient and high-quality video transmission capabilities. It can be applied to USB doorbell cameras or USB + Wi-Fi dual-mode network cameras.

Features:

  • Supports UVC 1.5

  • Supports synchronous and bulk transfer modes

  • Supports functioning as a virtual camera device

Hardware:

  • Chip: ESP32-S2, ESP32-S3

  • Peripheral: USB-OTG

Links:

USB Mass Storage Device Solution

The USB mass storage device solution is based on the MSC (Mass Storage Class) protocol standard. It can also be combined with Wi-Fi functionality to build wireless shared storage devices such as USB wireless flash drives, card readers, digital music players, and digital media players.

Features:

  • USB-Wi-Fi bidirectional access

  • Multiple device connections

  • Emulates a USB flash drive

Hardware:

  • Chip: ESP32-S2, ESP32-S3

  • Peripheral: USB-OTG

Links:

USB HID Device Solution

The USB HID device solution is based on the HID (Human Interface Device) protocol standard. It can function as a USB keyboard, mouse, gamepad, and other devices to enable human-computer interaction. When combined with wireless features such as Wi-Fi, Bluetooth, and ESP-Now, it can also be used to build wireless HID devices.

Features:

  • Supports various HID devices

  • Supports custom HID devices

  • Supports both USB HID and BLE HID modes

Hardware:

  • Chip: ESP32-S2, ESP32-S3

  • Peripheral: USB-OTG

Links:

USB Drag-and-Drop OTA Upgrade

Based on esp-tinyuf2 as a virtual USB flash drive, this solution supports drag-and-drop UF2 firmware onto the flash drive for OTA updates. It also supports mapping NVS data to files on the flash drive, allowing modification of NVS by modifying the files.

Features:

  • OTA updates by dragging and dropping UF2 firmware

  • Modifying NVS through virtual file manipulation

Hardware:

  • Chip: ESP32-S2, ESP32-S3

  • Peripheral: USB-OTG

Links:

USB Extended Screen Solution

The USB extended screen solution allows a device to function as an additional display through a USB connection. It supports data transmission over a single USB cable, including audio, touch information, and video. This solution can be applied in various scenarios such as computer monitors, signature pads, and extended display setups.

Host-side Driver

Since USB 2.0 does not support HDMI transmission, the host must transmit image data to the device. Currently, this solution only supports the Windows platform, utilizing the Windows driver model, [IDD (Indirect Display Driver)](https://learn.microsoft.com/en-us/windows-hardware/drivers/display/indirect-display-driver-model-overview). This driver captures the desktop image from Windows. Due to USB’s speed limitations, the image is first compressed into formats like JPEG, and then transmitted through the USB vendor interface. Each image frame is prepended with a 16-byte header containing details such as image width, height, format, length, and compression type.

Features

  • Supports image transmission via USB

  • Supports audio transmission via USB

  • Supports touch data transmission via USB

Hardware

  • Chips: ESP32-S2, ESP32-S3, ESP32-P4

  • Peripheral: USB-OTG

Links