Using two RPi cameras (breakout)

StereoPi hardware discussion
Post Reply
erihh3
Posts: 1
Joined: Sun Sep 20, 2020 3:37 pm

Using two RPi cameras (breakout)

Post by erihh3 »

I'm an undergrad student and kinda newbie to RPi, image processing and stuff.

That being said, I'm trying to build a camera module similar from those https://www.amazon.com/Arducam-Camera-A ... D5A5WG0SE1 of Arducam that can support 2 cameras CSI2 output to use stereo vision with 2 RPi v2 cams and the RPi itself.

I took a look on StereoPi but the core and connections looks like a overkill solution to my problem since i'll still have to use a RPi at the end.

I found some sch and papers on parallel data transmission hardware for cameras but almost none on CSI2. Could you guys give me some sources or advice on how to start the sch of the breakout board that I mentioned?

User avatar
Realizator
Site Admin
Posts: 594
Joined: Tue Apr 16, 2019 9:23 am
Contact:

Re: Using two RPi cameras (breakout)

Post by Realizator »

Hi Erihh3,
The module you mentioned is designed to work with the single-camera only, but you can choose which one from the two connected.
Here is a part of this board description: "Only one of the two cameras can be activated at a time, and they are working in alternate ways.".
There exist a special software trick, which allows you to do a camera switch to achieve real-time-like performance. But this requires a deep immersion into the low-level driver programming.
The idea of this adapter is simple. Classic RPi has 4-lane CSI-2, so you can connect two 2-lanes cameras. This solution can work, but, as I mention, requires serious low-level programming. If you want to go this way, take a look at the Arducam solutions (they have a lot).
In the StereoPi we used another approach. Raspberry Pi Compute Module has two CSI-2 buses inside (one 2-lane and another one is 4-lane). So you can connect 2 cameras and work with both using built-in system tools, as stereoscopic support is implemented in Raspberry Pi OS since 2014. It means you don't need to do a special connection, compile and install specific drivers, etc.

Both approaches are working, but we prefer to use native functions. You can choose your approach. :-)
Eugene a.k.a. Realizator

Post Reply