Improve this doc
I want to work with

Nvidia Jetson Orin NX 16GB in Xavier NX Devkit NVME

Orin NX

Part number 900-13767-0000-000 is printed on the right side of the SOM bottom side, and can only be observed if the module is taken out of the devkit:

AGX Orin NX 16GB SOM

AGX Orin NX 16GB SOM close up

The Jetson Orin NX 16GB module can be used with the Xavier NX Devkit, which exposes a debug interface on the UART TXD, UART RXD and GND pins. The UART pins are located underneath the Orin NX module. Additionally, a monitor can be connected to the board's HDMI port.

The default internal storage used for provisioning balenaOS on the Jetson Orin NX 16GB is an NVME drive, which needs to be attached to the carrier board prior to booting via a USB flash drive containing the balenaOS flasher image. If instead you would like to use other media, like for example an SSD as main storage, please consult the OS installer target_devices configuration option or the alternative provisioning options section.

Checking your Jetson Orin's UEFI firmware version

You can check which UEFI firmware version your Jetson Orin device is running either by connecting to your device's debug UART interface, or by attaching a display to the Orin's video port.

I want to use the debug UART interface

For this step you will need a USB to TTL converter cable. The USB to TTL converter's pins need to be connected to the UART TXD, UART RXD and GND pins on the Jetson carrier board, which are located underneath the Orin module. The other end of the cable should be plugged into the USB port of your host/development PC. Your host PC can connect to the Jetson device using a serial communication program like minicom

Orin Nano Devkit pinout location

Orin Nano Devkit UART pins

If you are using the UART interface, the UEFI firmware version will be printed in the boot sequence logs:

Orin UEFI uart logs

Alternatively, if booting is stopped in the UEFI menu by pressing Esc, the firmware version will be printed in the top-left corner:

Orin UEFI uart logs

If instead you would like to use a monitor and a keyboard, please expand the section below.

I want to use a monitor
An HDMI cable is necessary for connecting your Jetson Orin NX to a monitor. Once the monitor is attached, the UEFI firmware version will be displayed at the top of the screen:

Orin UEFI display menu


In case the UEFI firmware version on your device is older than v36.3.0, please update its firmware using the following guide:

If for whatever reason checking the UEFI firmware version is not possible, flashing Jetpack 6 using the SDK Manager will guarantee your device has the latest firmware installed.

Once your device's UEFI firmware is v36.3.0 or newer, you can use a USB flash drive to provision it directly with balenaOS.

Booting balenaOS flasher images from a USB flash drive

If the firmware on your device is v36.3.0 or newer, inserting the USB flash drive with the balenaOS flasher image and connecting power to your device will provision the internal storage. In the unexpected event that your device does not boot the balenaOS flasher image from the attached USB flash drive automatically, use the following steps to manually select the USB flash drive for booting:

I want to use the debug UART interface

1) For this step you will need a USB to TTL converter cable. The USB to TTL converter's pins need to be connected to the UART TXD, UART RXD and GND pins on the Jetson carrier board, which are located underneath the Orin module. The other end of the cable should be plugged into the USB port of your host/development PC. Your host PC can connect to the Jetson device using a serial communication program like minicom

Orin Nano Devkit pinout location

Orin Nano Devkit UART pins

2) Power on the device and press Esc when prompted by the UEFI firmware, or F11 to enter the Boot Manager Menu directly:

Orin UEFI boot menu UART

If Esc was pressed, navigate to the Boot Manager Menu:

Orin UEFI Boot Manager on UART

3) Select the attached USB device as boot media:

Orin UEFI USB boot

4) Your device should boot from the attached USB flash drive and provision the internal storage. Once provisioning is complete and the device shuts down, the USB flash drive can be unplugged.

5) Remove and re-connect power to the carrier board.

6) Your device should appear in your application dashboard within a few minutes.

Should you encounter any unexpected issues while provisioning your device, please follow the instructions for our Jetson Flash tool to flash your device in recovery boot mode.

If instead you would like to use a monitor and a keyboard, please expand the section below.

I want to use a keyboard and monitor
An HDMI cable is necessary for connecting your Jetson Orin NX to a monitor.

1) Attach a USB keyboard and a monitor to the device.

2) Power on the device and press Esc when prompted by the UEFI firmware, or F11 to enter the Boot Manager Menu directly:

Interrupting boot in UEFI

UEFI Boot Manager

3) Select the attached USB flash drive as boot media:

UEFI Boot from USB flash drive

4) Your device should boot from the attached USB flash drive and provision the internal storage. Once provisioning is complete and the device shuts down, the USB flash drive can be unplugged.

5) Remove and re-connect power to the carrier board.

6) Your device should appear in your application dashboard within a few minutes.

Should you encounter any unexpected issues while provisioning your device, please follow the instructions for our Jetson Flash tool to flash your device in recovery boot mode.


Post-provisioning UEFI firmware update

Once your device has been provisioned with balenaOS and powered back-on, it will attempt to update the UEFI firmware automatically. The status of the UEFI firmware update process is depicted by a progress bar on the debug UART interface, as well on the display, if connected.

Note: Please do not interrupt the UEFI firmware process by resetting or cutting power to the device.

If you are using the debug UART, the firmware update process will be displayed by a progress bar similar to the one below:

Orin UEFI firmware update progress

If a display is connected to the device, the firmware update process will also be rendered on the screen:

Orin UEFI firmware update progress

Alternative provisioning options

By default, most Jetson Orin devices need an internal storage media and a USB flash drive in order to be provisioned. When using the Jetson Orin NX in a Xavier NX Devkit, an NVMe drive has to be attached to the carrier board before starting the provisioning process.

  • If you would like to use a USB flash drive an NVME drive attached to your device, simply insert the USB flash drive and connect power to the board.

  • If you would like the same USB flash drive or NVMe on which the balenaOS flasher image has been written to be used as both install and boot media, use both the installer.migrate and installer.target_devices configuration options:

    "installer": {
      "migrate": {
        "force": true
      },
      "target_devices":"sda nvme0n1"
    }

    The first medium found in the target_devices list will be used and it will become the main storage of your device once flashing is complete.

    Available target devices are:

    • sda - removable drives like USB flash drives or SSDs
    • nvme0n1 - NVMe drive. Unless overriden, this option is the default for your device
    How do I set this configuration in my balenaOS image?

    1) Make sure you have jq and the balena CLI installed on your host/development PC. You can obtain it from here.

    2) Download the balenaOS image from the balenaCloud dashboard or use the balena CLI to obtain one.

    balena os download jetson-orin-nx-xavier-nx-devkit -o balena.img

    3) Download a configuration file from your balenaCloud dashboard or generate a new one using the balena CLI:

    balena config generate --fleet balena_cloud_org/balena_cloud_fleet --version 6.4.0 --network ethernet --appUpdatePollInterval 10 --output config.json

    Replace balena_cloud_org and balena_cloud_fleet with your actual balena cloud organization and fleet.

    4) Depending your desired provisioning setup, set one or more of the available installer options:

    tmp=$(mktemp)
    jq '.installer.migrate.force |= true' config.json > ${tmp}
    mv ${tmp} config.json
    tmp=$(mktemp)
    jq '.installer.target_devices |= "sda nvme0n1"' config.json > ${tmp}
    mv ${tmp} config.json

    5) Use the balena CLI to inject the modified configuration file in the newly downloaded image:

    sudo balena config inject config.json -d balena.img

    6) Write the balenaOS image (balena.img) to your USB flash drive or NVMe. We recommend using Etcher.

    7) Ensure the power cable is disconnected from your device.

    8) Insert the freshly flashed SD-CARD, USB flash drive or NVMe drive into the carrier board and connect its power cable.

    9) Once provisioning is complete, the board will perform one of the following actions:

    10) Your device should appear in your application dashboard within a few minutes.

If you want to see options for other Orin devices, select the device from the drop down at the top of this page.