1. Introduction
Arducam 2MP Global shutter OV2311 camera module is designed for Raspberry Pi boards, and it can be connected to RPi’s CSI-2 camera interface without additional hardware. The camera driver is using on the Arducam OBISP camera driver although this OV2311 module doesn’t support hardware ISP functionalities. The OBISP camera driver is based on the V4L2 driver framework. It is software friendly driver that most of the camera applications can access to the camera. The most important, using C/C++, OpenCV to access the camera is fairly straightforward.
2. Specs
Note: This module does not support On-Board ISP, and does not support automatic adjustment of exposure and gain. By the way, you can choose the module that suits you according to your needs for the lens. The following table is for your reference.
SKU | Lens Thread | Lens Field of View(FoV) | IR Sensitivity |
B0220 | M9 x 0.25P | 55°(H) | Without IR Filter, IR sensitive |
B0221 | M12 x 0.5P | 83°(H) | Without IR Filter, IR sensitive |
Image sensor
Sensor Model | OV2311 |
Shutter Type | Global Shutter |
Active Pixels | 1600×1300 |
Resolution | 2MP |
Image Sensor Format | Type 1/2.9″ |
Pixel Size | 3μm×3μm |
Color Filter Array | None(Monochrome) |
3. Hardware

Note: If you have the signal OV2311 camera board, you can not install the V4L2 OBISP driver without a Pivariety board like the figure under the camera board. You can follow the DOC to install the MIPI_Camera driver and access the camera.

4. Software
4.1. V4L2 OBISP Driver Installation
Please refer to here!
4.2. First Use
4.2.1.Check whether the camera is detected
ls /dev/video0

4.2.2. Check the video format supported
v4l2-ctl --list-formats-ext

4.2.3. Preview the camera feed in real time
#RAW8
arducamstill -t 0 -pixfmt GREY -w 1600 -h 1300
#RAW10
arducamstill -t 0 -pixfmt Y10P -w 1600 -h 1300

The last line shows the frame rate in real-time.
GREY for RAW8 and Y10P for RAW10.

Press Ctrl+C to exit the preview.
Advanced Commands
#View v4l2 command parameters
v4l2-ctl -l
#Adjust exposure
v4l2-ctl -c exposure=100
#Adjust gain
v4l2-ctl -c gain=14
4.2.4. Receive data without displaying the image
Dropped frames may exist due to platform performance. You can test the actual input frames by only receiving data without displaying the image.
#RAW8
v4l2-ctl --set-fmt-video=width=1600,height=1300,pixelformat='GREY' --stream-mmap --stream-count=-1 -d /dev/video0

#RAW10
v4l2-ctl --set-fmt-video=width=1600,height=1300,pixelformat='Y10P' --stream-mmap --stream-count=-1 -d /dev/video0

4.2.5. Adjust exposure
Open two terminals, the first one is for executing the displaying images command, the second one is for executing the adjusting exposure command.
#Adjust exposure:
v4l2-ctl -c exposure=1000
#Check exposure parameters (minimum, maximum, default)
v4l2-ctl -l
For example, execute the below command in the second terminal:
v4l2-ctl -c exposure=4000

Increasing the exposure time results in a brighter image and a lower frame rate.

4.2.6. Adjust gain
Open two terminals, the first one is for executing the displaying images command, the second one is for executing the adjusting gain command.
#Adjust gain:
v4l2-ctl -c gain=255
#Check exposure parameters (minimum, maximum, default)
v4l2-ctl -l
For example, execute the below command in the second terminal:
v4l2-ctl -c gain=255

Increasing the gain results in a brighter image and no change to the frame rate.

4.3. Display Images via VLC Media Player
Please refer to the steps in this chapter!
4.4. Display Images via Mplayer
Please refer to the steps in this chapter!
4.5. External Trigger Mode
Please refer to the steps in this chapter!