How to set jetson nano usb3.0 as device mode

I want to use the usb3.0 of jetson nano devkit as the device mode,
In this way, the PC can use the UVC protocol to obtain camera data from the jetson nano devkit.

How to simply configure the usb3.0 interface to run in device mode?

The type-A port is incapable of being used for device mode, the wiring does not exist. To become a device the port would need to be one of (a) micro-OTG (which can detect type-A or type-B plugins), or (b) purely type-B, or (c), USB-C. The Nano’s standard USB3 port is purely type-A.

Even if you have a type-B port, many UVC devices run USB in “isochronous” mode, which is a realtime mode (some might run bulk). This mode is not supported on Jetsons, and so only a bulk mode could be emulated.

The code supporting this does exist though, it is the “gadget” API for the Linux kernel, and some examples (for the micro-OTG port) at “/opt/nvidia/l4t-usb-device-mode”.

The gadget API basically is a framework for standard class devices, and you fill in some of the details, and then the port appears to be that device.

Hi Linuxdev:

Thanks for your reply.
Can the micro usb port of the current nano devkit be set to usb3.0?


No. That port is not capable of anything more than USB2, nor is that port capable of operating in isochronous mode.