Adafruit_TinyUSB_Arduino icon indicating copy to clipboard operation
Adafruit_TinyUSB_Arduino copied to clipboard

TinyUSB Video not working on ESP32 S3

Open pschatzmann opened this issue 1 year ago • 5 comments

Operating System

Linux

Arduino IDE version

2.3.3

Board

ESP32 S3 Dev Board

ArduinoCore version

3.07

TinyUSB Library version

3.4.0

Sketch as ATTACHED TXT

Pease use your example video_capture Example Sketch

Compiled Log as ATTACHED TXT

compile_log.txt

What happened ?

  • I needed to reboot to get the right Video USB descriptor.
  • Trying out the device with the VLC Media Player displays the device, but opening it gives an error
  • After unplugging and replugging the ESP32S3 the video dscriptor has diappeard

I tried the same with an RP2040 and there it is working w/o any problems.

How to reproduce ?

See above

Debug Log

Please provide instructions how to get to this log. I am not getty any output via CDC

Screenshots

No response

pschatzmann avatar Nov 04 '24 16:11 pschatzmann

seems mine rp2040 video_capture also not working. windows and andriod both can't open rp2040 camera device

umeiko avatar Nov 18 '24 14:11 umeiko

RP2040 + Linux + video_capture.ino + Arduino-Pico core works.

grafik

grafik

[   77.928096] usb 1-2: new full-speed USB device number 3 using xhci_hcd
[   78.414378] usb 1-2: New USB device found, idVendor=2e8a, idProduct=000a, bcdDevice= 1.00
[   78.414388] usb 1-2: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[   78.414392] usb 1-2: Product: Pico
[   78.414395] usb 1-2: Manufacturer: Raspberry Pi
[   78.414398] usb 1-2: SerialNumber: E66038B7133C5D30
[   78.440293] cdc_acm 1-2:1.0: ttyACM0: USB ACM device
[   78.440459] usbcore: registered new interface driver cdc_acm
[   78.440466] cdc_acm: USB Abstract Control Model driver for USB modems and ISDN adapters
[   78.442097] mc: Linux media interface: v0.10
[   78.463797] videodev: Linux video capture interface: v2.00
[   78.481348] usb 1-2: Found UVC 1.50 device Pico (2e8a:000a)
[   78.493684] usbcore: registered new interface driver uvcvideo

On Windows, I can reproduce the failure.

grafik grafik

maxgerhardt avatar Nov 19 '24 22:11 maxgerhardt

I'm looking into the USB packet flow when using Windows, and Windows issues a special URB_FUNCTION_GET_MS_FEATURE_DESCRIPTOR packets, which seems to be linked to Microsoft OS Feature Descriptors. Maybe TinyUSB doesn't return something here that Microsoft Windows definitely needs or wants to know, and this the RP2040 example fails on Windows but not on Linux.

grafik

maxgerhardt avatar Nov 19 '24 22:11 maxgerhardt

There's also a discussion open about it: https://github.com/adafruit/Adafruit_TinyUSB_Arduino/discussions/417

maxgerhardt avatar Nov 19 '24 22:11 maxgerhardt

I'm looking forword this fix, it will be much great if rp2040 can have full uvc support

umeiko avatar Nov 20 '24 11:11 umeiko