Camarray i2c not detected on Raspberry Pi 5 64MP Quad Camera Kit

Hi everyone, I’m stuck with my Camarray HAT. It’s not being detected over i2c at all. I was following the docs here Quick Start Guide for Arducam CamArray HAT Kit - Arducam Wiki to switch the composition mode, but nothing changes. The bigger problem is I can’t switch between the cameras, and my application needs full-resolution still images captured as fast as possible. Any ideas what I’m missing?

Could you tell us a bit more about your setup? Which camera kit and which Raspberry Pi model are you using? Also, is anything else connected to the Pi besides the Camarray?

It’s the 64MP Autofocus Synchronized Quad-Camera Kit for Raspberry Pi, running on a Raspberry Pi 5. The Camarray is the only device connected to the Pi right now.

Okay, that helps. Just to narrow it down, do the cameras themselves actually work? When you use libcamera or picamera, what do you see?

Yeah, the cameras work fine. I get a four-in-one image when I use libcamera or picamera. So the imaging side is fine, but I can’t switch composition mode or flip between the individual cameras.

Got it. First thing to check is whether i2c is enabled on the Pi. You can enable it via raspi-config under Interface Options.

I already enabled the i2c module via raspi-config. Then I ran i2cdetect -l to check, but the Camarray doesn’t show up anywhere in the output. I even did a fresh install to rule out config issues, and it’s still the same result.

Thanks for trying that. So to recap: i2c is enabled via raspi-config, the cameras work and show up as a four-in-one image through libcamera/picamera, but the Camarray HAT isn’t appearing when you run i2cdetect -l. That actually points to checking the wrong i2c bus.

The key thing here is that the correct i2c bus number depends on your Raspberry Pi model and which CSI interface the HAT board is connected to. i2cdetect -l just lists the available buses on the system; the Camarray will show up as a device address when you scan the specific bus it’s actually on, not as a named entry in the -l listing.

For a Raspberry Pi 5, try scanning bus 6 or bus 4, depending on which CSI connector the HAT board is plugged into:

i2cdetect -y 6

i2cdetect -y 4

For a Raspberry Pi 4, it would be:

i2cdetect -y 10

Ah, that makes sense. I was expecting it to just show up in i2cdetect -l. Let me scan bus 6 and bus 4 and see what comes back.

Sounds good. To summarize the conclusion: the Camarray HAT’s i2c bus number varies by Raspberry Pi model and the specific CSI connector/interface used. On a Raspberry Pi 5, use -y 6 or -y 4 depending on which CSI interface the HAT is on, and on a Raspberry Pi 4 use -y 10. Once you scan the right bus, the HAT should appear at its i2c address and you’ll be able to switch composition mode. Let us know what you find.