I’m hoping to use the Jetson TX2 NX as a USB webcam. My understanding is that I would need to enable the UVC gadget driver module in order for the Jetson to appear as a webcam on a host PC when connected to the host USB via the Jetson USB 2.0 micro-USB. I’ve successfully setup gadget-serial to show that the interface works.
What is NVIDIAs suggested approach to setting up the Jetson as a uvc-gadget camera?
I’ve come across the post below which suggests that the Jetson family does not support USB isochronous transfers, only bulk mode.
Are you able to confirm that this is the case? And if so, is there any plan for NVIDIA to update the uvc-gadget kernel module provided with L4T to support bulk transfer mode?
Sometimes cameras can operate in bulk mode, but it is correct that isochronous mode is not supported when a Jetson is operating as a device. I don’t know the reason behind this, but I suspect it is because of clocking issues. The UVC driver is for a device plugged in to a host (the common case when a device such as a mouse is plugged into a host), which is the reverse of the host acting as a device (the Jetson would appear to another computer as a device). I believe UVC works with isochronous mode external devices, just not when the Jetson itself becomes a device instead of a host.
@linuxdev is correct. The Jetson can act as a host and interact with isochronous-based devices out of the box without issues. If you want to use it in gadget mode (the Jetson provides video to a host system over USB), then you need to use bulk endpoints. From our experience, using the Jetson in bulk mode for UVC gadget applications works almost the same as using it in isochronous mode, moreover, for the OS it is transparent since the UVC specification allows using the function in bulk mode.