Arducam Pivariety camera driver won't load at boot on Raspberry Pi Zero

Hi all, I’ve got an Arducam Pivariety camera (SKU B0444) that has never worked. The arducam-pivariety driver module fails to load at boot on my Raspberry Pi Zero 1.3.

Environment:

  • Pi Zero 1.3, Linux raspberrypi 6.1.21+ #1642 armv6l
  • Following the Pivariety quick start guide
  • Added dtoverlay=arducam-pivariety under [all] in /boot/config.txt

Wiring: on the Pi Zero side the flex cable metal contacts face down toward the PCB, and on the Arducam side metal down toward the PCB, facing the same direction as the lens. In this orientation the Pi boots and the Arducam LED lights up.

dmesg shows:
[ 0.163565] platform 20801000.csi: Fixed dependency cycle(s) with /soc/i2c0mux/i2c@1/arducam_pivariety@c
[ 56.970965] arducam-pivariety 10-000c: pivariety_read: Reading register 0x103 failed
[ 56.971020] arducam-pivariety 10-000c: probe failed

I already ran install_pivariety_pkgs.sh to install libcamera-dev, libcamera-apps and the kernel driver — same result. I also tried reversing the 22-pin cable at the Arducam, but the Pi Zero won’t even power up when I do that (looks like a short). I’m suspecting a driver problem based on that register read error. Anyone seen this before?

Thanks for the detailed logs. Looking at your screenshot, the wiring in the circled area looks like it’s connected the wrong way around. Can you reverse the wiring in that circled area as shown, then retest the camera? A reversed cable there can stop the camera from initialising and cause exactly this kind of probe failure.

Tried that — reversing the 22-pin cable at the Arducam end makes the Pi Zero refuse to power up at all (no power LED, presumably a short), so that orientation is a no-go. With the cable the normal way the Pi boots and the Arducam LED lights up, but the overlay still fails to load with the same register 0x103 read error. I can’t get past the probe failure either way.

Okay, the fact that reversing it kills the power is a big clue. Quick question — is the 22-pin cable you’re using the one that came with the B0444? Reason I ask: the B0444 package doesn’t actually include a 22-pin cable. A non-Arducam 22-pin cable is a known cause of shorts on the Pi. I’d suggest getting the proper Arducam 22-pin cable (UCTRONICS 150mm 22-pin to 22-pin, 0.5mm pitch) and following the hardware connection method. I can PM you the exact link and connection guide.

The 22-pin cable I’ve been using is a third-party one from Amazon: uxcell Flexible Flat Cable, 22 Pins 0.5mm Pitch 150mm FPC FFC Flexible Ribbon Cable (A type). I checked it carefully with a multimeter — all 22 contacts beep out and there are no inter-trace shorts, so the cable itself tests clean. Cross-connecting (reversing) it stops the Pi from booting. Connecting it per the hardware description lets the Pi boot and run, but the overlay still fails to load.

That specific uxcell cable is the problem — we’ve seen the exact same short-circuit behaviour from other customers using that cable with the Pivariety modules. Even a clean-looking FFC can have the wrong pin mapping for this module. If you have a Raspberry Pi 4 available, try the camera on it using the 15-to-22 pin cable that actually ships with the camera. That gets the suspect 22-pin cable out of the equation.

Good to know. I’ve ordered the proper UCTRONICS 22-pin cable for the Zero. In the meantime I’ll test the camera on a Pi 4 with the 22-to-15 pin cable that came with it and report back.

Update: tested on the Raspberry Pi 4 using the included 22-to-15 pin cable. Different result, but still unsuccessful. On the Pi 4, ‘arducam-pivariety’ doesn’t seem to be known to the libcamera that ships with Raspbian 6.1.21. I’ve got dmesg and libcamera-hello output if that helps.

Let’s get a full bug report so we can see what the overlay/driver is actually doing. 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

That produces arducam-bug-report.txt in the current directory. Send it over via private message and we’ll dig into it.

The proper UCTRONICS 22-pin cable arrived. Unfortunately the results are identical on the Pi Zero with it, and the same on the Pi 4. I ran the bug report tool and sent the file over via PM. I also have a second camera on the way to rule out a faulty unit.

Another update: the second camera behaves exactly the same as the original. So it’s not a one-off hardware fault with that particular unit.

Thanks. Could you run the bug report again, but this time do the whole setup on the Raspberry Pi 4? Reboot and run the same tool:

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

Send the resulting arducam-bug-report.txt via PM. The Pi 4 report is the one we need to look at next.

Done — ran the bug report tool on the Pi 4 and sent the file over via PM. It’s the same failure state there as before.

While we go through the report, one thing stands out from your earlier message. You said ‘arducam-pivariety’ isn’t known to the stock libcamera — that points to missing or outdated Arducam libcamera support. Can you install the latest libcamera from Arducam by following the ‘Getting Started’ section of the Libcamera User Guide? That should pull in the arducam-pivariety support that the stock Raspbian libcamera doesn’t include.

That was it. After installing the latest Arducam libcamera, the camera works on the Pi 4. Marking this resolved — thanks for sticking with it through all the cable detours.

Great, glad that sorted it. Quick recap for anyone hitting the same thing: the stock Raspbian libcamera doesn’t include arducam-pivariety support, so installing the latest Arducam libcamera (Libcamera User Guide ‘Getting Started’) fixes the probe failure. And the earlier 22-pin cable shorting was a separate trap to avoid.