No cameras detected with Arducam Quad HAT and 4 IMX219 on Raspberry Pi 4

Hi all. I’m trying to get a quad camera HAT working with 4x imx219 cameras on a Raspberry Pi 4. I followed the quick start guide at Quick Start Guide for Arducam CamArray HAT Kit - Arducam Wiki but libcamera keeps saying no cameras available and I’m not getting any output. Has anyone run into this before?

Welcome. Can you tell me what OS you’re running? Also, please run these and paste the output:

cat /etc/os-release
i2cdetect -l
i2cdetect -y 10
libcamera-still --list-cameras
libcamera-still -t 0

That should give us a better picture of what the Pi is actually seeing.

Here you go. The OS is Debian GNU/Linux 11 (bullseye):

PRETTY_NAME=“Debian GNU/Linux 11 (bullseye)”
NAME=“Debian GNU/Linux”
VERSION_ID=“11”
VERSION=“11 (bullseye)”
VERSION_CODENAME=bullseye
ID=debian
HOME_URL=“https://www.debian.org/”
SUPPORT_URL=“Debian -- User Support”
BUG_REPORT_URL=“https://bugs.debian.org/”

For i2cdetect -l I get:

i2c-20 i2c fef04500.i2c I2C adapter
i2c-10 i2c i2c-22-mux (chan_id 1) I2C adapter
i2c-1 i2c bcm2835 (i2c@7e804000) I2C adapter
i2c-21 i2c fef09500.i2c I2C adapter
i2c-0 i2c i2c-22-mux (chan_id 0) I2C adapter
i2c-22 i2c bcm2835 (i2c@7e205000) I2C adapter

i2cdetect -y 10 shows:

 0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f

00: – – – – – – – –
10: – – – – – – – – – – 1a – – – – –
20: – – – – 24 – – – – – – – – – – –
30: – – – – – – – – – – – – – – – –
40: – – – – – – – – – – – – – – – –
50: – – – – – – – – – – – – – – – –
60: – – – – – – – – – – – – – – – –
70: – – – – – – – –

I also ran i2cset -y 10 0x24 0x24 0x00 before the libcamera commands. libcamera-still --list-cameras returns ‘No cameras available!’, and libcamera-still -t 0 gives ‘Preview window unavailable’ followed by ‘ERROR: *** no cameras available ***’ (libcamera v0.0.5+83-bde9b04f).

Thanks, that’s helpful. The I2C side actually looks okay — I can see the mux channels (i2c-22-mux chan_id 0 and chan_id 1) and the two devices at 0x1a and 0x24 on bus 10, so the HAT is at least enumerating on I2C. But libcamera still reports no cameras, so let me get more info from a bug report.

Please reboot, then run:

wget -O arducam-camera-bug-report https://github.com/ketai-dhr/arducam-camera-bug-report/releases/download/tools/arducam-camera-bug-report
chmod +x ./arducam-camera-bug-report
./arducam-camera-bug-report

This creates arducam-bug-report.txt in the current directory. Send that file over via private message and I’ll take a look.

Done — I’ve sent the arducam-bug-report.txt through private message. Let me know what you find.

Got it, thanks. While I review the report, could you also send a couple of photos of the hardware connections — both the camera end and the Raspberry Pi end? I’d like to double-check the physical wiring.

Sure, I’ve sent the photos via private message — one set shows the camera end and the other shows the Pi end.

Thanks for the photos. Looking at them, the board is marked B0397, which is the imx477 version — not imx219. That’s the root cause: your config has dtoverlay=imx219, but the actual cameras are imx477, so libcamera never matches them.

Change dtoverlay=imx219 to dtoverlay=imx477 in the config file, reboot the Pi, then run the libcamera commands again.

That fixed it — switching to dtoverlay=imx477 produced video output. I thought it was the imx219 wide angle sensor, but the sensor in hand is actually imx477. Looks like it’s resolved now; I’ll keep testing. Thanks for the help!