Hello AI World: Meet Jetson Nano
An introduction to the NVIDIA Jetson Nano, a platform designed for AI at the edge and autonomous machines.
Webinar Agenda
- Intro to Jetson Nano
- AI for Autonomous Machines
- Jetson Nano Developer Kit
- Jetson Nano Compute Module
- Jetson Software
- JetPack 4.2
- ML/DL Framework Support
- NVIDIA TensorRT
- Inferencing Benchmarks
- Application SDKs
- DeepStream SDK
- Isaac Robotics SDK
- Getting Started
- Jetson Nano Resources
- Hello AI World
- JetBot
- System Setup
- Tips and Tricks
Jetson Powers Autonomous Machines
The Jetson platform enables autonomous capabilities across various industries:
- Warehouse: Featuring companies like 6 RIVER SYSTEMS, GreyOrange.
- Delivery: Showcasing solutions from companies like N!ΔΟ 菜鸟 (Cainiao), Marble.
- Agriculture: Highlighting AGROBOT and HARVEST CROO.
- Retail: Featuring bossanova, brain, JD.COM 京东.
- Industrial: Showcasing DENSO, FANUC, KOMATSU, MUSASHI.
Jetson Nano Developer Kit
The NVIDIA Jetson Nano Developer Kit is an accessible AI computer for developers, makers, and students.
- Price: $99
- Compute: CUDA-X AI Computer
- Specifications:
- 128 CUDA Cores
- 4 Core CPU
- 4GB LPDDR4 Memory
- 472 GFLOPS
- 5W | 10W Power Modes
- Key Features: Accessible and easy to use.
Visual Description: Image of the Jetson Nano Developer Kit board, a compact development board with heatsink.
Jetson Nano DevKit Specs
Processor | Specifications | Interfaces | Specifications |
---|---|---|---|
CPU | 64-bit Quad-core ARM A57 @ 1.43GHz | USB | (4x) USB 3.0 A (Host) | USB 2.0 Micro B (Device) |
GPU | 128-core NVIDIA Maxwell @ 921MHz | Camera | MIPI CSI-2 x2 (15-position Flex Connector) |
Memory | 4GB 64-bit LPDDR4 @ 1600MHz | 25.6GB/s | Display | HDMI | DisplayPort |
Video Encoder | 4Kp30 | (4x) 1080p30 | (2x) 1080p60 | Networking | Gigabit Ethernet (RJ45, PoE) |
Video Decoder | 4Kp60 | (2x) 4Kp30 | (8x) 1080p30 | (4x) 1080p60 | Wireless | M.2 Key-E with PCIe x1 |
Storage | MicroSD card (16GB UHS-1 recommended minimum) | ||
40-Pin Header | UART | SPI | I2C | I2S | Audio Clock | GPIOs | ||
Power | 5V DC (μUSB, Barrel Jack, PoE) - 5W | 10W | ||
Size | 80x100mm |
Distributors Include: Amazon, Arrow, Newegg, NVIDIA, Seeed, Siliconhighway, Sparkfun.
Jetson Nano Compute Module
The Jetson Nano Compact AI Compute Module offers a smaller form factor for embedded applications.
- Specifications:
- 128 CUDA Cores
- 4 Core CPU
- 4GB LPDDR4 Memory
- 16GB eMMC 5.1
- 45x70mm
- 5W | 10W Power Modes
- Price: $129 (1Ku)
- Availability: Available June 2019
Visual Description: Image of the Jetson Nano Compute Module, a small circuit board, shown next to a US quarter for scale.
Jetson Nano Compute Module Specs
Processor | Specifications | Interfaces | Specifications |
---|---|---|---|
CPU | 64-bit Quad-core ARM A57 @ 1.43GHz | USB | USB 3.0 | (3x) USB 2.0 |
GPU | 128-core NVIDIA Maxwell @ 921MHz | Camera | 12 lanes MIPI CSI-2 (up to 4 cameras) |
Memory | 4GB 64-bit LPDDR4 @ 1600MHz | 25.6GB/s | Display | HDMI | DP | eDP | DSI |
Video Encoder | 4Kp30 | (4x) 1080p30 | (2x) 1080p60 | Networking | Gigabit Ethernet |
Video Decoder | 4Kp60 | (2x) 4Kp30 | (8x) 1080p30 | (4x) 1080p60 | PCIe | PCIe Gen2 x1/x2/x4 |
Storage | 16GB eMMC 5.1 | ||
Other I/O | (4x) I2C | (2x) SPI | (3x) UART | (2x) I2S | GPIO | ||
Power | 5V DC, 5W | 10W | ||
Size | 45x70mm, 260-pin SODIMM connector |
Production module available June 2019.
The Jetson Family
NVIDIA's Jetson platform offers a range of modules for AI at the Edge to Autonomous Machines:
- Jetson Nano: 5-10W, 0.5 TFLOPS (FP16), 45mm x 70mm, $129 / $99 (Devkit). AI at the Edge.
- Jetson TX1 → Jetson TX2 4GB: 7-15W, 1-1.3 TFLOPS (FP16), 50mm x 87mm, $299. AI at the Edge.
- Jetson TX2 8GB | Industrial: 7-15W, 1.3 TFLOPS (FP16), 50mm x 87mm, $399-$749. AI at the Edge.
- Jetson AGX Xavier: 10-30W, 11 TFLOPS (FP16) | 32 TOPS (INT8), 100mm x 87mm, $1099. Fully Autonomous Machines.
Key Principle: Multiple Devices - Same Software.
Jetson Software
NVIDIA provides a comprehensive software stack for Jetson devices:
- JetPack SDK: Includes CUDA-X, Linux for Tegra, ROS, and Nsight Developer Tools.
- Modules: Deep Learning (TensorRT, cuDNN), Computer Vision (VisionWorks, OpenCV), Accel. Computing (cuBLAS, cuFFT), Graphics (Vulkan, OpenGL), Multimedia (libargus, Video API), Sensors (Drivers, Ecosystem).
- Application SDKs: DeepStream SDK for intelligent video analytics, Isaac Robotics Engine for robotics development.
- Supported Platforms: Jetson Nano, Jetson TX1/TX2, Jetson AGX Xavier.
- Resource: developer.nvidia.com/jetpack
JetPack 4.2
JetPack 4.2 is available for Jetson devices, offering a complete desktop Linux environment based on Ubuntu 18.04.
Package Versions Include:
Component | Version | Component | Version |
---|---|---|---|
L4T BSP | 32.1 | CUDA | 10.0.166 |
Linux Kernel | 4.9.140 | cuDNN | 7.3.1.28 |
Vulkan | 1.1.1 | TensorRT | 5.0.6.3 |
OpenGL | 4.6 | VisionWorks | 1.6 |
OpenGL-ES | 3.2.5 | OpenCV | 3.3.1 |
EGL | 1.5 | NPP | 10.0 |
GLX | 1.4 | ||
X11 ABI | 24 | ||
Wayland | 1.14 | ||
L4T Multimedia API | 32.1 | ||
Argus Camera API | 0.97 | ||
GStreamer | 1.14.1 | ||
Nsight Systems | 2019.3 | ||
Nsight Graphics | 2018.7 | ||
Nsight Compute | 1.0 | ||
Jetson GPIO | 1.0 | ||
Jetson OS | Ubuntu 18.04 | ||
Host OS | Ubuntu 16.04 / 18.04 |
Supports installation of TensorFlow, PyTorch, Caffe, Caffe2, MXNet, ROS, and other GPU-accelerated libraries.
Resource: developer.nvidia.com/jetpack
Open Framework Support
Jetson supports a wide range of open-source frameworks for Machine Learning and Robotics/IoT:
- Machine Learning: Caffe, Caffe2, Keras, MXNet, PyTorch, TensorFlow.
- Robotics / IoT: AWS Greengrass, Docker, MPI, ROS.
Visual Description: Logos of various machine learning and robotics frameworks.
NVIDIA TensorRT
TensorRT is an SDK for high-performance deep learning inference. It optimizes trained neural networks for deployment.
- Workflow:
- Train: Frameworks like TensorFlow, Caffe2, Keras, MXNet, PyTorch, Caffe.
- Export: TF-TRT UFF, ONNX, .caffemodel formats.
- Optimize: TensorRT Model Optimizer with features like Layer Fusion, Kernel Autotuning, GPU Optimizations, Mixed Precision, Tensor Layout, Batch Size Tuning.
- Deploy: TensorRT Runtime Engine (C++ / Python) for deployment on Jetson devices.
Jetson Nano Runs Modern AI
The Jetson Nano demonstrates strong performance for various AI inference tasks.
Visual Description: Bar charts comparing inference speeds (Img/sec) for models like ResNet-50, Inception-v4, VGG-19, SSD Mobilenet, Tiny YOLO, U-Net, Super Resolution, and OpenPose on the Jetson Nano against other platforms like Coral Dev Board and Raspberry Pi 3.
Resource: developer.nvidia.com/embedded/jetson-nano-dl-inference-benchmarks
AI-Powered Video Analytics
The Jetson platform, particularly with DeepStream SDK, enables real-time AI-powered video analytics for applications like people detection and tracking.
Visual Description: Screenshots showing multiple camera feeds with bounding boxes around detected people, along with alert messages indicating the number of people and timestamps.
Network Video Recorder
The Jetson Nano can be integrated into a Network Video Recorder (NVR) system, processing video streams from multiple IP cameras.
Visual Description: A block diagram illustrating an NVR setup with multiple IP cameras connected via a PoE switch to a Jetson Nano, which interfaces with storage and outputs via HDMI and LAN. An image of a typical NVR device is also shown.
Isaac SDK
The NVIDIA Isaac SDK provides tools and libraries for building intelligent robots.
- Robots: KAYA (Nano), CARTER (Xavier), LINK (Multi Xavier).
- Components: Sensor and Actuator Drivers, Core Libraries, GEMS, Reference DNN, Tools, ISAAC OPEN TOOLBOX, CUDA-X.
- Simulators: Isaac Sim, Isaac Gym.
- Resource: developer.nvidia.com/isaac-sdk
Visual Description: Diagrams showing the architecture of Isaac SDK and supported Jetson platforms, alongside images of Isaac Sim and Isaac Gym environments.
Isaac Robots
The Isaac SDK facilitates the development of robots like NVIDIA Carter and NVIDIA Kaya, enabling functionalities such as Lidar processing, mapping, localization, path planning, and control.
Visual Description: Flowcharts detailing the software components for NVIDIA Carter (RangeScan, Localization, Global Planner, LQR Planner, Control, Segway Driver) and NVIDIA Kaya (RGB+Depth Image, Obstacle Detection, Obstacle Avoidance, Odometry, Camera Driver). Also shows GEMS and WebSight visualization tools.
Resource: developer.nvidia.com/isaac-sdk
Getting Started
Resources to help users begin their journey with Jetson Nano:
- Resources
- Tutorials
- System Setup
- Tips and Tricks
- Accessories
Jetson Nano Resources
Explore various resources for Jetson Nano development:
- Tutorials: Guides on deploying deep learning, image recognition, object detection, etc.
- Projects: Examples of projects like the JetBot.
- Developer Forums: Community support and discussions.
- Jetson Developer Zone: Comprehensive documentation and SDKs.
- eLinux Wiki: Community-driven information and guides.
- Accessories: Information on compatible hardware.
Visual Description: A grid of images and links showcasing tutorials, projects (like the JetBot), developer forums, the Jetson Developer Zone, the eLinux Wiki, and accessories.
Hello AI World: Getting Started with Deep Learning
A step-by-step guide to implementing deep learning on Jetson Nano.
- Workflow: Pretrained Networks → NVIDIA Jetson JetPack | TensorRT → Realtime Inferencing.
- Steps:
- 1. Download and Build the GitHub Repo (github.com/dusty-nv/jetson-inference).
- 2. Classifying Images from Command Line (e.g., `./imagenet-console bear_0.jpg output_0.jpg`).
- 3. Coding Your Own Recognition Program (example C++ code provided).
- 4. Realtime Recognition from Live Camera (e.g., `./imagenet-camera googlenet`).
- 5. Detecting Objects in Images from Disk (e.g., `./detectnet-console dogs.jpg output.jpg coco-dog`).
- 6. Object Detection from Live Camera (e.g., `./detectnet-camera
`).
Visual Description: Diagrams and example outputs for image classification (polar bear, brown bear, panda bear, black bear) and object detection (dogs, people).
Resource: github.com/dusty-nv/jetson-inference
Two Days to a Demo: Training + Inference
Achieve a working AI demo quickly using Jetson Nano.
- AI Workflow: Train using DIGITS and cloud/PC, then deploy to the field with Jetson.
- Training Guides: Comprehensive steps and datasets for training custom models.
- Deep Vision Primitives: Covers Image Recognition, Object Detection, and Segmentation.
Visual Description: Diagrams illustrating the AI workflow, training process, and deep vision primitives.
Resource: github.com/dusty-nv/jetson-inference
JetBot
The JetBot is a ~$250 DIY Autonomous Deep Learning Robotics Kit.
- Programmable through Jupyter IPython Notebooks.
- Trainable DNNs for obstacle detection, object following, path planning, and navigation.
- ROS support and Gazebo simulator available.
- Upcoming webinar: May 16, 2019.
Resource: github.com/NVIDIA-AI-IOT/JetBot
Visual Description: Image of the JetBot robot, a small wheeled robot with a camera and sensors.
System Setup
Instructions for setting up the Jetson Nano Developer Kit:
- Device is booted from a MicroSD card (16GB UHS-1 recommended).
- Download the SD card image from NVIDIA.com.
- Flash the SD card image using Etcher program (Windows/Mac/Linux) or NV SDK Manager.
- Insert the MicroSD card into the slot on the underside of the Jetson Nano module.
- Connect keyboard, mouse, display, and power supply.
- The board will automatically boot when power is applied, indicated by a green power LED.
Resource: NVIDIA.com/JetsonNano-Start
Visual Description: Images showing the Jetson Nano Developer Kit box, the board itself, and a diagram illustrating the setup process.
Power Supplies
Recommended power options for the Jetson Nano:
- 5V-2A Micro-USB charger (Adafruit #1995).
- 5V-4A DC barrel jack adapter (Adafruit #1466) with 5.5mm OD x 2.1mm ID x 9.5mm length.
- J41 Expansion Header: Supports up to 5V-3A per pin (6A total).
- Power over Ethernet (PoE): Standard 48V supply or a PoE hat/5V regulator.
- J40 Button Header: Can disable Auto Power-On, enable Manual Power-On/Reset, or Enter Recovery Mode.
Visual Description: A diagram of the Jetson Nano board highlighting various headers and connectors, including power inputs and expansion headers.
Power Modes
The Jetson Nano offers different power mode presets:
- Presets: 5W and 10W.
- Default Mode: 10W.
- Users can create custom presets by specifying clocks and online cores in `/etc/nvpmodel.conf`.
Power Mode | 10W | 5W |
---|---|---|
Mode ID | 0 | 1 |
Online CPU Cores | 4 | 2 |
CPU Max Frequency (MHz) | 1428 | 918* |
GPU Max Frequency (MHz) | 921 | 640* |
Memory Max Freq. (MHz) | 1600 | 1600 |
* Rounded at runtime to closest discrete frequency available. Default Mode is 10W (ID:0).
NVIDIA Power Model Tool:
- `sudo nvpmodel -q`: Check active mode.
- `sudo nvpmodel -m 0`: Change mode (persists after reboot).
- `sudo jetson_clocks`: Disable DVFS and lock clocks to max for active mode.
Performance Monitor
Use the `tegrastats` command to monitor performance and utilization.
Example Output Snippet: RAM 1216/3963MB, CPU [27%@102,36%@307,...], EMC_FREQ 19%@204, GR3D_FREQ 0%@76, PLL@25C, CPU@29.5C, GPU@27C.
Monitor Categories:
- Memory: Used / Total Capacity, Bandwidth % @ Frequency (MHz).
- CPU: Utilization / Frequency (MHz).
- GPU: Utilization / Frequency (MHz).
- Thermal: Zone @ Temperature (°C).
- Power: Current Consumption (mW) / Average (mW).
Resource: docs.nvidia.com/jetson
Refer to the L4T Developer Guide for more options and documentation.
Using GPIO
The Jetson Nano provides GPIO (General Purpose Input/Output) capabilities:
- Similar 40-pin header to Raspberry Pi, with 3.3V logic levels.
- Supports Adafruit Blinka + SeeedStudio Grove.
- Jetson.GPIO Python library available.
- Compatible API with rPI.GPIO.
- Docs & samples in `/opt/nvidia/jetson-gpio/`.
- Sysfs I/O access via `/sys/class/gpio/`.
- Common GPIO Operations: Map pin (`echo 38 > /sys/class/gpio/export`), Set direction (`echo out > /sys/class/gpio/gpio38/direction`), Bit-banging (`echo 1 > /sys/class/gpio/gpio38/value`), Unmap GPIO (`echo 38 > /sys/class/gpio/unexport`).
- Query status: `cat /sys/kernel/debug/gpio`.
- Resource: https://www.kernel.org/doc/Documentation/gpio/sysfs.txt
- C/C++ programs and Python can use sysfs files.
- I2C support via `libi2c` for C/C++ and Python.
Visual Description: A detailed pinout diagram for the J41 Expansion Header, showing GPIO numbers, names, and pin assignments.
Jetson Nano Accessories
A variety of accessories are available to enhance Jetson Nano functionality:
- Printable Enclosures: 3D printable cases for protection and mounting.
- Battery Packs: Portable power solutions.
- 5V Fans: For active cooling.
- Sensors & Cameras: MIPI CSI cameras (e.g., LI-IMX219-MIPI-FF-NANO), USB cameras, and depth sensors (e.g., ZED M).
- Carriers: Boards that host the Jetson Nano Compute Module.
- GPIO Hats: Add-on boards for extended GPIO connectivity and sensors.
Resource: eLinux.org/Jetson_Nano
Visual Description: A collage of images showing various Jetson Nano accessories, including enclosures, battery packs, fans, different carrier boards, GPIO hats, and camera modules.
Camera Capture
Jetson Nano supports multiple camera interfaces for AI applications:
- NVIDIA Argus (libargus): Low-overhead ingest and ISP for MIPI CSI sensors. Includes C++/Python wrapper library.
- GStreamer: Uses `nvarguscamerasrc` element for Argus integration. Example pipeline provided for video capture.
- V4L2: Interface for USB cameras and MIPI CSI YUV sensors. Supports `libv4l` (C/C++) and Python bindings.
Visual Description: A block diagram illustrating the camera capture architecture, showing multiple MIPI CSI-2 inputs feeding into an Image Signal Processor (ISP) and Video Ingest (VI) block, with connections to memory.
Resource: https://www.kernel.org/doc/html/v4.9/media/uapi/v4l/v4l2.html
Video Codecs
Jetson Nano supports hardware-accelerated video encoding and decoding for various codecs.
- Multi-stream HW encoder and decoder engines.
- GStreamer: Supports NV Encoder elements (omxh265enc, omxh264enc) and NV Decoder elements (omxh265dec, omxh264dec).
- V4L2 Extensions: Supports YUV input and H.264/H.265 output via `/dev/nvhost-msenc`, and bitstream input via `/dev/nvhost-nvdec`.
Encoder Profile | Specifications |
---|---|
H.265 (Main, Main 10) | 4Kp30 | (2x) 1080p60 | (4x) 1080p30 |
H.264 (Base, Main, High) | 4Kp30 | (2x) 1080p60 | (4x) 1080p30 |
H.264 (MVC Stereo) | 1440p30 | 1080p60 | (2x) 1080p30 |
VP8 | 4Kp30 | (2x) 1080p60 | (4x) 1080p30 |
JPEG | 600 MP/s |
Decoder Profile | Specifications |
---|---|
H.265 (Main, Main 10) | 4Kp60 | (2x) 4Kp30 | (4x) 1080p60 | (8x) 1080p30 |
H.264 (Base, Main, High) | 4Kp60 | (2x) 4Kp30 | (4x) 1080p60 | (8x) 1080p30 |
H.264 (MVC Stereo) | 4Kp30 | (2x) 1080p60 | (4x) 1080p30 |
VP9 (Profile 0, 8-bit) | 4Kp60 | (2x) 4Kp30 | (4x) 1080p60 | (8x) 1080p30 |
VP8 | 4Kp60 | (2x) 4Kp30 | (4x) 1080p60 | (8x) 1080p30 |
VC-1 (Simple, Main, Adv.) | (2x) 1080p60* | (4x) 1080p30* |
MPEG-2 (Main) | 4Kp60 | (2x) 4Kp30 | (4x) 1080p60* | (8x) 1080p30* |
JPEG | 600 MP/s |
* Supports progressive and interlaced formats.
Zero Copy
Zero Copy technology enables efficient data access between processor engines by sharing memory, eliminating the need for data copying.
- Shared Memory Fabric: Allows processor engines to access the same memory without copying.
- CUDA Mapped Memory API: Functions like `cudaHostAlloc` and `cudaHostGetDevicePointer` are used. No `cudaMemcpy()` is required.
- CUDA Unified Memory: `cudaMallocManaged()` provides coherent synchronization and caching, disregarding data movement on Jetson.
- EGLStreams: Facilitates graphics API interoperability.
- Argus, NV V4L2 extensions, and DeepStream libraries are optimized for ZeroCopy.
Visual Description: A diagram illustrating the Zero Copy architecture, showing CPU, GPU, DRAM, and various processing blocks (NV Encoder, NV Decoder, ISP, etc.) connected via a Memory Controller Fabric.
Resource: docs.nvidia.com/cuda/cuda-for-tegra-appnote/
Thank You
Explore more resources from NVIDIA Developer:
- Developer Site: developer.nvidia.com/jetson
- Getting Started: nvidia.com/JetsonNano-Start
- Hello AI World: github.com/dusty-nv
- DevTalk Forums: devtalk.nvidia.com
- Visit the Wiki: eLinux.org/Jetson_Nano
Q&A: What can I help you build?
Resource: NVIDIA Developer Blog - Jetson Nano Brings AI Computing to Everyone