Zbotic Logo Zbotic Logo
  • Home
  • Shop
  • Sale
  • 3D Print Service
  • PCB Service
  • B2B
  • Blogs
  • Contact Us
0 0

View Wishlist Add all to cart

0 0
0 Shopping Cart
Shopping cart (0)
Subtotal: ₹0.00

View cartCheckout

  • Shop
  • About Us
  • Contact Us
  • Reseller
  • Blogs
020 69134444
1800 209 0998
[email protected]
Help Desk
Facebook Twitter Instagram Linkedin YouTube
Zbotic Logo Zbotic Logo
0 0

View Wishlist Add all to cart

0 0
0 Shopping Cart
Shopping cart (0)
Subtotal: ₹0.00

View cartCheckout

All departments
  • 3D Print Service
  • 3D Printer
  • Batteries & Chargers
  • Development Boards
  • Drone Parts
  • EBike parts
  • Sensor Modules
  • Electronic Components
  • Electronic Modules
  • IoT and Wireless
  • Mechanical Parts and Workbench Tools
  • Motors & Drivers & Pumps & Actuators
  • DIY and Robot Kits
  • Show more
  • Home
  • Shop
  • Sale
  • 3D Print Service
  • PCB Service
  • B2B
  • Blogs
  • Contact Us
Return to previous page
Home Camera & Vision Modules

How to Use CSI Camera on Jetson Nano: Driver and Code

How to Use CSI Camera on Jetson Nano: Driver and Code

March 11, 2026 /Posted byJayesh Jain / 0

The Jetson Nano’s CSI camera interface supports MIPI CSI-2 cameras at much higher bandwidth than USB webcams. Setting up a CSI camera on Jetson Nano requires the right driver, libargus configuration, and GStreamer pipeline. This tutorial covers compatible cameras, driver installation, testing with nvgstcapture, and writing Python code using OpenCV and Jetson.Utils for real-time AI inference on camera feeds.

Table of Contents

  • Jetson Nano CSI Interface Explained
  • Compatible CSI Cameras
  • Driver Installation
  • GStreamer Pipeline for CSI Camera
  • OpenCV Python Code for CSI Camera
  • Using Jetson.Utils for AI Inference
  • Troubleshooting Common Issues
  • FAQ

Jetson Nano CSI Interface Explained

The Jetson Nano has two CSI connectors: CAM0 (15-pin) and CAM1 (15-pin), both MIPI CSI-2 2-lane. Maximum supported data rate is 1.5 Gbps per lane. CSI cameras bypass USB overhead and connect directly to Jetson’s ISP (Image Signal Processor) – part of the Tegra SoC. The ISP handles auto-exposure, white balance, and noise reduction in hardware, freeing CPU cycles for inference. Important note: CSI cameras for Raspberry Pi use the same physical connector but may have different pin assignments – always verify pinout compatibility before connecting.

Compatible CSI Cameras

Waveshare IMX219-77 Camera for Jetson Nano

IMX219-based camera specifically tested with Jetson Nano. 77-degree FOV, 8MP resolution. Works out of the box with JetPack 4.6+ – no custom driver required. CSI connector compatible with Jetson Nano CAM0/CAM1.

View Product

Waveshare IMX219-160 Wide Angle for Jetson Nano

IMX219 with 160-degree FOV, compatible with Jetson Nano. Wide angle ideal for robotics and surveillance applications. Driver included in JetPack 4.6+ kernel.

View Product

Driver Installation

IMX219 and IMX477 drivers are included in JetPack 4.6 and later. Verify driver is loaded:

# Check if CSI camera is detected
ls /dev/video*

# Should show /dev/video0 (CAM0) and /dev/video1 (CAM1)

# Check driver is loaded
dmesg | grep imx219

# Expected output:
# [    2.345678] imx219 9-0010: imx219 detected at address 0x10

# If not detected, check cable connection (blue side faces away from board on Jetson Nano)
# Verify JetPack version
sudo apt-cache show nvidia-jetpack | grep Version

GStreamer Pipeline for CSI Camera

The Jetson Nano uses GStreamer with nvarguscamerasrc for CSI cameras. Test with nvgstcapture:

# Test CSI camera capture (CAM0)
nvgstcapture-1.0 --sensor-id=0

# GStreamer pipeline for display
gst-launch-1.0 nvarguscamerasrc sensor-id=0 ! 
  'video/x-raw(memory:NVMM),width=1920,height=1080,format=NV12,framerate=30/1' ! 
  nvvidconv ! nvegltransform ! nveglglessink -e

# GStreamer pipeline for 720p display
gst-launch-1.0 nvarguscamerasrc sensor-id=0 ! 
  'video/x-raw(memory:NVMM),width=1280,height=720,framerate=60/1' ! 
  nvvidconv ! nvegltransform ! nveglglessink -e

OpenCV Python Code for CSI Camera

OpenCV cannot directly access CSI cameras – use GStreamer pipeline as input source:

import cv2

def gstreamer_pipeline(
    sensor_id=0, capture_width=1280, capture_height=720,
    display_width=640, display_height=480, framerate=30, flip_method=0
):
    return (
        f'nvarguscamerasrc sensor-id={sensor_id} ! '
        f'video/x-raw(memory:NVMM), width=(int){capture_width}, height=(int){capture_height}, '
        f'framerate=(fraction){framerate}/1 ! '
        f'nvvidconv flip-method={flip_method} ! '
        f'video/x-raw, width=(int){display_width}, height=(int){display_height}, format=(string)BGRx ! '
        f'videoconvert ! video/x-raw, format=(string)BGR ! appsink'
    )

cap = cv2.VideoCapture(gstreamer_pipeline(), cv2.CAP_GSTREAMER)

if not cap.isOpened():
    print('Failed to open camera. Check cable and driver.')
    exit()

print('CSI camera opened successfully')
while True:
    ret, frame = cap.read()
    if not ret:
        print('Failed to read frame')
        break
    cv2.imshow('CSI Camera', frame)
    if cv2.waitKey(1) & 0xFF == ord('q'):
        break
cap.release()
cv2.destroyAllWindows()

Using Jetson.Utils for AI Inference

For AI projects, Jetson-Inference library’s jetson.utils gives GPU-accelerated camera access:

import jetson.utils
import jetson.inference

# Open CSI camera with jetson.utils
camera = jetson.utils.videoSource('csi://0', argv=['--input-flip=none'])
display = jetson.utils.videoOutput('display://0')

# Load classification network (runs on GPU)
net = jetson.inference.imageNet('googlenet')

while display.IsStreaming():
    img = camera.Capture()
    class_idx, confidence = net.Classify(img)
    class_desc = net.GetClassDesc(class_idx)
    print(f'Classified: {class_desc} ({confidence:.1%})')
    display.Render(img)
    display.SetStatus(f'{class_desc} | {confidence:.1%} | {net.GetNetworkFPS():.0f} FPS')

Arducam IMX219 Camera Module

IMX219 sensor compatible with both Jetson Nano and Raspberry Pi. Solid choice if you work across both platforms. 8MP resolution, good dynamic range for outdoor robotics projects in India.

View Product

Troubleshooting Common Issues

No /dev/video device: Check cable – the blue side of the FPC ribbon should face away from the Jetson Nano board. Reboot after reconnecting the cable.

nvarguscamerasrc fails: Kill any other processes using the camera: sudo fuser -k /dev/video0. Only one process can access the CSI camera at a time.

Green/purple tint in image: Add nvvidconv to the pipeline with proper format conversion. Also verify the format string is BGRx not BGR before the final videoconvert step.

Low frame rate: Reduce capture resolution. At 1920×1080, CSI camera is limited to 30 FPS. Use 1280×720 for 60 FPS or 640×480 for 120 FPS on IMX219.

FAQ

Can I use Raspberry Pi Camera Module 3 on Jetson Nano?

Raspberry Pi Camera Module 3 uses IMX708 sensor which is NOT supported by Jetson Nano drivers. Use Camera Module 2 (IMX219) or Arducam/Waveshare IMX219 cameras that have Jetson Nano drivers.

How do I use both CSI cameras simultaneously?

Create two VideoCapture objects with different sensor_id values (0 and 1) using the gstreamer_pipeline function. Run in separate threads for parallel capture.

What is the maximum resolution on Jetson Nano CSI?

With IMX219: 3280×2464 at 21 FPS in still capture mode. For video: 1920×1080 at 30 FPS or 1280×720 at 60 FPS.

Can I use USB webcam instead of CSI?

Yes, USB webcams work fine with cv2.VideoCapture(0). CSI cameras are preferred for AI projects as they use the hardware ISP and can connect to the hardware video encoder for efficient H.264 recording.

Shop Camera & Vision Modules

Tags: CSI camera Jetson Nano, GStreamer Jetson camera, IMX219 Jetson Nano, Jetson Nano camera setup, nvarguscamerasrc OpenCV
Share Post
  • Facebook
  • Linkedin
  • Whatsapp
PCB DRC Checks: Design Rule Er...
blog pcb drc checks design rule errors and how to fix them 599439
blog 4 20ma current loop wiring industrial sensors guide 599447
4-20mA Current Loop: Wiring In...

Related posts

Svg%3E
Read more

Endoscope Camera Module: PCB Inspection and Industrial Use

April 1, 2026 0
An endoscope camera module is an invaluable tool for PCB inspection, industrial equipment maintenance, and quality control tasks where direct... Continue reading
Svg%3E
Read more

Number Plate Recognition System: ESP32-CAM ANPR Project India

April 1, 2026 0
Building a number plate recognition system with ESP32-CAM is an affordable approach to automatic number plate recognition (ANPR) for Indian... Continue reading
Svg%3E
Read more

Machine Vision with OpenCV: Raspberry Pi Object Detection Guide

April 1, 2026 0
Running OpenCV on a Raspberry Pi for object detection opens up countless applications, from industrial quality inspection to smart doorbell... Continue reading
Svg%3E
Read more

Arducam vs Raspberry Pi Camera: Which Camera Module to Choose

April 1, 2026 0
Choosing between Arducam and Raspberry Pi camera modules is one of the first decisions for any vision project. Both connect... Continue reading
Svg%3E
Read more

360-Degree Camera Stitching Project with OpenCV and Pi

March 11, 2026 0
Creating a 360-degree camera using OpenCV image stitching with Raspberry Pi is an ambitious computer vision project that combines multiple... Continue reading

Add comment Cancel reply

Your email address will not be published. Required fields are marked

Facebook Twitter Instagram Pinterest Linkedin Youtube

Get the latest deals and more.

Download on Google Play Download on the App Store

Call us: 020 69134444 / 1800 209 0998

Monday - Saturday 09:30 AM - 06:00 PM
For Technical Supports Email: [email protected]
For Sales / Enquiries Email: [email protected]

  • My Account

    • Cart

    • Wishlist

    • Checkout

    • My Orders

    • Track Order

    • My Account

  • Information

    • FAQs

    • Blogs

    • Career

    • About Us

    • Contact Us

    • Payment Options

  • Policies

    • Privacy Policy

    • Terms & Conditions

    • GST Input Tax Credit

    • Shipping Return Policy

    • E-Waste Collection Points

    • Our Sitemap

© Zbotic.in is registered trademark of Moxie Supply Pvt Ltd – All Rights Reserved
Login
Use Phone Number
Use Email Address
Not a member yet? Register Now
Reset Password
Use Phone Number
Use Email Address
Register
Already a member? Login Now