# USB Host Maintainers Notes (Introduction)

[中文]

This document contains information regarding the implementation details of the USB Host stack. This document is intended for the maintainers and third-party contributors of the USB Host stack. Users of the USB Host stack should refer to USB Host instead.

Warning

The implementations details of the USB Host stack is categorized as private API. Thus, all layers (other than the USB Host Library) do not adhere to ESP-IDF's versioning scheme (i.e., breaking changes are permitted).

This document is split into the following sections:

- USB Host Maintainers Notes (Design Guidelines)
- USB Host Maintainers Notes (Architecture)
- USB Host Maintainers Notes (DWC_OTG Controller)
- USB Host Driver (USBH)
- USB Host Enumeration Driver (Enum)
- USB Host External Hub Driver (Ext Hub)
- USB Host External Port Driver (Ext Port)

Todo:

- USB Host Maintainers Notes (HAL & LL)

- USB Host Maintainers Notes (HCD)

- USB Host Maintainers Notes (Hub)

- USB Host Maintainers Notes (USB Host Library)

## Introduction

The ESP-IDF USB Host Stack allows the ESP32-P4 to operate as a USB Host. Operating as a USB Host allows the ESP32-P4 to communicate with a wide range of USB devices. However, most USB Host Stack implementations do not run on embedded hardware (i.e., runs on PCs and smartphones), thus have comparatively more resources (i.e., memory and CPU speed).

The implementation of the ESP-IDF USB Host Stack (henceforth referred to as the Host Stack) takes into account the embedded nature of the ESP32-P4 which is reflected in various aspects of the Host Stack's design.

Provide feedback about this document