NVIDIA Jetson AGX Orin Setup Guide

The grey and chunky front of the NVIDIA Jetson AGX Orin single-board computer development kit.

The Jetson AGX Orin from NVIDIA is a single-board computer that supports modern AI workloads and application development. Follow this guide to set up the Jetson AGX Orin Developer Kit to prepare your NVIDIA Jetson AGX Orin for viam-server installation.


Hardware requirements

You need the following hardware, tools, and software to install viam-server on a Jetson AGX Orin with the Jetson AGX Orin Developer Kit:

Initial setup with display attached:

  1. A Jetson AGX Orin Developer Kit
  2. A PC monitor (HDMI or DisplayPort)
  3. USB keyboard and mouse
  4. A DisplayPort to HDMI adapter/cable, to connect the Orin to the monitor
  5. USB Type-C power supply, to power the Orin (included with the AGX Orin Developer Kit)
  6. (Optional) Ethernet cable, to connect the Orin to the internet without Wifi access

Initial setup in headless mode:

  1. A Jetson AGX Orin Developer Kit

  2. An internet-connected Windows, Linux, or macOS computer

  3. A way to connect the computer to the Orin (for example, the USB Type-A to USB Type-C Cable included with the AGX Orin Developer Kit)

    (Optional) If your computer doesn’t have a USB Type-A port, you may need to attach a USB-C hub or similar device to your computer to connect to the Orin

  4. USB Type-C power supply, to power the Orin (included with the AGX Orin Developer Kit)

  5. (Optional) Ethernet cable, to connect the Orin to the internet without Wifi access

Jetson Orin setup guide

Follow the instructions in Getting Started with Jetson AGX Orin Developer Kit to boot up your Orin for the first time.

If you have already booted up your Orin, start with “Step 2 - Install JetPack Components” to make sure you have installed the latest NVIDIA JetPack components.

Look at the Troubleshooting section below for help navigating these instructions. Once you have reached Next Steps, return to the Viam docs.

Install viam-server

viam-server is distributed for Linux as an AppImage. The AppImage is a single, self-contained binary that runs on 64-bit Linux systems running the aarch64 or x86_64 architectures, with no need to install any dependencies.

To install viam-server :

  1. Go to the Viam app and add a new machine by providing a name in the New machine field and clicking Add machine. If this is your first time using the Viam app, you must create an account first.

    The ‘First Location’ page on the Viam app with a new machine name in the New machine field and the Add machine button next to the field highlighted.

  2. Navigate to the CONFIGURE tab and find your machine’s card. An alert will be present directing you to Set up your machine part. Click View setup instructions to open the setup instructions. Select Linux as your system’s OS, Aarch64 as your Linux architecture, and RDK as the RDK type.

  3. Follow the instructions listed to install viam-server on your Linux computer.

  4. Once you have followed the setup instructions, viam-server is installed and running. Wait for confirmation that your computer has successfully connected.

By default, viam-server will start automatically when your system boots, but you can change this behavior if desired.

Camera setup

  1. Install E-Con Systems e-CAM20_CUOAGX AR0234 driver. Consult the instructions you received when purchasing your device for more information.
  2. Ensure the driver has successfully installed by running sudo dmesg | grep ar0234. The output should include ar0234 Detected Ar0234 sensor.
  3. Connect the AR0234 camera module and daughterboard to the J509 port located at the bottom of the Developer Kit.
  4. Configure the camera as a webcam.

Serial communication protocol tips

To change the pins that are in use for modes of serial communication, launch jetson-io.py with the following commands:

cd ~
sudo /opt/nvidia/jetson-io/jetson-io.py

In the interactive menu that opens, select Configure Jetson 40 Pin Header and Configure header pins manually to select and deselect pins to enable use. For a Jetson AGX Orin, reference the following:

Data Sheet IDGPIO Header PinViam Bus IDjetson-io.py ID/dev Path IDNotes
I2C_GP2_DAT, I2C_GP2_CLK3, 57i2c2/dev/i2c-2
I2C_GP5_DAT, I2C_GP5_CLK27, 281i2c8/dev/i2c-8
SPI1_DOUT, SPI1_DIN, SPI1_SCK, SPI1_CS0, SPI1_CS119, 21, 23, 24, 260spi1/dev/spidev0.0, /dev/spidev0.1Must be enabled to use SPI bus, must add spidev to /etc/modules

Note that I2C buses do not need to be configured through jetson-io.py. See NVIDIA’s documentation on Configuring the Jetson Expansion Headers for more information.

Next steps

Troubleshooting

  • NVIDIA Step 1 - Run through Ubuntu Setup (oem config)

    • Headless Mode Tips:
      • Once you reach step e which instructs you to connect through the host serial port, the instructions to connect are immediately under step e. Follow those steps according to the type of computer you’re using.
      • After running sudo screen, note that the Password input prompt immediately following refers to your computer’s system password.
    • “Jetson Initial configuration” (oem-config) Command Prompt Tips:
      • App Partition: default is fine.
      • Nvomodel mode: default is fine.
      • Chromium install: not necessary, you can skip.
      • Signing into online accounts: not necessary, you can skip.
  • NVIDIA Step 2 - Install JetPack Components

    • After running sudo apt dist-upgrade, if you are prompted with “Package distributer has shipped an updated version” hit y to install the updated version.
    • Do not run sudo apt install nvidia-jetpack in your terminal until after sudo reboot has completed.
    • If your board is powered off after sudo reboot has completed and refuses to turn on, disconnect and reconnect the power cable.
    • It is normal for JetPack installation to take a very long time, up to an hour or more.
  • If you do not see an interactive menu after launching jetson-io.py, try resizing your window to a large size.

You can find additional assistance in the Troubleshooting section.

You can also ask questions in the Community Discord and we will be happy to help.