Nvidia Jetson Cameras

  1. Home
  2. Docs
  3. Nvidia Jetson Cameras
  4. Multiple cameras on the Jetson
  5. Camarray – Arducam 12MP IMX477 Synchronized Stereo Camera Bundle Kit

Camarray – Arducam 12MP IMX477 Synchronized Stereo Camera Bundle Kit


​This Arducam 12MP Synchronized Stereo Camera Bundle Kit is capable of running two 12MP IMX477 Camera Modules simultaneously through a single MIPI CSI-2 camera slot connection on popular embedded systems like Raspberry Pi, Jetson Nano and Jetson Xavier NX. It consists of two 12MP High Quality IMX477 camera module and an Arducam stereo camera HAT. The stereo camera HAT is enabled by ArduChip to disguise the dual-camera connection as a single camera to be accepted by the single-board computers. You can use this bundle to build your stereo camera system for depth-related vision applications or upgrade your IMX219 stereo setup.

What is Camarray

Camarray is a series of embedded stereo cameras and multiple camera solutions from Arducam. Upgraded from Arducam Sync Stereo Camera HAT, the Camarry can disguise up to 4 synched camera modules as a single camera slot connection to embedded systems like the Raspberry Pi, Jetson nano, and Xavier NX. With Arducam camarray, your camera connectivities are no longer limited to the camera connectors on the motherboard or the carrier board. Along with Arducam-provided camera drivers, more flexibility can be added to your multi-camera applications.​


1.The Camarray HAT does not support digital pan in half resolution combine and programmable pan speed control.
2.The Camarray HAT is not a crop and a half (halving the horizontal resolution of each camera and halving the field of view) but a compressed half (halving the horizontal resolution of each camera but leaving the field of view unchanged), so it does not need to support scan mode.


Our IMX477 camera module support 4-lane in hardware, but the 4-lane camera driver requires extra customization. Here is why:
 1.Standard Raspberry Pi and Jetson Nano/Xavier NX can’t physically support a 4-lane connection (both of them only have 2-lane CSI connectors). Only the Raspberry Pi Compute Module and some 3rd party Jetson Carrier Boards come with 4-lane hardware support. Therefore, it’s not a general need.
2.Extra works, specifically camera drivers, are required for a 4-lane connection other than the 4-lane physical connector. And the drivers are limited by the performances of the platform itself. For example, 4-lane can’t unlock 4k video on Raspberry Pi because the VideoCore does not currently support it. Jetson Nano is also to some extent limited because of the encoding capabilities. You need to make sure you really need it.

Common Specs

Image Sensor

Sensor ModelIMX477
Shutter TypeRolling Shutter
Active Pixels4056×3040
Image Sensor FormatType 1/2.3″
Pixel Size1.55μm×1.55μm
Color Filter Array650nm
IMX477 Block Diagram
IMX477 Block Diagram

Lens Assembly

Focus TypeManual Focus
Focusing Range20cm to infinity (when focused to infinity)
Focal Length6 mm
Field of View(FoV)65° Horizontal
Lens MountCS Lens
IR SensitivityVisible light
cs lens 65H 1


Camera Board Size38×38 mm
HAT Size65×56 mm
UC 517 DIM

OV9281 Camera Board Mechanical Drawing

UC 512.Rev .C DIM 01
HAT Mechanical Drawing
Pin No.Pin NameTypeDescription
13V3Power3.3V power supply
2FSINInputFrame Sync Input
3STBOutputLED Strobe Output
53V3Power3.3V power supply
6SDAI/OSCCB serial interface data I/O
7SCLInputSCCB serial interface clock input

Connector & Cable

Connector InterfaceMIPI CSI-2 15-pin 2-lane
Ribbon Cable Length150mm (22-pin), 300mm(15-22pin),
Pin No.Pin NameTypeDescription
2CAM_D0_NOutputMIPI Data Lane 0 Negative
3CAM_D0_POutputPixel Data Lane0 Positive
5CAM_D1_NOutputMIPI Data Lane 1 Negative
6CAM_D1_POutputMIPI Data Lane 1 Positive
8CAM_CK_NOutputMIPI Clock Lane Negative
9CAM_CK_POutputMIPI Clock Lane Positive
11CAM_IO0InputPower Enable
12CAM_IO1InputLED Indicator
13CAM_SCLBidirectionI2C SCL
14CAM_SDABidirectionI2C SDA
15CAM_3V3Power3.3V Power Input

Driver Performance

Video FormatGERY(8-bit)/Y10P(10-bit)
Output Interface2-lane MIPI serial output
Output Formats8/10-bit RAW
Frame Rate[email protected]*2×3040

Quick Start Guide


Same operation on Xavier NX.The only difference is the driver package.

Hardware Setup

Connect the ribbon cable

Connect to the Camera Board
2 1
Connect to the Camarrary HAT
3 1
Connect to the Camarrary HAT
16 2
Open the Jetson Nano connector (any one) in the direction of the arrow
17 2
Insert the ribbon cable into the connector with the contact side facing inward
18 2
Close the connector

Plug Camarrary HAT into Jetson Nano GPIO Header

3 01 2
3 02 2

NOTE: In addition to the above power supply mode, you can also choose to supply via USB

15 2
19 2

Final picture

02 1

Check the Driver

This step is to check if you have other drivers installed. If you are sure that you don’t have other drivers installed, you can skip this step and go to install Arducam IMX477 Stereo Camera Driver.

1.Driver type

There is three drivers for Jetson:​​

  • Official IMX219 driver
  • Arducam IMX477 driver
  • Arducam V4L2 driver


These three drivers are in conflict with each other and only one of the three options is available.​

The product is driven by the Arducam IMX477.

1) The Arducam IMX477 driver will automatically overwrite the other drivers and you don’t need to uninstall the other drivers.

2) If you want to use the official IMX219 driver, please type the following command to uninstall Arducam IMX477 driver or Arducam V4L2 driver.

sudo dpkg -r arducam-nvidia-l4t-kernel

2.Check your driver

Execute the following command and see if it responds. If there is no response, the corresponding driver is not installed.​​​

#Check if you have installed Official IMX219 driver

dmesg | grep imx219
Check your driver1
For example, no response, you don’t install the official IMX219 driver.

#Check if you have installed Arducam IMX477 driver

dmesg | grep imx477
Check your driver2
For example, no response, you don’t install the Arducam IMX477 driver.

#Check if you have installed Arducam V4L2 driver

dmesg | grep arducam
Check your driver3

For example, it has response, you installed Arducam V4L2 driver. Failed means you haven’t connected Arducam IMX477 camera or the connection is wrong.

Install Arducam IMX477 Stereo Camera Driver


For the latest system of Jetson Nano, we released the 32.7.1 version of the IMX477 Stereo driver. You can try to re-execute the installation script.
If you encounter any problems when installing, you can try to install manually:
wget https://github.com/ArduCAM/MIPI_Camera/releases/download/v0.0.3/install_full.sh
chmod +x install_full.sh
./install_full.sh -m imx477_stereo

1.Download automatic installation script

cd ~
wget https://github.com/ArduCAM/MIPI_Camera/releases/download/v0.0.3/install_full.sh

2.Install the driver

chmod +x install_full.sh
./install_full.sh -m imx477_stereo
automatic driver installation2

Enter y to reboot.

First Use

1.Check whether the camera is detected

ls /dev/video0

2.Preview the camera feed in real time


FRAMERATE=13 # Framerate can go from 2 to 13 for 4032x3040 mode
gst-launch-1.0 nvarguscamerasrc sensor-id=0 ! "video/x-raw(memory:NVMM),width=4032,height=3040,framerate=$FRAMERATE/1" ! nvvidconv ! "video/x-raw(memory:NVMM),width=1432,height=1080,framerate=$FRAMERATE/1" ! nvoverlaysink
Preview the camera feed in real time1

4032×3040 exceeds the system resolution and requires zooming to display.


FRAMERATE=60 # Framerate can go from 2 to 60 for 1920x1080 mode
gst-launch-1.0 nvarguscamerasrc sensor-id=0 ! "video/x-raw(memory:NVMM),width=1920,height=1080,framerate=$FRAMERATE/1" ! nvvidconv ! nvoverlaysink


FRAMERATE=30 # Framerate can go from 2 to 30 for 2592x1944 mode
gst-launch-1.0 nvarguscamerasrc sensor-id=0 ! "video/x-raw(memory:NVMM),width=2592,height=1944,framerate=$FRAMERATE/1" ! nvvidconv ! "video/x-raw(memory:NVMM),width=1440,height=1080,framerate=$FRAMERATE/1" ! nvoverlaysink
2592×1944 1


FRAMERATE=40 # Framerate can go from 2 to 40 for 2560x1440 mode
gst-launch-1.0 nvarguscamerasrc sensor-id=0 ! "video/x-raw(memory:NVMM),width=2560,height=1440,framerate=$FRAMERATE/1" ! nvvidconv ! "video/x-raw(memory:NVMM),width=1920,height=1080,framerate=$FRAMERATE/1" ! nvoverlaysink
ResolutionMaximum Frame Rate

Trouble Shooting

Check whether the driver is installed

Run the following command to check whether the driver of imx477 is installed:

dmesg | grep imx477

If the driver is installed correctly, the command will output information with imx477 (Note: The output may not be the same as the picture below):

If the driver is not installed, please refer to this document to install the driver:


Detect HAT and camera via I2C

Run the following command to detect i2c devices:

i2cdetect -r -y 7
# Tip: The I2C bus of the CAM0 interface of Jetson Nano B01 is 7, 
# and the I2C bus of the CAM1 interface is 8.
# The I2C bus of the CAM0 interface of Jetson Xavier NX is 10, 
# and the I2C bus of the CAM1 interface is 9.

normal circumstances:

Check HAT

Seeing 24 means that the HAT can be detected.

If you don’t see 24, the following possibilities are possible:

a. There is a problem with the connection between Jetson and the HAT or the cable is broken,

b. HAT is not powered on

Please check the relevant connection at this time

Check Camera

In the previous step, if the I2C of the HAT can be detected normally, then the connection between the HAT and Jetson is correct. If the camera cannot be detected at this time, then the problem is likely to be the connection between the HAT and the camera (maybe the connection Incorrect or broken wire).

If the camera cannot be detected, the result of i2cdetect is similar to the following (the device is not detected at 1a):

Check the dmesg log, the driver cannot detect the camera:

Please check the connection between the camera and the HAT at this time:

Both HAT and camera can detect

Test commands that will be used:

SENSOR_ID=0 # 0 for CAM0 and 1 for CAM1 ports
FRAMERATE=60 # Framerate can go from 2 to 60 for 1920x1080 mode
gst-launch-1.0 nvarguscamerasrc sensor-id=$SENSOR_ID ! "video/x-raw(memory:NVMM),width=1920,height=1080,framerate=$FRAMERATE/1" ! nvvidconv ! nvoverlaysink

If the HAT and camera can be detected, but nothing is displayed when running the test command:

In this case, there may be a problem with one of the cameras, it may be that the cable of one of the cameras is not connected properly or the cable is broken.

At this time, the following errors may appear on the command line:

Similar information appears in the dmesg log:

Note: At this time, a reboot is required to proceed with the next test.

Check if the HAT is working properly

To check whether the HAT program is loaded correctly, you can judge by the light on the HAT. Normally, the green light on the HAT will flash when the camera is powered on for the first time or every time the camera is turned on.

Test channel 0

Run the following command to switch the camera to channel 0:

i2cset -y 7 0x24 0x24 0x01
# Tip: The I2C bus of the CAM0 interface of Jetson Nano B01 is 7, 
# and the I2C bus of the CAM1 interface is 8.
# The I2C bus of the CAM0 interface of Jetson Xavier NX is 10, 
# and the I2C bus of the CAM1 interface is 9.

After running the above command, run the test command again. If the above error still occurs, the problem may be on channel 0. If it can be displayed normally, the problem may be on channel 1. Continue testing on channel 1.

Test channel 1

First reboot Jetson, after rebooting, execute the following command to switch to channel 1:

i2cset -y 7 0x24 0x24 0x02
# Tip: The I2C bus of the CAM0 interface of Jetson Nano B01 is 7, 
# and the I2C bus of the CAM1 interface is 8.
# The I2C bus of the CAM0 interface of Jetson Xavier NX is 10, 
# and the I2C bus of the CAM1 interface is 9.

Run the test command after running the channel switching command. If it can be displayed normally, the problem may be on the camera of channel 0, and if it cannot be displayed normally, the problem may be on channel 1.

If the two channels cannot be displayed normally, there are problems with both cameras, and the hardware may be damaged.

Was this article helpful to you? Yes No 1