Board Automation

The NVIDIA® Jetson AGX Orin™ developer kit carrier boards have a micro USB port, and the NVIDIA® Jetson Orin™ Nano developer kit carrier boards expose 12 pins from J14 that you can use for board automation and UART debug output.

You can control a Jetson AGX Orin Developer Kit carrier board with an integrated board automation solution called TOPO. TOPO connects to the host PC via a full-speed USB interface. Through this interface the host PC can:

  • Communicate with the NVIDIA® Jetson™ UART port

  • Automate commands like power on, power off, reset, and recovery

Host System Setup

These instructions are for users of Ubuntu 18.04 or Ubuntu 20.04, but can be adapted for other distributions.

The software for interacting with the target carrier board can be found in Linux_for_Tegra/tools/board_automation/.

To eliminate the need to use sudo to interact with the carrier board, NVIDIA recommends that you create a udev rule:

  • To create a udev rule for a Jetson AGX Orin Developer Kit target:

    1. Add the following into /etc/udev/rules.d/99-mcurule.rules:

      SUBSYSTEM=="usb", ATTRS{idVendor}=="0955", ATTRS{idProduct}=="7045", GROUP="plugdev", TAG+="uaccess"
      
    2. Reload rules:

      $ sudo udevadm control --reload-rules && sudo udevadm trigger
      
  • To create a udev rule for a Jetson Orin Nano Developer Kit target:

    1. Add the following into /etc/udev/rules.d/99-mcurule.rules:

      SUBSYSTEM=="usb", ATTRS{idVendor}=="0955", ATTRS{idProduct}=="7020", GROUP="plugdev", TAG+="uaccess"
      
    2. Reload the rules:

      $ sudo udevadm control --reload-rules && sudo udevadm trigger
      

Basic Board Control

Following are some examples that demonstrate typical uses of the boardctl script to help you get started. You can run them as shown from Linux_for_Tegra/, the directory in which you normally execute the flash script.

Note that the power_on and recovery commands implicitly power cycle the target.

For Jetson AGX Orin

  • Recovery: power off, force recovery, and power on:

    $ ./tools/board_automation/boardctl -t topo recovery
    
  • Power off:

    $ ./tools/board_automation/boardctl -t topo power_off
    
  • Power off, then power on:

    $ ./tools/board_automation/boardctl -t topo power_on
    
  • Reset (no effect on power state):

    $ ./tools/board_automation/boardctl -t topo reset
    

For Jetson Orin Nano

The J14 button header exposes the following pins externally for board control:

  • Pin 8 - System Reset

  • Pin 10 - Fore Recovery

  • Pin 12 - Power button

UART Access

You can access UART through the following:

  • For NVIDIA® Jetson AGX Orin™, TOPO exposes four serial ports (/dev/ttyACM<n>).

  • For NVIDIA® Jetson Orin™ Nano, connect 3.3V UART-to-USB adapter to pins on the J14 button header as shown below:

    1. Jetson UART2 TXD - Pin 3 (connect to UART_RXD of adapter)

    2. Jetson UART2 RXD - Pin 4 (connect to UART_TXD of adapter)

    3. Jetson GND - Pin 11 (connect to GND of adapter)

Use the following commands to determine which serial port supports the TOPO or FTDI console. For the correct port, the commands display values similar to the ones shown.

  • For Jetson AGX Orin:

$ sudo udevadm info -q all -n /dev/ttyACM0 | grep -E "(ID_MODEL|ID_VENDOR)"
E: ID_VENDOR_ID=0955
E: ID_MODEL_ID=7045
E: ID_VENDOR_FROM_DATABASE=NVIDIA Corp.
E: ID_VENDOR=NVIDIA
E: ID_VENDOR_ENC=NVIDIA
E: ID_MODEL=Tegra_On-Platform_Operator
E: ID_MODEL_ENC=Tegra\x20On-Platform\x20Operator
  • For Jetson Orin Nano:

$ sudo udevadm info -q all -n /dev/ttyACM0 | grep -E "(ID_MODEL|ID_VENDOR)"
E: ID_VENDOR_ID=0955
E: ID_MODEL_ID=7020
E: ID_VENDOR_FROM_DATABASE=NVIDIA Corp.
E: ID_VENDOR=NVIDIA
E: ID_VENDOR_ENC=NVIDIA
E: ID_MODEL=Tegra_On-Platform_Operator
E: ID_MODEL_ENC=Tegra\x20On-Platform\x20Operator

The console port is physically connected to UART3 (the debug UART). Typical usage is:

$ minicom -D /dev/ttyACM0