Reference design for Jetson Xavier NX as high speed USB device?


we want to operate Jetson NX Xavier as a high-speed USB device (not host as with the dev-kits) and develop our own carrier board. Is there a reference design or guide available for doing so?


The dev kit already provides this in a way, but there are limitations. The dev kit carrier board schematic is available for a reference, but some background might be useful.

The use of device mode as an example is via the kernel’s Gadget API. This is not a “general” device mode, but is a framework for the standard devices which use the generic driver, e.g., the Human Interface Device class (HID class), or mass storage. However, the hardware design is the same, so the dev kit design for the On The Go (OTG) connector would tend to apply. That OTG connector accepts either a type-A (host) cable, or a type-B (device) cable, and detects via an ID pin which cable type is used. If you use an OTG connector, then this is exactly what you want up to USB 2. A dedicated type-B connector (not OTG) would be close to this.

The software side, if using the Gadget framework, has a running example at:

That example provides a virtual network device which provides network address on the Jetson (with type-B connected to the Jetson), and on a host PC (when type-A is connected to the host). Additionally, there is an example mass storage device example in that same directory which uses loopback to make a file with a README appear as a small disk partition to the host PC end. Both the network example and the mass storage example use “standard” drivers.

If you were to create a custom driver for a device which does not use standard drivers, then the hardware would be the same.

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.