# USB Host UVC Driver [![Component Registry](]( This directory contains USB host UVC driver based on [libuvc]( library. Support for `libuvc` is achieved by implementing adapter between [libusb]( (underling host library used by `libuvc`) and [usb_host]( library targeted for ESP SOCs. ## Usage Reference [uvc_host_example]( is similar to one found in `libuvc` repository with few additions: 1. Before calling `uvc_init()`, `initialize_usb_host_lib()` has to be called in order to initialize usb host library. 2. Since `libuvc` selects highest possible `dwMaxPayloadTransferSize` by default, user has to manually overwrite obatained value to 512 bytes (maximum transfer size supported by ESP32-S2/S3) before passing it to `uvc_print_stream_ctrl()` function. 3. Optionally, user can configure `libusb adapter` by passing appropriate parameters to `libuvc_adapter_set_config()`. ## Known limitations Having only Full Speed USB peripheral and hardware limited MPS (maximum packet size) to 512 bytes, ESP32-S2/S3 is capable of reading about 0.5 MB of data per second. When connected to Full Speed USB host, cameras normally provide resolution no larger than 640x480 pixels. Following two supported formats are the most common (both encoded in MJPEG): * 320x240 30 FPS * 640x480 15 FPS ## Tested cameras * Logitech C980 * CANYON CNE-CWC2


License: Apache-2.0

To add this component to your project, run: add-dependency "espressif/usb_host_uvc^1.0.2"

or download archive


  • ESP-IDF >=4.4
  • Stats

    • Downloaded in total
      Downloaded in total 35.3k times
    • Downloaded this version
      This version: 0 times


    espressif/usb_host_uvc version: 1.0.2 |