Quick Start Guide¶
Abstract
This page is mainly designed and developed for the Quick Start Guide of Arducam cameras on NVIDIA Jetson Nano/Xavier NX/Orin Nano/Orin NX. For another NVIDIA Jetson Platforms, please refer to the following index to land in the corresponding pages:
Quick Start Guide for Arducam Cameras on NVIDIA Jetson AGX Orin
Hardware Connection¶
Camera for NVIDIA Jetson Nano/Xavier NX¶
Click to Expand
- Locate the camera connector (CSI). It’s on the side of the carrier board, opposite to the GPIO pins.
- Pull up on the plastic edges of the camera port. Do it gently to avoid pulling it off.
- Push in the camera ribbon. Make sure the contacts are facing the heatsinks. Do not bend the flex cable, and make sure it’s firmly inserted into the bottom of the connector.
- Push the plastic connector down. Do it while holding the flex cable until the connector is back in place.




Camera for NVIDIA Orin Nano/Orin NX¶
- Locate the camera connector (CSI). It’s on the side of the carrier board, opposite to the GPIO pins.
- Pull up on the plastic edges of the camera port. Do it gently to avoid pulling it off.
- Push in the camera ribbon. Make sure the contacts are facing the heatsinks. Do not bend the flex cable, and make sure it’s firmly inserted into the bottom of the connector.
- Push the plastic connector down. Do it while holding the flex cable until the connector is back in place.
Diagram - NVIDIA Jetson Orin Nano¶
15pin-22pin FPC Cable
22pin-22pin FFC Cable
Diagram - NVIDIA Jetson Orin NX¶
15pin-22pin FPC Cable
22pin-22pin FFC Cable
Software¶
Supported Platforms and JetPack L4T versions¶
Please refer to the following doc page for specific supported Platforms and JetPack versions of different NVIDIA Jetson Platforms:
Supported Platforms and JetPack Version - Arducam Camera for NVIDIA Jetson
Install Driver¶
For the Arducam Jetvariety Camera, you need to execute the following steps:
Jetvariety camera Board list:
Resolution | Camera Module |
---|---|
0.3MP | OV7251 |
2MP | OV2311 |
1MP | OV9281 |
2.3MP | AR0234 |
18MP | AR1820 |
21MP | IMX230 |
Note
Before you install the Jetvariety driver, please refer to the Jetpack supported version. Kindly note if your Jetpack version is not in the list of it, you need to re-burn your OS to the supported Jetpack version.
Step 1. Download the bash scripts¶
cd ~
wget https://github.com/ArduCAM/MIPI_Camera/releases/download/v0.0.3/install_full.sh
Step 2. Install the driver¶
chmod +x install_full.sh
./install_full.sh -m arducam
Use arducam_displayer app to access camera¶
1.Check and validate the camera connection¶
Make sure you have installed the camera driver before you proceed.
- Check whether the camera is detected
ls /dev/video*
You should find new video devices from /dev/videoX (X might vary from 0 ~ N).
- Check the video format supported
Install the v4l-utils package:
sudo apt-get install v4l-utils
Determine which format and resolution the current camera supported:
v4l2-ctl --list-formats-ext
2.Run the camera¶
Some of the video preview software tools like VLC player only supports formats like GRAY, YUV etc., it might not support Bayer format. In this case we provide a python demo script to illustrate how to open and preview our cameras with OpenCV. In the demo code the most important three steps should be followed.
Note
The official SD Card Image provided by Nvidia comes with a Python version of OpenCV version 4.1.1.
Designate the VideoCapture apiPreference parameter as CAP_V4L2
Disable the RGB conversion
Shift the data bit to match with the camera real output bit width and do color conversion when necessary.
- Install v4l2 python module
for Python3.x:
wget https://bootstrap.pypa.io/get-pip.py
sudo python3 get-pip.py
sudo pip3 install v4l2-fix
for Python2.7:
wget https://bootstrap.pypa.io/get-pip.py
sudo python get-pip.py
sudo pip install v4l2
Tip
If you want to install pip for both python3.x and python2.7, install python3 pip first, then python2.7 pip, otherwise the pip command will be overwritten by pip3. You can use pip -- version and pip3 --version to check if the pip version is correct.
- Download the demo code
git clone https://github.com/ArduCAM/MIPI_Camera.git
cd MIPI_Camera/Jetson/Jetvariety/example
- Check the help message of the parameters
python arducam_displayer.py -d 0
- Run the Demo
python arducam_displayer.py
3.Read the sensor register¶
Arducam MIPI Camera driver for Jetson Nano support accessing the registers of the camera sensor and driver board by ioctl. Refer to rw_sensor.c
and rw_sensor.py
for an example of how to use it.
- rw_sensor.py help file
- rw_sensor.py demo
Read a single register
python rw_sensor.py -d 0 -r 0x3500
Read multiple registers
python rw_sensor.py -d 0 -r 0x3500 0x3501 0x3502
Write a single register
python rw_sensor.py -d 0 -r 0x3500 -v 0x01
Write multiple registers
python rw_sensor.py -d 0 -r 0x3500 0x3501 -v 0x01 0x02
Use Gstreamer to access camera¶
With camera modules in the list below, you can use Gstreamer to access the camera.
Resolution | Camera Module |
---|---|
2MP | OV2311 |
1MP | OV9281 |
1.View the Pixel format¶
v4l2-ctl --list-formats-ext
2.Preview¶
If you want to use ssh connection, please export DISPLAY=:0
gst-launch-1.0 v4l2src device=/dev/video0 ! video/x-raw, format=GAY8, width=2560, height=800 ! videoconvert ! xvimagesink
format
: Select the Pixel format (v4l2-ctl --list-formats-ext
— Pixel format).
width
,height:
Select the resolution (v4l2-ctl --list-formats-ext
— Size).
ximagesink
: Preview. If does not work, please try ximagesink (xvimagesink), glimagesink, d3dvideosink (Windows).
3.Capture video¶
gst-launch-1.0 v4l2src device=/dev/video0 ! 'video/x-raw,format=(string)GRAY8,width=(int)2560,height=(int)800' ! nvvidconv ! 'video/x-raw(memory:NVMM), format=(string)I420' ! omxh264enc ! 'video/x-h264, stream-format=(string)byte-stream' ! h264parse ! qtmux ! filesink location=test.mp4 -e
format
: Select the Pixel format (v4l2-ctl --list-formats-ext
— Pixel format).
width
,height:
Select the resolution (v4l2-ctl --list-formats-ext
— Size).
4.Streaming¶
4.1 Streaming Sever¶
gst-launch-1.0 v4l2src device=/dev/video0 ! video/x-raw,format=GRAY8,width=2560,height=800 ! nvvidconv ! 'video/x-raw(memory:NVMM), format=(string)I420' ! omxh264enc profile=high cabac-entropy-coding=true insert-sps-pps=true iframeinterval=60 ! 'video/x-h264, level=(string)4.2, stream-format=(string)byte-stream' ! tcpserversink host=0.0.0.0 port=5001 -v
4.2 Streaming Client¶
Please exit the virtual machine created with anacondac, or you can install conda install gst-libav -c conda-forge
gst-launch-1.0 -v tcpclientsrc host=0.0.0.0 port=5001 ! decodebin ! fpsdisplaysink sync=false text-overlay=false
or
gst-launch-1.0 -ve tcpclientsrc host=0.0.0.0 port=5001 ! decodebin ! autovideosink
autovideosink
: Preview. If does not work, please try ximagesink
(xvimagesink
), glimagesink
, d3dvideosink
(Windows).
Display in VLC¶
Warning
Some cameras support using VLC to capture images. But please notice that some formats will not be supported by VLC.
Before Using¶
Please first check if your camera formats can be supported.
# input the command to check the camera formats
sudo apt-get install -y v4l-utils
v4l2-ctl --list-formats-ext
Using VLC¶
Open VLC media player
- Display the image
Press Ctrl+C
【Video device name】→ select "/dev/video0
"→ click 【Play】.
- Adjust exposure, gain, and frame rate
Press Ctrl+E
, drag the sliders at "Exposure", "Gain" and "Frame_rate" to make adjustments under the "v4l2 control" tab.
Special Guide for Arducam new AR0234
¶
In particular, for Arducam new AR0234 series, the usage will be slightly different. Please refer to the following for specific usage:
Product list
Product Image | SKU | Pin/Connect Type | Features | Lens Type | Field of View(D/H/V) | Focus Type | IR Sensitivity |
---|---|---|---|---|---|---|---|
![]() |
B0577 | 22/Top | Color Global Shutter | M12 | 100°(H) x 75°(V) | Fixed Focus | 650nm IR-cut filterr |
![]() |
B0579 | 22/Top | Color Global Shutter | M12 | 100°(H) x 75°(V) | Fixed Focus | 650nm IR-cut filterr |
Install the Driver
(Only supports JetPack6.2/L4T36.4.3 and later versions)
Step 1. Download bash script
cd ~ && wget https://github.com/ArduCAM/MIPI_Camera/releases/download/v0.0.3/install_full.sh
Step 2. Install the driver
chmod +x install_full.sh
./install_full.sh -m arducam_4lane
When the following prompt pops up, press y
and press Enter
to reboot the device
Step 3. Install
v4l2
sudo apt-get install v4l-utils
Step 4. Install openCV
sudo apt install nvidia-opencv-dev
Step 5. Check Resolution
v4l2-ctl --list-formats-ext
Dual AR0234 Camera Module:
Single AR0234 Camera Module:
Dual AR0234 Camera - Demonstration
Product Image | SKU | Pin/Connect Type | Features | Lens Type | Field of View(D/H/V) | Focus Type | IR Sensitivity |
---|---|---|---|---|---|---|---|
![]() |
B0577 | 22/Top | Color Global Shutter | M12 | 100°(H) x 75°(V) | Fixed Focus | 650nm IR-cut filter |
Download the Demo
git clone https://github.com/ArduCAM/ArducamUVCPythonDemo.git
Run the demo
The default resolution is 3840x1200
cd ~/ArducamUVCPythonDemo && python3 arducam_demo.py -v 3
Switch Resolution to 2560x720
python3 arducam_demo.py -W 2560 -H 720 -v 3
Switch Resolution to 1280x480
python3 arducam_demo.py -W 1280 -H 480 -v 3
Save the Image
Open the preview interface and press the s
key to save the image, and the q
key to exit the screen interface
Single AR0234 Camera - Demonstration
Product Image | SKU | Pin/Connect Type | Features | Lens Type | Field of View(D/H/V) | Focus Type | IR Sensitivity |
---|---|---|---|---|---|---|---|
![]() |
B0579 | 22/Top | Color Global Shutter | M12 | 100°(H) x 75°(V) | Fixed Focus | 650nm IR-cut filterr |
Download the Demo
git clone https://github.com/ArduCAM/ArducamUVCPythonDemo.git
Run the Demo
The default resolution is 640x480
cd ~/ArducamUVCPythonDemo && python3 arducam_demo.py -v 3
Switch Resolution to 1280x720
python3 arducam_demo.py -W 1280 -H 720 -v 3
Switch Resolution to 1920x1200
python3 arducam_demo.py -W 1920 -H 1200 -v 3
Save the Image
Open the preview interface and press the s
key to save the image, and the q
key to exit the screen interface
Special Guide for Arducam AR0822
¶
In particular, for Arducam AR0822 series, the usage will be slightly different. Please refer to the following for specific usage:
Product list
Product Image | SKU | Pin/Connect Type | Features | Lens Mount | Field of View(D/H/V) | Focus Type | IR Sensitivity |
---|---|---|---|---|---|---|---|
![]() |
B0586 | 22/Top | 4K HDR | M12 | 145°(D)×120°(H)×65°(V) | Fixed Focus | 650nm IR-cut filterr |
Install the Driver
(Only supports JetPack6.2/L4T36.4.3 and later versions)
Step 1. Download bash script
cd ~ && wget https://github.com/ArduCAM/MIPI_Camera/releases/download/v0.0.3/install_full.sh
Step 2. Install the driver
chmod +x install_full.sh
./install_full.sh -m arducam_4lane
When the following prompt pops up, press y
and press Enter
to reboot the device
Step 3. Install
v4l2
sudo apt-get install v4l-utils
Step 4. Install openCV
sudo apt install nvidia-opencv-dev
Step 5. Check Resolution
v4l2-ctl --list-formats-ext
Download the Demo
git clone https://github.com/ArduCAM/ArducamUVCPythonDemo.git
Run the demo
3840x2160@15fps:
cd ~/ArducamUVCPythonDemo
python3 arducam_demo.py -W 3840 -H 2160 -v 3
Switch Resolution to 1920x1080
1920x1080@60fps:
cd ~/ArducamUVCPythonDemo
python3 arducam_demo.py -W 1920 -H 1080 -v 3
Switch Resolution to 1280x720
1280x720@60fps:
cd ~/ArducamUVCPythonDemo
python3 arducam_demo.py -W 1280 -H 720 -v 3
Switch Resolution to 640x480
640x480@60fps:
cd ~/ArducamUVCPythonDemo
python3 arducam_demo.py -W 640 -H 480 -v 3
Save the Image
Open the preview interface and press the s
key to save the image, and the q
key to exit the screen interface