Use Almost Any MIPI Camera Module on Raspberry Pi


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.


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.


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.

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

Image SensorOV7251OV9281IMX135IMX298
Full Resolution
Frame Rate
(@1-lane MIPI)
Color TypeMonochromeMonochromeColor Bayer FilterColor Bayer Filter
Shutter TypeGlobalGlobalRollingRolling
Output Format8bit Gray8bit GrayRAW/YUV 4:2:0RAW/YUV 4:2:0
Exposure ControlManualManualManualManual
Gain ControlManualManualManualManual
Focus ControlFixedFixedProgrammableProgrammable
Mirror/Flip ControlSupportSupportSupportSupport
JPEGSupport Support Support Support
H.264 EncodingSupportSupportSupportSupport

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.

Go with Arducam

You can contact Arducam for more information:

Leave a Reply

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