A comprehensive toolkit for setting up cameras on NVIDIA Jetson platforms, with a focus on the Arducam IMX708 on Jetson Orin Nano Super with JetPack 6.2.
Getting third-party cameras working on Jetson can be challenging. This toolkit provides:
- Working device tree overlays tested on real hardware
- Step-by-step installation guides with troubleshooting
- Python integration examples for computer vision applications
- Key learnings from extensive debugging sessions
| Camera | Platform | JetPack | Status |
|---|---|---|---|
| Arducam IMX708 12MP | Orin Nano Super | 6.2 (L4T R36.4.3) | ✅ Working |
| Arducam IMX708 12MP | Orin Nano | 6.2 (L4T R36.4.3) | ✅ Working |
| Arducam IMX708 12MP | Orin Nano | 6.0, 5.1.1 | See RidgeRun docs |
| Arducam IMX708 12MP | Jetson Nano | 4.6.4 | See RidgeRun docs |
- Read the guide: docs/installation.md
- Get the driver: Use
NVIDIA-Jetson-IMX708-RPIV3/driver/ - Apply the overlay: Use
docs/overlays/imx708-nvidia-csi.dts
# Quick verification after setup
ls /dev/video0
v4l2-ctl -d /dev/video0 --infoNvidia-Jetson-Toolkit/
├── README.md # This file
├── CLAUDE.md # AI agent instructions
├── docs/
│ ├── installation.md # Complete IMX708 installation guide
│ ├── ssh-setup.md # SSH configuration guide
│ └── overlays/
│ └── imx708-nvidia-csi.dts # Working device tree overlay
└── NVIDIA-Jetson-IMX708-RPIV3/ # RidgeRun driver source
└── driver/ # JetPack 6.2 kernel module
├── src/ # Driver source code
├── include/ # Header files
├── dts/ # Device tree sources
├── build.sh # Build script
└── validate.sh # Installation validation
After extensive testing, we discovered several critical insights:
| Component | Configuration |
|---|---|
| Driver | RidgeRun nv_imx708.ko with sony,imx708 compatible |
| Device Tree | Custom overlay merged with fdtoverlay |
| Capture | v4l2-ctl --stream-mmap for raw Bayer |
| Processing | Python + OpenCV with percentile normalization |
| Approach | Problem |
|---|---|
jetson-io IMX477-C mode |
Capture timeouts |
nvarguscamerasrc |
Requires missing ISP tuning files |
| OVERLAYS in extlinux.conf | UEFI boot ignores runtime overlays |
| RidgeRun's original CSI params | Wrong discontinuous_clk and lane_polarity |
The breakthrough was using NVIDIA's CSI parameters instead of RidgeRun's defaults:
| Parameter | RidgeRun (FAILS) | NVIDIA (WORKS) |
|---|---|---|
discontinuous_clk |
"yes" |
"no" |
lane_polarity |
"6" |
"0" |
channel |
channel@1 |
channel@0 |
| Document | Description |
|---|---|
| Installation Guide | Complete installation guide with troubleshooting |
| SSH Setup | Configure SSH access to Jetson |
| Driver README | Driver build and usage instructions |
When everything is working correctly:
$ v4l2-ctl -d /dev/video0 --info
Driver Info:
Driver name : tegra-video
Card type : vi-output, imx708 9-001a
Bus info : platform:tegra-capture-vi:1
$ sudo dmesg | grep imx708
imx708 9-001a: tegracam sensor driver:imx708_v2.0.6
imx708 9-001a: detected imx708 sensorimport subprocess
import numpy as np
import cv2
# Capture raw frame
subprocess.run([
"v4l2-ctl", "-d", "/dev/video0",
"--set-fmt-video=width=4608,height=2592,pixelformat=RG10",
"--stream-mmap", "--stream-count=1",
"--stream-to=/tmp/frame.raw"
])
# Process raw Bayer to color
raw = np.fromfile("/tmp/frame.raw", dtype=np.uint16)
img = raw[:4608*2592].reshape((2592, 4608))
p2, p98 = np.percentile(img, [2, 98])
img_norm = np.clip((img.astype(float) - p2) / (p98 - p2) * 255, 0, 255).astype(np.uint8)
color = cv2.cvtColor(img_norm, cv2.COLOR_BAYER_RG2BGR)
cv2.imwrite("/tmp/capture.jpg", color)| Parameter | Value |
|---|---|
| Sensor | Sony IMX708 |
| Resolution | 4608 x 2592 (12MP) |
| Frame Rate | 14 fps (max at full resolution) |
| Pixel Format | RG10 (10-bit Bayer RGRG/GBGB) |
| Interface | CSI-2, 2 lanes |
| I2C Address | 0x1a |
- RidgeRun - For the
nv_imx708driver and excellent Jetson camera support - NVIDIA - For the Jetson platform and documentation
- Arducam - For the IMX708 camera module
- Documentation and testing by the AI Companion project team
- RidgeRun driver: GPL v2
- Documentation: MIT
Found an issue or have improvements?
- Open an issue on this repository
- Submit a pull request with your changes
- Share your experiences on the NVIDIA Developer Forums
- RidgeRun IMX708 Driver - Original driver source
Last Updated: December 24, 2025 Tested On: Jetson Orin Nano Super 8GB, JetPack 6.2, Arducam IMX708