Nvidia Jetson

Revision as of 2019-04-06T08:15:04 by Kai (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)



The Jetson Family

Nvidia's Jetson family of products are compact system-on-a-chip Tegra computers with integrated machine learning accelerator hardware. The models differ in their computational performance and in price.

JetPack

JetPack is Nvidia's name for a software bundle that contains development software and a modified version of Ubuntu Linux with a custom kernel for the Tegra hardware.

Jetson Nano

The Nano is the Jetson with the smallest footprint and lowest performance. It features 128 compute units based on the Maxwell architecture.

Power Supply and OS Installation

The Nano Developer Kit requires a power supply that can deliver 5 V and at least 2 A, either over the micro USB port, or (after connecting the J48 header pins with a jumper) via a standard power jack (5.5 mm outer, 2.1 mm inner diameter). When operated via the power jack, the micro USB port can be used to install the Nano operating system from an external computer. Otherwise, the OS image needs to be written to a micro-SD card that is inserted into the card slot of the developer kit.

Setting Up SSH

The developer kit features HDMI and DisplayPort outputs for connecting to a display. In a robot, the control interface for the Jetson Nano will be a terminal session via SSH. To set up the SSH service on the Nano first make sure that the ssh package is installed:

sudo apt install ssh openssh-server


You can now start the SSH service like this:

sudo service ssh start

and stop it like this:

sudo service ssh stop


To make the SSH service start automatically at each boot, type

sudo systemctl enable ssh
sudo systemctl enable ssh.service
sudo systemctl start ssh

To prevent the system from starting the SSH service at each boot, type

sudo systemctl stop ssh
sudo systemctl disable ssh
sudo systemctl disable ssh.service


SSH Login Over WiFi Connection

The Jetson Nano Developer Kit comes without WiFi connectivity. You can use a USB WiFi adaptor stick (e.g., Edimax ) to add WiFi connectivity. On Ubuntu, you will need to give permission to the system to make the WiFi connection available to all other users, which includes the SSH daemon, in order to enable remote logins over WiFi without requiring an active local login session (via connected peripherals or Ethernet connection).
To give permission,

  • open the "System Settings" application,
  • go to "Network",
  • make sure "Wireless" is selected on the left panel,
  • on the right side panel, next to the SSID of the WLAN server, click on the arrow icon,
  • click on the "Settings..." button on the bottom right corner,
  • in the window that opens, go to the tab "General",
  • check the "All users may connect to this network" option


Preventing the Graphical User Interface From Being Loaded

Ubuntu uses systemd to control whether the graphical user interface is loaded and shown. To turn off the graphical desktop immediately enter

sudo systemctl isolate multi-user.target

To prevent the GUI from being loaded during the system startup, type

sudo systemctl set-default multi-user.target

To return to the graphical desktop, type

sudo systemctl isolate graphical.target

and to make the graphical desktop the default again, type

sudo systemctl set-default graphical.target


Power Modes

Use the "nvpmodel" command line tool for selecting or configuring the performance level of a Jetson device.

On Jetson Nano, the preconfigured power modes are

  • MAXN (mode #0): the default mode with maximum performance
  • 5W (mode #1): low-power mode where only two out of four CPU core are working and the GPU clock frequency is constrained.


You can query the current mode via

sudo nvpmodel -q --verbose

and switch between modes with the "-m" option like this

sudo nvpmodel -m 1


Create your custom power mode by editing "/etc/nvpmodel.conf"

sudo vim /etc/nvpmodel.conf


Camera

Cameras can be connected to Jetson Nano over USB or over the CSI connector. In case of a CSI camera, the image sensor must be a Sony IMX219.
Use the Video For Linux utilityv4l2-ctl to list all video inputs that are available to the system and what type of image frames they provide.

sudo apt install v4l-utils
v4l2-ctl --list-devices
v4l2-ctl --list-formats

Resources