Use Almost Any MIPI Camera Module on Raspberry Pi (up to 18MP)

Published by Lee Jackson on

THE RASBERRY PI CAMERA PROBLEM

On May 14, 2013, the Raspberry Pi foundation announced the release of the first camera module board (5MP OV5647) for Raspberry Pi. Three years later, the V2 camera (8MP IMX219) was out with upgrades in resolution and image quality. Together with their NoIR siblings, we only have four official camera modules in total.

For years, the Raspberry Pi foundation has lacked broad camera connectivity and camera driver support., and we are all stuck with two image sensors: 5MP OV5647 and 8MP IXM219. Admittedly, those two have decent image signal processing together with JPEG/H.264 encoding, and cover most of the low-end applications which only require a reasonably good picture or video streaming.

Clearly the restriction of official standard camera modules has limited Raspberry Pi imaging projects to a narrow range of performance and features.

WHAT IS MISSING

Machine vision applications, such as robots and self-driving cars, may require cameras with a global shutter. The global shutter avoids the rolling artifacts when the object is moving at high speed, so it is crucial for image processing such as object recognition, detection, and tracking. On the other side, rolling shutters on official Raspberry Pi camera modules produce images that are blurry enough to lose this competition.

For scientific applications, sensors with high sensitivity outside the visual spectrum, such as in the IR or UV frequency bands, are required, and many times only need RAW data acquisition. For a multi-camera system, like a 3D scanner application, all the cameras have to be synchronized to each other, usually by means of a hardware trigger. Other users simply need higher resolutions than the current 8MP camera for still image capture.

The current 5MP OV5647 and 8MP IMX219 camera modules have become a handicap for the whole Raspberry Pi ecosystem and a barrier around its possibilities.

PROBLEM SOLVED

While the Raspberry Pi foundation is satisfied with the current situation, Arducam steps forward to enable advanced applications.

The Arducam team has worked hard in the past few years to solve the technical issues, and now we just released a low cost, high-performance camera board for the Raspberry Pi platform, enabling users to connect most MIPI camera modules directly to Raspberry Pi’s native CSI camera port. The Arducam drivers for these cameras are V4L2 friendly, and support basic video mirror/flip and manual exposure/gain settings. In short, this offering from Arducam enables industrial quality cameras to be paired with low cost processors, and will bring many new machine vision applications to life.

Note: Now the camera drivers are moved to the userland SDK (github link), V4L2 kernel driver will not be updated or supported unless explicitly required (customized work might be required. RFS = Request For Support. ). All camera drivers are designed and maintained by Arducam team.

Best Camera for Raspberry Pi

A lot of Raspberry Pi related projects are associated with camera applications, and the first issue that arises is how to add a camera to the Raspberry Pi board. Technically, there are at least three methods to use a camera on a RasPi, and they are SPI CamerasUSB cameras, and MIPI cameras.

The SPI camera is a general-purpose solution from Arducam that allows you to use a camera on any platform as long as that platform comes with SPI and I2C interface. The USB cameras are connected to the USB ports to serve as a Raspberry Pi webcam, just like on any other platform. The MIPI cameras bring a more robust and native experience on Raspberry Pi because the Pi comes with an onboard high-speed MIPI CSI-2 connector. MIPI stands for Mobile Industry Processor Interface, and MIPI CSI-2 is one of the most popular camera interfaces to support high-performance camera applications. It has great potential but does not get fully unleashed on the Raspberry Pi.

Raspberry Pi Camera Module V2 – What’s the problem?

On May 14, 2013, the Raspberry Pi foundation announced the release of the first camera module board (5MP OV5647) for Raspberry Pi. Three years later, the V2 camera (8MP IMX219) was out with upgrades in resolution and image quality. Together with their RPi NoIR camera siblings, we only have four official camera modules in total.

For years, the Raspberry Pi foundation has lacked broad camera connectivity and camera driver support, and we are all stuck with two image sensors: 5MP OV5647 and 8MP IMX219. Admittedly, those two have decent image signal processing together with JPEG/H.264 encoding and cover most of the low-end applications which only require a reasonably good picture or video streaming, but clearly the restriction of official standard camera modules has limited Raspberry Pi imaging projects to a narrow range of performance and features.

Global Shutter Camera and Night Vision for Pi

Machine vision applications, such as robots and self-driving cars, may require cameras with a global shutter. The global shutter avoids the rolling artifacts when the object is moving at high speed, so it is crucial for image processing such as object recognition, detection, and tracking. On the other side, rolling shutters on official Raspberry Pi camera modules produce images that are blurry enough to lose this competition.

For scientific applications, sensors with high sensitivity outside the visual spectrum, such as in the IR or UV frequency bands, are required, and many times only need RAW data acquisition.

For a multi-camera system, like a 3D scanner application, all the cameras have to be synchronized to each other, usually by means of a hardware trigger. Other users simply need higher resolutions than the current 8MP camera for still image capture.

The current 5MP OV5647 and 8MP IMX219 camera modules have become a handicap for the whole Raspberry Pi ecosystem and a barrier around its possibilities.

Arducam MIPI Cameras: Up to 18 Megapixels, 4K Resolution – PROBLEM SOLVED!

While the Raspberry Pi foundation is satisfied with the current situation, Arducam steps forward to enable advanced applications.

The Arducam team has worked hard in the past few years to solve the technical issues, and now we just released a low cost, high-performance camera board for the Raspberry Pi platform, enabling users to connect most MIPI camera modules directly to Raspberry Pi’s native CSI camera port.

These Arducam MIPI Camera Modules adopts the Raspberry Pi Zero like 22-pin CSI connector, and you can easily use them on Raspberry Pi 4, Pi 3/3B+, Pi Zero, and Raspberry Pi Compute Module with Arducam SDK and examples. You can now use a better camera module for applications like wildlife camera, surveillance camera, Raspberry Pi video streaming, AR/VR, QR code scanning, and so on.

The userland drivers support basic video mirror/flip and manual exposure/gain settings. In short, this offering from Arducam enables industrial quality cameras to be paired with low-cost processors and will bring many new machine vision applications to life. You can read more about Arducam MIPI Camera specs and features in our documentation.

The following is a non-exhaustive list of newly added camera modules for Raspberry Pi.

Note: Now the camera drivers are moved to the userland SDK (github link), V4L2 kernel driver will not be updated or supported unless explicitly required (customized work might be required. RFS = Request For Support. ). All camera drivers are designed and maintained by Arducam team.

The following is a non-exhaustive list of newly added camera modules for Raspberry Pi.

Image SensorOV7251OV9281OV2311IMX135IMX298AR1820
Resolution0.3MP
640×480
1MP
1280×800
2MP
1600 x 1300
13MP
4208×3120
16MP
4656×3499
18MP
4912×3684
Full Resolution
Frame Rate
100fps60fps
(@1-lane MIPI)
60fps10fps10fps6.5fps
Color TypeMonochromeMonochrome MonochromeColor Bayer FilterColor Bayer FilterColor Bayer Filter
Shutter
Type
GlobalGlobal GlobalRollingRollingRolling
Output
Format
8bit Gray8bit Gray 8/10bit GrayRAW/
YUV 4:2:0
RAW/
YUV 4:2:0
RAW/
YUV 4:2:0
V4L2
Support
RFS*RFS* RFS*RFS*RFS*RFS*
Exposure
Control
Manual/
Software auto
Manual/
Software auto
Manual/
Software auto
Manual/
Software auto
Manual/
Software auto
Manual/
Software auto
Gain
Control
ManualManual ManualManualManualManual
Focus
Control
FixedFixed FixedProgrammableProgrammableFixed
Mirror/Flip
Control
SupportSupport SupportSupportSupportSupport
JPEGSupportSupport SupportSupportSupportSupport
H.264
Encoding
SupportSupport SupportSupportSupportSupport

Video Demo

Here is a video demo with the monochrome Global Shutter VGA MIPI camera Module OV7251.

This demo is based on old V4L2 camera driver, we will update the new userland camera driver demo very soon.

Please check the following new userland camera driver demo:

Go with Arducam

Go with Arducam to go with the future of Pi camera applications. You can contact us for more information: [email protected]


1 Comment

Victor I Villavicencio · August 12, 2019 at 12:03 pm

Greetings from Austin, Texas, USA;
I am a high school teacher wanting to grab pressurized water plastic bottle rocket launches with high speed cameras using Raspberry Pi or/with Windows 10 laptops.
Can one use to program the high frame rate, monochrome cameras… OV7251 OV9281 https://picamera.readthedocs.io/en/release-1.13/ ?

I just installed Open CV 4.x in the Raspbi 3B+ and it works with a USB WebCam. Will Open CV 4.x work with OV7251 OV9281 ?

Leave a Reply

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