Lesson 03: Configure the Jetson Orin Nano Board
3.1 Configure Jetson Expansion Headers
Each Jetson developer kit includes several expansion headers and connectors (collectively, “headers”):
- 40‑pin expansion header: Lets you connect a Jetson developer kit to off-the-shelf Raspberry Pi HATs (Hardware Attached on Top) such as Seeed Grove modules, SparkFun Qwiic products, and others. Many pins can be used as GPIO or as “special function I/O” (SFIO), such as I2C, I2S, etc.
- CSI connector: Pins on this connector can be used as GPIO or as “special function I/O” (SFIO), such as DMIC, DSPK, I2S, etc.
- M.2 Key E slot: Pins on this connector can be used as GPIO or as “special function I/O” (SFIO) such as I2S.
NVIDIA provides the Jetson Expansion Header Tool (also known as Jetson‑IO). This Python script runs on a Jetson developer kit and lets you change pin configurations through a graphic user interface. Jetson‑IO modifies the Device Tree Blob (DTB) firmware so that a new configuration for the expansion headers is applied when the developer kit is rebooted.
Running Jetson-IO
To launch Jetson‑IO, enter this command on the developer kit:
sudo /opt/nvidia/jetson-io/jetson-io.py
Main Screen: Selecting a Header:
When you launch the Jetson‑IO, it displays its main screen, which lists the expansion headers supported on your Jetson device. For example, on Jetson Orin NX, the main screen looks like this:
Command Line Interface
If you prefer configuring the headers from the command line instead of menus, NVIDIA provides a set of command line utilities that offer the same functionality. The following sections describe these utilities.
config-by-pin: View Header Configuration by Pin
Displays the current configuration of supported headers:
config-by-pin.py [<options>]
The command line options specify the part(s) of the configuration to display. If no options are specified, the entire configuration is displayed.
The following table describes the command line options.
3.2 Power Mode
Jetson Orin is designed to optimize power efficiency with a high-efficiency Power Management Integrated Circuit (PMIC), voltage regulators, and power tree. It supports multiple optimized power budgets, such as 10 watts, 15 watts, and 30 watts. For each power budget, several configurations are possible with various CPU frequencies and the number of cores online.
Capping the memory, CPU, and GPU frequencies and several online CPU, GPU TPC, DLA, and PVA cores at a prequalified level confines the module to the target mode. The configurations predefined by NVIDIA are as follows.
The MAXN mode is an unconstrained power mode that allows a maximum number of cores and clock frequency for CPU, GPU, DLA, PVA, and SOC engines like NVENC, NVDEC, etc. However, this mode does not guarantee the best performance for all use cases because hardware throttling is engaged when the total module power exceeds the TDP budget. Therefore, it is not the maximum performance mode. This is an experimental mode to tweak clock settings and create custom power modes that balance performance and power consumption. Refer to Power Estimator for more information about estimating the power and generating the nvpmodel configuration file for the custom power mode.
NVP Model Clock Configuration for Jetson Orin Nano 8GB
NVP Model Clock Configuration for Jetson Orin Nano 8GB | ||
---|---|---|
Property | Mode | |
15W* | 7W | |
Power budget | 15W | 7W |
Power Mode ID | 0 | 1 |
Online CPU | 6 | 4 |
CPU maximal frequency (MHz) | 1510.4 | 960 |
GPU TPC | 4 | 2 |
GPU maximal frequency (MHz) | 624.75 | 408 |
DLA cores | 0 | 0 |
DLA Core maximal frequency (MHz) | n/a | n/a |
DLA Falcon maximal frequency (MHz) | n/a | n/a |
PVA cores | 0 | 0 |
PVA VPS maximal frequency (MHz) | n/a | n/a |
PVA AXI maximal frequency (MHz) | n/a | n/a |
Memory maximal frequency (MHz) | 2133 | 2133 |
All modes SOC clocks maximal frequency (MHz) |
adsp: 600 display: 388 nvjpg: 499.2 sor: 540
ape: 250 display_hub: 300 ofa: 537.6 tsec: 204.8
axi_cbb: 204 host1x: 204 pcie: 250 vi: 550.4
bpmp: 230.4 isp: 729.6 rce: 230.4 vic: 435.2
csi: 240 nvdec: 524.8 sce: 230.4
dce: 384 nvenc: n/a se: 307.2
|
|
* The default mode is 15W (mode ID 0). |
Power Mode Controls
You can display and change the power mode using the nvpmodel command.
- To change the power mode:
Enter the command:
Where <x> is the power mode ID (for example, 0, 1, 2 or 3).sudo /usr/sbin/nvpmodel -m <x>
For Jetson Orin Nano Developer Kit:- 0: for 15W
- 1: for 7W
- To display the current power mode:
Enter the command:
sudo /usr/sbin/nvpmodel -q
- To add a custom power mode definition:
Edit this file:
This is an example entry for Jetson Orin Nano Developer Kit:sudo nano /etc/nvpmodel.conf
The unit of measure for CPU frequency is kilohertz. The unit for GPU and EMMC frequency is hertz. You must assign a unique number to each custom mode in the ID field.########################### # # # POWER_MODEL DEFINITIONS # # # ########################### < POWER_MODEL ID=0 NAME=15W > CPU_ONLINE CORE_0 1 CPU_ONLINE CORE_1 1 CPU_ONLINE CORE_2 1 CPU_ONLINE CORE_3 1 CPU_ONLINE CORE_4 1 CPU_ONLINE CORE_5 1 FBP_POWER_GATING FBP_PG_MASK 2 TPC_POWER_GATING TPC_PG_MASK 240 GPU_POWER_CONTROL_ENABLE GPU_PWR_CNTL_EN on CPU_A78_0 MIN_FREQ 729600 CPU_A78_0 MAX_FREQ -1 CPU_A78_1 MIN_FREQ 729600 CPU_A78_1 MAX_FREQ -1 GPU MIN_FREQ 0 GPU MAX_FREQ -1 GPU_POWER_CONTROL_DISABLE GPU_PWR_CNTL_DIS auto EMC MAX_FREQ -1 < POWER_MODEL ID=1 NAME=7W > CPU_ONLINE CORE_0 1 CPU_ONLINE CORE_1 1 CPU_ONLINE CORE_2 1 CPU_ONLINE CORE_3 1 CPU_ONLINE CORE_4 0 CPU_ONLINE CORE_5 0 FBP_POWER_GATING FBP_PG_MASK 2 TPC_POWER_GATING TPC_PG_MASK 252 GPU_POWER_CONTROL_ENABLE GPU_PWR_CNTL_EN on CPU_A78_0 MIN_FREQ 729600 CPU_A78_0 MAX_FREQ 960000 GPU MIN_FREQ 0 GPU MAX_FREQ 408000000 GPU_POWER_CONTROL_DISABLE GPU_PWR_CNTL_DIS auto EMC MAX_FREQ 2133000000
- To learn about other options:
Enter the command:
sudo /usr/sbin/nvpmodel -h