Quick Start: Jetson Orin Nano and Orin NX Cameras¶
Follow this guide to connect an Arducam camera, configure its driver, and verify image capture.
These instructions apply to Jetson Orin Nano and Orin NX modules on the NVIDIA Jetson Orin Nano Developer Kit carrier board. Other carrier boards require their own connector pinout and board-specific configuration.
Check compatibility · Connect the camera · Install the driver · Verify capture · Troubleshooting
1. Check Compatibility¶
Before installing a driver, identify your camera SKU, connection type, carrier board, and system version. Run these commands on the Jetson:
head -n 1 /etc/nv_tegra_release
uname -r
dpkg-query -W -f='${Package}: ${Version}\n' nvidia-l4t-core nvidia-l4t-kernel
Check the camera and exact L4T release in the camera compatibility table. Orin NX and Orin Nano share the same compatibility table. Blank entries indicate unconfirmed support; test builds are marked separately.
JetPack and L4T have different version numbers. For example, JetPack 5.1.1 includes Jetson Linux / L4T 35.3.1. Driver packages must match the applicable L4T release and kernel build.
2. Connect the Camera¶
Choose the Cable and Port¶
The reference carrier board has two 22-pin, 0.5 mm-pitch, bottom-contact CSI connectors. CAM0 supports two CSI lanes; CAM1 supports two or four. Camera driver support must also match the selected port.
- 15-pin camera connector: use a compatible 15-pin to 22-pin conversion cable.
- 22-pin camera connector: use the 22-pin cable specified for the camera. Confirm its pinout and contact orientation, not just its pin count.
Jetvariety and arducam_4lane: use CAM1
These cameras work only on CAM1, the CSI connector closest to the power barrel jack, on the NVIDIA reference carrier board. For other camera configurations, follow the camera guide and the selected device-tree configuration.
Connect the Ribbon Cable¶
- Shut down the Jetson and disconnect its power supply.
- Gently release the CSI connector latch without removing it from the connector.
- Insert the cable straight and fully. At the Jetson end, the exposed contacts must face the connector's bottom contacts. Check the camera end separately against its wiring guide.
- Hold the cable in place and close the latch evenly. Avoid sharp folds and tension.
- Check both ends, reconnect power, and boot the Jetson.
See the NVIDIA hardware layout for connector details.
Orin Nano: cable connection examples
Orin NX: cable connection examples
3. Configure the Camera Driver¶
Install the tools used in this guide:
sudo apt update
sudo apt install -y v4l-utils wget gstreamer1.0-tools
Choose Your Camera¶
Use the exact camera variant when selecting a driver. Stereo, GMSL, and V3Link kits can require different drivers from a direct CSI camera using the same sensor.
| Camera | Driver setup | Guide |
|---|---|---|
| IMX219 · 8 MP | NVIDIA built-in driver; no additional Arducam sensor driver required. | IMX219 |
| IMX477 · 12 MP | ./install_full.sh -m imx477 | IMX477 |
| IMX519 · 16 MP | ./install_full.sh -m imx519 | IMX519 |
| IMX708 · 12 MP | ./install_full.sh -m imx708 | IMX708 |
| Jetvariety | ./install_full.sh -m arducam | Jetvariety quick start |
| Four-lane cameras | ./install_full.sh -m arducam_4lane, when specified by the camera's product guide. | Camera-specific setup |
For stereo, GMSL, and V3Link kits, follow the kit's installation guide rather than selecting a command by sensor name alone.
IMX219 Setup¶
IMX219 uses NVIDIA's included driver. Continue to Verify Capture. If the camera is not detected, check its cable and the camera configuration supplied with your system image. The built-in driver still needs a matching device-tree configuration.
Follow any Jetson-IO or overlay instructions specified for your camera and system release, then reboot if the configuration changes.
Install an Arducam Driver¶
After confirming compatibility, download the installer once:
mkdir -p ~/arducam-camera-setup
cd ~/arducam-camera-setup
wget -O install_full.sh https://github.com/ArduCAM/MIPI_Camera/releases/download/v0.0.3/install_full.sh
chmod +x install_full.sh
Run only the command for your camera from the table above, in the same directory. For example, for a standard IMX477:
./install_full.sh -m imx477
Wait for installation to finish and follow any camera-specific configuration instructions. Reboot when prompted; if you postpone the reboot, restart before testing.
If no matching package is found, check the Orin NX / Orin Nano release assets against the exact L4T and kernel versions. A package for a different release is not interchangeable.
Jetvariety camera families and product guides
4. Verify Capture¶
Identify the Device and Supported Modes¶
v4l2-ctl --list-devices
Find the camera entry and its /dev/videoN node. Replace /dev/video0 below with the node reported for your camera:
v4l2-ctl -d /dev/video0 --list-formats-ext
v4l2-ctl -d /dev/video0 --get-fmt-video
Use the listed pixel formats, resolutions, and frame intervals when selecting a capture mode. IMX219 modes depend on the installed driver and device tree; 3280 × 2464 is not a universal restriction on all configurations.
Camera identifiers
CAM0/CAM1 identify physical connectors. /dev/videoN identifies a Linux video device. sensor-id identifies an Argus camera index. Their numbers do not necessarily match.
Native Cameras: Test the Argus Capture Path¶
For IMX219 and compatible IMX477, IMX519, and IMX708 configurations, first check that the NVIDIA source plugin is available:
gst-inspect-1.0 nvarguscamerasrc
Close other camera applications. The following command requests 60 frames without opening a preview window. Use the Argus index for your camera in place of 0 if required:
gst-launch-1.0 -e nvarguscamerasrc sensor-id=0 num-buffers=60 ! \
'video/x-raw(memory:NVMM),format=NV12' ! \
fakesink sync=false
Expected result: The pipeline receives frames and finishes with EOS (end of stream), without capture errors. The resolution and frame rate are negotiated automatically. This checks frame delivery; use the camera guide to select a particular mode or evaluate image quality.
For a live preview, run the following from the Jetson's graphical desktop session:
gst-launch-1.0 -e nvarguscamerasrc sensor-id=0 ! \
'video/x-raw(memory:NVMM),format=NV12' ! \
nvvidconv ! 'video/x-raw,format=BGRx' ! \
videoconvert ! autovideosink sync=false
Press Ctrl+C to stop. An SSH session does not automatically provide access to a graphical display. If the preview cannot open, test capture without a display sink first.
See the native camera quick start for recording, focus controls, and camera-specific settings.
Jetvariety and arducam_4lane: Test the V4L2 Capture Path¶
Use the capture application and pixel-format handling specified for the exact camera. These drivers should not be assumed to support the Argus pipeline above.
For a camera configured for continuous streaming, test its active V4L2 format:
v4l2-ctl -d /dev/video0 \
--stream-mmap --stream-count=60 --stream-to=/dev/null
Expected result: The command receives 60 frames and exits without an error. Apply any required format or trigger settings from the camera guide before testing. Stop the test before opening another capture application.
Use the Jetvariety quick start for the appropriate viewer. RAW Bayer, monochrome, and YUV output require different display handling.
5. Troubleshooting¶
- No camera device: Power off before reseating the cable. Check its orientation, port, driver, device-tree configuration, and whether the required reboot was completed.
- No matching driver package: Check the camera variant, carrier board, exact L4T release, and kernel package version. Keep the installer's complete output.
- Device found but capture fails: Close other camera applications. Check the active format, trigger configuration, and whether the camera uses Argus or V4L2.
- No preview window: Check the graphical session and installed display plugins. Test frame delivery independently of the preview.
- Incorrect colors: Check the pixel format, Bayer conversion, and tuning for the exact module and lens. A color difference alone does not identify the cause.
For support, provide the camera SKU, Jetson module, carrier-board model, CSI port, exact command, and full error message. Include the version output from Step 1 and capture these diagnostics immediately after the failure:
v4l2-ctl --list-devices
sudo dmesg | tail -n 120
Capture Examples: JetPack 5.1.1 / L4T 35.3.1¶
These examples show IMX219 and IMX477 setups for the indicated release. Use the compatibility table and camera guide for your installed version. Device numbers and available modes can differ.
IMX219: connection, modes, and preview
The CAM0 comparisons show results with and without the demonstrated ISP tuning parameters. This comparison does not establish that ISP processing itself was disabled.





IMX477: connection, modes, and preview
The CAM0 comparisons show results with and without the demonstrated ISP tuning parameters. This comparison does not establish that ISP processing itself was disabled.









