Preface
As one of the leading companies that pioneers in multiple cameras for popular embedded systems, Arducam now releases the new multi-camera solutions – named Camarray – which allows you to connect and sync up to 4 MIPI camera modules on the Raspberry Pi, Jetson Nano, and Jetson Xavier NX or even more platforms. Read along for more details.
Look back on the trip: Arducam and Multiple Cameras
Why does Arducam provide solutions for multi-camera applications?
CMOS cameras help us image the real world in digital form. We live in a three-dimensional world, but a single-camera system primarily represents the two-dimensional space by collecting photons in a flat surface of an image sensor. How can we reconstruct the 3D world? Use multiple cameras.
If you want to model and represent the 3D space, you need more cameras to set up a camera coordinate system, and then map it to that of the real world. Generally speaking, the more, the better. More cameras lead to better coverage of a wider area, and thus to better accuracy.
People have relied on this idea to build amazing solutions and change the world. Multiple cameras can help self-driving cars to tell their position on the road and to avoid other cars and obstacles. Multiple camera processing technologies have enabled VR (Virtual Reality), AR(Augmented Reality), and other applications like SLAM (Simultaneous Localization and Mapping).
What has Arducam offered for multiple cameras on embedded systems?
It’ll be cool to attach a fancy camera array to a fancy computer system, but we believe it’ll be even cooler if we can attach multiple cameras to simple single-board computers or edge devices, such as the Raspberry Pi and Jetson Nano.
For years, Arducam has been pushing ourselves for multi-camera solutions on RPi-like embedded systems. We first released a multi-camera adapter that enabled a Pi to connect multiple camera modules and switch between them in a time-multiplexed fashion, and then released a synchronized stereo camera HAT to connect and sync two cameras at the same time.
Later as the newer NVIDIA Jetson platform prevailed, we also added support to the Jetson Nano and Xavier NX and made the solution more compatible and universal. As we dive deeper, the trip to multi-camera solutions becomes lonelier, yet we’re still constantly asking ourselves: How can we make the solution even better?
Introducing the Arducam Camarray products and solutions
What is Camarray?
Camarray is Arducam’s latest multi-camera solutions for Raspberry Pi, Jetson Nano, Xavier NX and more, consisting of both hardware and software solutions. The core hardware solution breaks the limits of physical camera connectors and allows for connection of up to 4 same MIPI cameras. The software solution makes it possible to completely display and capture video feeds from all the cameras connected, or even support image sensors that are not natively supported by the official drivers.
With the hardware and software solutions combined, you will have the option to either use the multi-camera system in an official way with your existing code without any change by using official driver (mmal or nvargus), or use it in the Arducam way with our opensource V4L2 drivers. Let’s call it the Native Mode and the Arducam Mode, respectively.
With Native Mode, it can squeeze the multiple video inputs by changing the resolution ratio in order to output the same resolution as the driver expected. In this way, it cheats the backend processor as if only one camera is connected.
If you want to go beyond what the official driver is capable of and get the full un-squeezed image from each camera, use the open-source V4L2 camera driver from Arducam.
What are the hardware platforms, driver features and camera modules supported by Camarray?
The Arducam Camarray solution is mainly designed for and tested on a single board computer, including the Raspberry Pi, Jetson Nano, and Jetson Xavier NX. For those users who want to use it on a Windows/Linux PC or a laptop, Arducam also allows you to connect the Camarray HAT to a PC with an Arducam USB3.0 camera shield and a MIPI camera adapter board.
Since the camera driver is V4L2 compliant, it is compatible with almost all of the camera tools or software that support V4L2 cameras like VLC player, Gstreamer, OpenCV, etc. The driver source code is also available for end-users to rebuild the driver for new kernel when there is no latest driver installation package provided.
In terms of the camera modules supported, the idea is simple: As long as the MIPI camera module already works on your existing systems, Arducam Camarray makes multiple of them possible. Currently, we have products and evaluation bundles based on the native 5MP OV5647, 8MP IMX219, 12MP IMX477, as well as the Arducam-supported global shutter image sensors like OV9281 and OV2311. That being said, even if the MIPI camera modules are not supported at present, we are willing to take customization challenges to make that possible.
Important NOTE:
We have to mention that a random combination of camera module and Camarray boards are not supported. Different image sensors require different Camarray firmware to work, and the camera modules in the bundle kit are different from kit to kit even if they look the same. Therefore, we would highly recommend users try our selected bundle kit to do the proof of the concept before moving to customized design unless the bundle doesn’t fit your need.
What are the types of Camarray Products?
The Arducam Camarray is a versatile solution, it can take the form of different product styles. That also means it can be integrated into your products more easily. Currently, we offer products in 3 different forms, and we also accept customization requests if the off-the-shelf products and bundles cannot meet your requirements.
Stereo Camera Module
-
[Discontinued] Arducam 2MP*2 Stereo Camera for Raspberry Pi, Nvidia Jetson Nano/Xavier NX, Dual OV2311 Monochrome Global Shutter Camera Module
-
[Discontinued] Arducam 1MP*2 Stereo Camera for Raspberry Pi, NVIDIA® Jetson Nano/Xavier NX/AGX Orin/Orin Nano/Orin NX, Dual OV9281 Monochrome Global Shutter Camera Module
If you are familiar with the commercial USB stereo cameras like Intel RealSense or Zed but are looking for a MIPI equivalent, then this Stereo Camera Module style might be a good candidate. With a standard 15-pins FPC cable, you can connect the stereo camera as easily as your existing camera. It has a fixed baseline, and the typical application of this stereo camera is depth sensing and obstacle avoidance.
Currently, we have 2 global shutter monochrome stereo camera modules: the 1MP×2 OV9281, and the 2MP×2 OV2311. Arducam also offers 3D-printed cases and tripods to make it easier to use.
Highlights:
- Monochrome global shutter cameras fully synchronized
- Fixed 80mm base line
- Optional variation of M12 mount lenses
- Side by Side merged output image through a single MIPI interface
- V4L2 compliant kernel camera driver
- Support Raspberry pi and Jetson Nano/Xavier NX platforms
- Opensource 3D printing enclosure
Camarray Stereo Camera HAT
The Camarray Stereo Camera HAT is the successor of the Arducam Synchronized Stereo Camera HAT. Compare to its predecessor, the Camarray Stereo Camera HAT mainly undergoes 4 major upgrades:
- The Native Mode now combines squeezed images instead of cropped images – No FoV lose.
- Support of the Arducam 12MP IMX477 High Quality Camera – Higher Resolution
- Easier global shutter camera integration – Such as OV9281 and OV2311.
- Support variable baseline with specific modified camera modules – Such as modified IMX477 and OV9281
NOTE:
With the release of the Camarray, the previous products based on the Arducam Synchronized Stereo Camera HAT will phase out. Later, the newly shipped 5MP and 8MP stereo bundles will incorporate the Camarray Stereo Camarray HAT.
Camarray Quad Camera HAT
The Camarray Quad Camera HAT fully unlocks the potential of the Camarray solution and allows for up to 4 camera module simultaneously connected to your RPi or Jetson board. Currently, we offer the OV9281 1MP*4 quadroscopic stereo bundle kit for your prototyping and evaluation.
This bundle kit includes 4x 1MP OV9281 monochrome global shutter cameras and a Camarray HAT. The HAT first merges 4 camera images into a single side by side image, and then output through a 2-lane MIPI interface. The overall streaming performance can reach (1280×4)x800@30fps, with further customization using 4-lane MIPI output, the throughput could be doubled, at (1280×4)x800@60fps.
With one Camarray Quad Camera HAT, you can connect 4 cameras to a single MIPI CSI connector on regular Raspberry pi boards. While using two of these HATs, you can connect 8 cameras to a Raspberry pi Compute Module, Jetson Nano B01, or Jetson Xavier NX boards. Using this setup, users can perform multi-spectral or spatial 3d reconstruction applications on a single embedded device, but the processing power needs to be considered as well. The bundle kit is useful for fast prototyping and proof of concept. Further customization for particular sensors or lens options is also supported.
Camarray customization Services
Since the Camarray solution is flexible and easy to integrate, we are glad to customize this solution and make it tailored to your specific needs. Whether you think our prototype products do not cover your needs, or find it well fit after proof-of-concept and want us to help you build a real product, we welcome you to contact Arducam experts for further customization with a different sensor, lens options, and more.
The Pivariety Project: IMX219 Bundle Kit w/ Raspberry Pi’s Native ISP Tuning Algorithms
Stereoscopic Camera Module V2 with Hardware ISP Tuning for Raspberry Pi
First Raspberry Pi Stereo Camera with ISP Tuning We are the first to bring stereo vision cameras to regular Raspberry Pis, the solution allows you to connect up to 4 camera modules to Pi’s CSI connector, and to keep them fully synchronized in frame level with nanosecond tolerance. Looking back, stereo camera depth mapping used […]
Important Note on the Arducam Camarray HAT:
The Camarray HAT is not sold alone for the following reasons:
- Most of the cameras on the market are not designed for synched stereo uses. We’ve modified our camera modules specifically for the Camarry HAT. Your own V1, V2 or HQ camera modules won’t directly work with it.
- The Camarray HAT requires different firmware for different Image sensors that are not natively working with your embedded systems. Your own OV9281 and OV7251 camera modules won’t directly work with it, and they are not easily interchangeable.
Customization is required if you have extra requirements as the following:
- You need the camera module to run on other Video Modes and Frame Rates.
- You need to trigger the camera with an External Hardware trigger.
Get the Camarray Solution
You can find more information about the Arducam Camarray and how to get your own kit on the Arducam Camarray solution page.
You mentioned “use the open-source V4L2 camera driver from Arducam.”. Where can the driver source be found? Can find nothing obvious on Github.
Many thanks.
For Raspberry Pi, it’s using the same driver as Arducam OBISP MIPI camera modules, and for the Jetson Platform, it’s the same as our Jetvariety Drivers.
Kyle can I use the quad multiplexer on Raspberry Pi with an Android OS? If so I need details on how to access the cameras. I can get 1 to work but not 3.
Our Engineer Bin is working on it. Android runs a little bit differently from Raspberry Pi OS since all the controls on Android are based on APPs instead of command-line control, so some extra work is required.
Do you plan to offer “Camarray Quad Camera HAT” together with HQ 12 MP cameras?
Probably, but that quad 12MP bundle can be and should be requested for customization, because on the one side, it won’t get a great market demand, and on the other, the embedded systems the HAT’s designed for will experience a real hardship processing it.
I am wondering if you offer a USB shield which will work with this so that the control computer just “sees one webcam”? If so, would a computer with USB 2.0 function (with lower frame rate) or would it not work at all.
I should add that the intended computer would be a board running linux with an ARM cpu.
Do you have camera suggestions to use with camarray in order to get multispectral imaging?
This.
Quad Camera HAT with 4x 1MP cameras is the solution that I’m looking for my application. I’m satisfied with resolution and fps of OV9281 cameras.
Unfortunatelly instead of monochrome I need colour cameras. Is it possible to get this customisation or there are “physical” restrictions and that is why this solution is implemented with monochrome cameras?
Yes, it is available for customization. For color sensors, check out these.
i would like to make an 3d scanner -structured light using an 2mp Global shutter + videoprojector, and conect it to a windows 10 laptop. Should i go for an Camarray, or better for me to buy the usb2 2mp Global shutter cameras ?