Camarray HAT configuration of two camera

I purchased the below module;

So in my current project work, I want to replace Rpi with a Qualcomm QCS610 chip and use the rest of things as it is like arducam HAT module.

But i am not able to capture camera image on QCS610. So i check that the configuration used in QCS610 is not correct.
So to make the correct configuration, i need the information that how RPI configure with ARDUCAM.

So can you help me for how two camera hat modules communicate with two cameras means all camera configuration is in the Arducam HAT chip itself or all camera configuration is in the Rpi module?

Thank you…

Kems T

hi, @KemsT

You can refer to the following link to understand how to configure Arducam 12MP*2 Synchronized Stereo Camera Bundle Kit in Raspberry Pi.

Hi Yang,

Thanks for replying.

But I already refer to this link. The block diagram is for IMX477 and the rest of the things is the overall information relative to the setup of RPi with Arducam.

I need some information that the camera configuration is where like it’s is in RPi or it’s in Arducam HAR module’s Chip.
Because when i start the application into QCS610 i am not see the Slave id of the camera.

So please help me on this that where is the camera configuration in Rpi or in the Aducam hat module.

hi, @KemsT

Our camera drivers and configurations are all in the Raspberry Pi and have nothing to do with HAT.

HAT only does one thing, which is to stitch the multiple images received into one and send it out.

Thanks, Yang.

This is a great help for me in completing my project.

Hi, Yang

I see that file used for measuring depth.

I need to be porting file in QCS610. Here I used the YOCTO build system.

Would you like to help me for the porting into the QCS610 platform?


hi, @KemsT is developed based on Raspberry Pi mmal. mmal is closed source and therefore not portable.

Additionally, we have deprecated Now fully embrace libcamera.

libcamera is an open source camera stack and framework.

Thanks for quickly replying Yang.

For more on this, like it means for depth measurement python code given into [link](MIPI_Camera/RPI/stereo_depth_demo at master · ArduCAM/MIPI_Camera · GitHub) will be able to run using libcamera.

This means all functionality which is in the the same as written into libcamera.

hi, @KemsT

libcamera and have different ways of acquiring images and cannot be directly replaced.

It can be rewritten with libcamera by referring to stereo_depth_demo.

Raspberry Pi implements a python wrapper library for libcamera.

Thanks Yang.

Let me check this and reply to you soon.

Hi Yang,

Thanks for this library suggestion. We tested picamera2 lib and it’s working well on RPi 4.

Now we have an interface the Arducam 12MP stereo camera HAT to QCS610.

Here we identified two slaves where the one salve id is 0x24 used for changing cameras like CAM0 or CAM1 or BOTH and the second slave id is 0x1A used for the IMX477 camera.

Also, we are able to read the chip id of the camera from the Arducam HAT module through the I2C interface of QCS610.

So I have two queries on this like;

  1. We have interface of two IMX477 cameras with QCS610 through the Arducam HAT module then why do we get only one camera detection of 0x1A only whereas we have to interface two cameras?
  2. As we know that the IMX477 camera Slave id is 0x34 then why do we get 0x1A slave id?

Please help me for solving these queries.

Hi, @KemsT

The role of HAT is to connect multiple cameras to solve the problem that the Raspberry Pi has only one cis interface. It tricks the Raspberry Pi as if there is only one camera connected.

0x1A is the address where the IMX477 camera is mounted under i2c. You can see it in the device tree of the Raspberry Pi.

Thank you for quickly replying.

It means Arducam HAT is the solution for the connection of multiple cameras with a single CSI interface of RPi.

So if we write IMX477 sensor configuration to 0x1A, it will configure both the cameras (CAM0 and CAM1) or only one camera?

Yes, two cameras will be configured and they will be fully synchronized.

Hi Yang,

When we connect Arducam HAT with our platform, we can see three slave ID as follow:

  1. 0x24
  2. 0x1A
  3. 0xC

We wrote 4 lanes IMX477 configuration on slave ID 0x1A and configure MIPI Rx to receive over 2 lanes as HAT will stream the data over 2 MiPi Lanes but we are not getting any data over MiPi. Are we missing any part here or doing something wrong?

Do we need to enable something on HAT to get data streaming ?

IMX477 configurations works fine on b0167b12 Arducam module and we get continuous stream of data on our platform.

Please do let me know if you need more information.

Vijay Patel

Hi, @vijaym.patel

Our hardware is 2 lanes and cannot use 4 lanes configuration.

Hi Yang,

That means we need to configure IMX477 for 2 lanes only?


Yes, only the configuration of 2 lanes can be used.

Hi Yang,

Thanks for your response.

We did used 2 lanes configuration and wrote those configurations on 0x1A slave ID but still we are not getting any MIPI data. If we read chip ID we can successfully able to read it (0x477). What could be the issue ? What are your suggestions for further debugging ?

Vijay Patel