Jetson Orin Nano

From Waveshare Wiki
Jump to: navigation, search
Jetson Orin Nano
Jetson Orin Nano01.jpg
Jetson Orin Nano Developer Kit
Jetson Orin Nano02.jpg

1024-core N-VIDIA Ampere architecture GPU with 16(4GB)/32(8GB) Tensor Cores
CPU: 6-core Arm® Cortex®-A78AE v8.2 64-bit CPU, 1.5MB L2 + 4MB L3
4GB 64-bit LPDDR5, 32GB/s
{{{name3}}}

{{{name4}}}

{{{name5}}}

{{{name6}}}

Overview

Introduction

Module

N-VIDIA® Jetson Orin™ Nano is available in 4GB and 8GB versions, up to 20 TOPS/40 TOPS and 40/80X the performance of the last generation for multiple concurrent AI inference pipelines. Also with high-speed interface support for multiple sensors, it is an ideal solution for a new age of robotics.

Official Kits

Jetson Orin Nano Developer Kit is an official N-VIDIA development kit based on the Jetson Orin Nano 8GB module that delivers up to 40 TOPS of AI performance. The difference between the onboard module and the production version of the Jetson Orin Nano 8GB module is that this kit adds a TF card slot, users can use a TF card for system installation.

User Guide

If you buy a kit with a screen, you just need to connect the screen and turn it on to configure it.
If you purchase the kit without a screen, it does not come with username or password, and you need to install putty to log in. Connect the power supply to the device, and then connect it to the PC with Type-C interface.
Open the device manager to view the new COM port.
Com22.png
Pytty.png
Then just follow the prompted information to boot up and configure it.

Programming

  • Burning the system requires an Ubuntu 20.04 or Ubuntu 18.04 host or virtual machine.

Preparation

  1. Jetson Orin NX board
  2. Ubuntu20.04 virtual machine (or computer host)
  3. Power adapter
  4. Jumper caps (or jumper wires)
  5. USB cable (Micro USB interface for data transmission)

Hardware Configuration (Enter Recovery Mode)

JETSON-XAVIER-NX-DEV-KIT-re.png

  • Short the FC REC and GND pins with jump caps or Dupont wires, positioned as shown above, located under the module.
  • Connect the DC power supply to the round power port, wait a moment.
  • Connect the micro USB port of the Jetson board to the Ubuntu host with a USB cable (note that it is a data cable).

Software Cofiguration

  • Open the Ubuntu system and open the browser to download SDK Manager.
  • After downloading, we enter the download path to install, and input the following content on the terminal:
sudo dpkg -i sdkmanager_1.6.1-8175_amd64.deb (Enter according to your version)
  • After installing, the system may report the dependency file can not be found, and you can input the following commands to settle this issue:
sudo apt --fix-broken install
  • Open Ubuntu and run SDK Manager.
  • Click "LOGIN", log in to your NVIDIA account, the browser pops up the link, and enter your registered email and password to log in.

LOGIN NVIDIA.jpg

  • Then we successfully log in to SDK Manager.

LOGIN NVIDIA02.png

System Installation

  • Open the Ubuntu computer terminal and run sdkmanager to open the software.
  • Log in.
  • If the Jetson board is properly recognized as shown in the following figure, if it is connected but not displayed, please click refresh.

JETSON-XAVIER-NX-DEV-KIT-re02.png

  • Select the Jetson Orin Nano option for the development board type, and select the 8GB version or 4GB version according to the actual situation (if you are using the official kit, select Developer Kit).
  • In the JetPack option, select the latest supported systems, do not check other SDKs, and then click Continue.

JETSON-XAVIER-NX-DEV-KIT-re03.png

  • Select Jetson OS and remove the option for Jetson SDK Components. Check the first protocol at the bottom.

JETSON-XAVIER-NX-DEV-KIT-re04.png

  • Finally, click "Continue" and wait for the programming to complete.
  1. Here, the development board type is selected by default. Be careful not to make a mistake when selecting the type of development board earlier.
  2. Here select Manual Setup-Jetson ... (Different boards with different suffixes).
  3. Here you can choose runtime or preconfig. If you choose runtime, you need to manually configure the system (username, password, language, etc.) later. If you choose preconfig, you can fill in the username and password (you can define it yourself), and nano will be automatically configured during the startup process.

JETSON-XAVIER-NX-DEV-KIT re05.png

  • After the programming is completed, remove the jumper cap of the baseboard, connect to the monitor, power on again, and follow the prompts to configure the boot (if it is pre-config set, it will directly enter the system after power on).

JETSON-XAVIER-NX-DEV-KIT re06.png

Remote Login

Preparation

  • Connect to the Jetson Orin Nano with a network cable, and then connect it to the LAN port of the router.
  • Make sure the Jetson Orin Nano is under a router or on the same network segment as your computer.

Get the IP address of Jetson Orin Nano

  • Method 1: login to the router to find the IP address of the Jetson Orin Nano.
  • Method 2: you can use some LAN IP scanning tools, here is the Advanced IP Scanner as an example demo.
  1. Run the Advanced IP Scanner
  2. Click the Scan button to scan for IP addresses on the current LAN.
  3. Find all IP addresses with NVIDIA in the Manufacturer and log them.
    Jetson Orin IP.png
  4. After powering up the device and ensuring that it is connected to the network.
  5. Re-click the Scan button to scan the current IP addresses on the LAN.
  6. Excluding all previously recorded IP addresses of Manufacturers with the word NVIDIA in them, what remains is the IP address of your NVIDIA.
  • Method 3: Query Screen IP
  1. Connect the Jetson Nano to an Internet cable or install a wireless card to connect to WIFI, enter ifconfig in the terminal to check the IP address of the Jetson Orin Nano.
  2. Wired Network.png

Login with MobaXterm

Terminal Window
  1. Download MobaXterm remote login software, and you should unzip it before using it.
  2. Open the MobaXterm remote login software, select Session, and ssh.
  3. In the Remote host, enter the IP address 192.168.15.102 (according to your actual IP to fill in), fill in the completion, and click ok.
    Jetson Orin Moba3.png
  4. Click "Accept", and input the user name and password. (When entering the password, the screen does not change is a normal phenomenon, click enter to confirm it.)
    Jetson Orin Moba4.png

Configure VNC Server

  • Jetson Nano uses vino as the default VNC server, and the default setting requires modification.
  1. Configure VNC Server
    gsettings set org.gnome.Vino require-encryption false
    gsettings set org.gnome.Vino prompt-enabled false
    gsettings set org.gnome.Vino authentication-methods "['vnc']"	
    gsettings set org.gnome.Vino lock-screen-on-disconnect false	
    gsettings set org.gnome.Vino vnc-password $(echo -n "mypassword"|base64)
    • Note: Do not use "sudo" to run the above commands, "mypassword" is the password for connecting the VNC.
  2. Set desktop to boot on startup. Create a self-starting file in the .config directory.
     mkdir -p .config/autostart	
    sudo vim ~/.config/autostart/vino-server.desktop

    Add the following content:

    [Desktop Entry]
    Type=Application	
    Name=Vino VNC server	
    Exec=/usr/lib/vino/vino-server	
    NoDisplay=true
  3. View the current manager:
    cat /etc/X11/default-display-manager
  4. Edit the file:
    sudo vim /etc/gdm3/custom.conf
  5. Remove the comments from the following three lines. Modify the 'AutomaticLogin' line with your username.
    WaylandEnable=false
    AutomaticLoginEnable = true	
    AutomaticLogin = waveshare
  6. Reboot Jetson Nano
    sudo reboot
Download & Install VNC Viewer
Use VNC Viewer to Remotely Connect to Orin Nano
  1. Enter VNC Viewer, input the IP address of Jetson Nano, and press "Enter" to confirm. For example:
    192.168.15.102
  2. Input the VNC login password set earlier and click ok:
  3. At this point you have successfully logged into Orin Nano.

SDK Installation

Jetpack mainly includes system images, libraries, APIs, developer tools, examples, and some documentation.
The SDK includes TensorRT, cuDNN, CUDA, Multimedia API, Computer Vision, and Developer Tools.

  • TensorRT : High-performance deep learning inference runs for image classification, segmentation, and object detection neural networks, which speeds up deep learning inference and reduces the runtime memory footprint of convolutional and deconvolutional neural networks.
  • cuDNN: The CUDA deep neural network library provides high-performance primitives for deep learning frameworks, including support for convolution, activation functions, and tensor transforms.
  • CUDA : The CUDA Toolkit provides a comprehensive development environment for C and C++ developers building GPU-accelerated applications. The toolkit includes a compiler for NVIDIA GPUs, math libraries, and tools for debugging and optimizing application performance.
  • Multimedia API: The Jetson Multimedia API provides a low-level API for flexible application development.
  • Computer Vision: VPI (Vision Programming Interface) is a software library that provides computer vision/image processing algorithms implemented on PVA1 (Programmable Vision Accelerator), GPUs, and CPUs, where OpenCV, the leading open source library for computer vision, image processing, and machine learning, now features GPU acceleration for real-time operation, where VisionWorks2 is a software development kit for computer vision (CV) and image processing.
  • Developer Tools: Developer Tools CUDA Toolkit provides a comprehensive development environment for C and C++ developers building GPU-accelerated applications. The toolkit includes a compiler for NVIDIA GPUs, math libraries, and tools for debugging and optimizing application performance.

These are some of the features of the SDK.

Install SDK with Commands

When using SDK Manager to install SDK, there is no need to set nano to recovery mode, which means there is no need to short the pins.

  • Powering up the Nano normally.
  • After the Jetson Nano enters the system and boots normally, use the USB cable to connect the Jetson Nano's Micro USB port to the Ubuntu host computer.
  • Run the sdkmanager command on the Ubuntu host computer to open SDK Manager (SDK Manager needs to be installed first).
  • Similar to the previous operation of programming the system, the difference is: not to check the OS option, check the SDK option, and then continue to the installation.
  • After downloading the resources, you will be prompted to fill in the username and password, just fill in the username and password of the nano system.
  • Wait for the SDK to be installed successfully.
sudo apt update
sudo apt install nvidia-jetpack

Dual Cameras Preview

Open two terminals and respectively run the following two demos:

 gst-launch-1.0 nvarguscamerasrc sensor-id=0 ! "video/x-raw(memory:NVMM), width=(int)1920, height=(int)1080,format=(string)NV12, framerate=(fraction)30/1" ! nvvidconv ! xvimagesink sync=false 
 gst-launch-1.0 nvarguscamerasrc sensor-id=1 ! "video/x-raw(memory:NVMM), width=(int)1920, height=(int)1080,format=(string)NV12, framerate=(fraction)30/1" ! nvvidconv ! xvimagesink sync=false

FAN

Install jtop:

sudo apt install python3-pip
sudo pip3 install jetson-stats
sudo reboot

Input after booting:

jtop 

Maximize the window and use the mouse to select "CTRL 6." Mouse-select the "manual" option within "profiles," then click the [+] symbol next to "speed" to adjust the fan intensity.

RTC

  • If you don't want the system to be reset, you need to keep the carrier board connected to the power or connect a battery to the battery holder.

Modify the RTC time:

sudo hwclock --set --date="01/01/2001 11:00"

Query the RTC time:

sudo hwclock -r

Update RTC time to system time:

sudo hwclock -s

Query system time:

date

AI for Beginners

Setup CUDA Environment

  • This tutorial is based on Jetpack5.1.1. The tensorflow version is 2.12.0+nv23.05, the pytorch version is v2.0.0, and the torchvsion version is v0.14.1.
  1. Check CUDA version, "command not found" is shown, and you need to configure the following environment:
    sudo apt update
    sudo apt install nvidia-jetpack
    nvcc -V
    

    Note: the command "nvcc" we used here can not view the version. You can enter the /usr/local/ directory to see if there is a CUDA directory.
    If not, refer to the SDK (including CUDA) installation, and then configure the environment after the installation is complete.

  2. Setup environment variables.
    sudo vim .bashrc
    Add the following at the end of the file:
    export LD_LIBRARY_PATH=/usr/local/cuda/lib64
    export PATH=$PATH:/usr/local/cuda/bin
    
  3. Update the environment variables:
    source .bashrc
  4. View the CUDA version again.
    nvcc -V
    

    Jetsonnano-environment.png

Tensorflow GPU Environment Setup

  1. Install the required package:
    sudo apt-get install libhdf5-serial-dev hdf5-tools libhdf5-dev zlib1g-dev zip libjpeg8-dev liblapack-dev libblas-dev gfortran
    sudo pip3 install -U pip testresources setuptools==49.6.0
    
  2. Install python dependency:
    sudo pip3 install -U --no-deps numpy==1.19.4 future==0.18.2 mock==3.0.5 keras_preprocessing==1.1.2 keras_applications==1.0.8 gast==0.4.0 protobuf pybind11 cython pkgconfig packaging
    
  3. Install Tensorflow (offline installation is recommended as the online installation may be failed.)
    sudo pip3 install --pre --extra-index-url https://developer.download.nvidia.com/compute/redist/jp/v46 tensorflow
    
  4. Offline installation. You can log in to the NVIDIA website to download TensorFlow (Take jetpack5.1.1 TensorFlow2.12.0+nv23.05 as the example, and the Firefox browser is recommended.)
    pip3 install tensorflow-2.12.0+nv23.05-cp38-cp38m-linux_aarch64.whl
    
  5. After installing. you can check whether the installation is successful, and you can input the following commands on the terminal:
    python3
    import tensorflow as tf
    
  6. View the version information:
    tf.__version__

    Jetson Tensorflow 01.png

Pytorch Environment Setup

Pytorch Installation

  1. Login to the NVIDIA website to download Pytorch first. Here we take PyTorch v2.0.0 as an example.
  2. Download the dependency:
    sudo apt-get install libjpeg-dev zlib1g-dev libpython3-dev libavcodec-dev libavformat-dev libswscale-dev libopenblas-base libopenmpi-dev
    
  3. Install Pytorch:
    sudo pip3 install torch-2.0.0+nv23.05-cp38-cp38-linux_aarch64.whl 
    
  4. Verify whether the installation is successful.
    python3
    import torch
    x = torch.rand(5, 3)
    print(x)
    
  5. View the version:
    import torch
    print(torch.__version__)
    

Torchvision Installation

  1. Torchvision version should match the version of Pytorch, we have installed Pytorch version 2.0.0, and Torchvision installs the v0.14.1 version.
    TorchInstall 01.jpg
  2. Download and install torchvision:
    git clone --branch v0.14.1 https://github.com/pytorch/vision torchvision
    cd torchvision
    export BUILD_VERSION=0.14.1
    sudo python3 setup.py install
    
  3. Verify whether the Torchvision installation is successful:
    python3
    import torchvision
    
  4. View the version:
    import torchvision
    print(torchvision.__version__)
    

NVIDIA Official Resource

Support



Technical Support

If you need technical support or have any feedback/review, please click the Submit Now button to submit a ticket, Our support team will check and reply to you within 1 to 2 working days. Please be patient as we make every effort to help you to resolve the issue.
Working Time: 9 AM - 6 PM GMT+8 (Monday to Friday)