Jetson TX1 Dev Board USB Host/Target Mode

The documentation states that the Jetson TX1 J20 connector (A Micro AB connector) can operate in Host or Target mode. We can use this port in Target mode for recovery to program the board and it works.
How can we use this port in Host mode after the Linux OS is booted to connect a USB device (like a USB Hub or USB to serial converter)? How do we setup Host mode for this port?

Micro-AB connectors are known as “On the Go” (OTG). Up to and including USB2 (and USB2-compatible USB3 connectors) the connectors normally only support a type-B cable at one end in a device and a type-A connector going to the host. OTG micro-AB allows type-A or type-B to be inserted, and adds an additional ID pin to detect which type is inserted.

When a type-A cable is inserted, then the Jetson can act as a host (which means a HUB would work). When a type-B cable is inserted, then the Jetson is used as a device. You need to be in host mode with a type-A micro connector for a HUB to work.

Note that on the Jetson the OTG socket ID pin does not have any software detecting type-A/type-B by default. Recovery mode and the supplied micro-B cable manually places the Jetson in recovery mode via holding down the recovery button at startup (the Jetson becomes a custom device wanting type-B). If you look closely at USB micro adapters you can sometimes see an “A” or a “B” stamped on it…type-A is what you want, then things should “just work”.

Thank you so much. This was VERY helpful!