Our camera pictures are coming out like this… What is going on!!!
I’m running an Arducam camera on a Raspberry Pi and the image quality is just plain bad. The colors are washed out / wrong and the overall quality is terrible. It doesn’t look like a normal capture at all.
OK, so we’re testing the 21MP AF camera in a larger quantity now.
Originally we bought one camera and it worked fine. So we bought 20 more as a test batch / POC. Every single one of those 20 cameras has the same image quality issue — poor quality and the colors are off. Same as in the sample I posted earlier.
On top of that, on one of the 20 test cameras the autofocus just failed to work.
A couple questions while we’re at it: which method of capture will give us the best image quality? Right now we’re just using libcamera-still, nothing else.
CPU implementer : 0x41
CPU architecture : 7
CPU variant : 0x0
CPU part : 0xd08
CPU revision : 3
Hardware:
BCM2711, Revision b03115
Serial: 1000000092966ae5
Model: Raspberry Pi 4 Model B Rev 1.5
Camera:
arducam-pivariety firmware version: 0x10001
Registered camera /base/soc/i2c0mux/i2c@1/arducam@0c to Unicam device /dev/media3 and ISP device /dev/media0
We’re using only libcamera-still — not python or any other method. The /usr/bin/timeout wrapper is there because the libcamera binary hangs periodically and doesn’t exit cleanly. Over time that fills up the process list, which leaves the camera busy and makes it more prone to errors.
Tail of /boot/config.txt:
[all]
[pi4]
# Run as fast as firmware / board allows
arm_boost=1
[all]
dtoverlay=arducam
gpu_mem=256
max_usb_current=1
Perfect, that command and config are exactly what I needed to see.
Go ahead and post the libcamera capture output and the dmesg -T | grep arducam lines. Those will tell us whether the sensor/IPA is loading the way it should on your build.
Thanks — that gives us a clear picture. I notice a couple of things worth digging into:
ERROR IPAProxy ipa_proxy.cpp:149 Configuration file 'arducam-pivariety.json' not found for IPA module 'raspberrypi'
WARN ... No static properties available for 'arducam-pivariety'
WARN ... Mismatch between Unicam and CamHelper for embedded data usage!
Those could all point to a software/version mismatch rather than a hardware fault. Before I go further — what have you already tried on your side? Has anything changed the output at all?
So far I’ve tried taking photos both with and without the timeout command — same results either way. So the timeout wrapper isn’t the cause.
My plan is to rebuild the OS from scratch with the latest code, and then compare the software versions on the first camera (the one that worked) against the 20 bad cameras. I should have that data tomorrow.
I’ve attached the pip and apt output for the versions currently installed:
OK, here’s where we stand so far, so we have it captured in the thread:
The issue shows up as poor image quality and off colors on the 21MP AF camera (B0272/B0324 family). One original unit works fine, but all 20 units in your test batch show the same problem, and one of those 20 also had autofocus fail.
Your setup: Pi 4 Model B Rev 1.5 (2GB), Raspbian Bullseye 32bit, Arducam code pulled around July 13, all 20 cards using dd-cloned identical filesystems.
Your capture line is: /usr/bin/timeout -s SIGINT 8s /usr/local/bin/libcamera-still -t 3000 --vflip --hflip --autofocus -q 90 -n -o test.jpg
Removing the timeout wrapper made no difference.
The logs show the arducam-pivariety.json IPA config file missing, no static sensor properties for arducam-pivariety, and a Unicam/CamHelper embedded-data mismatch.
Given that your filesystems are identical clones yet the results track with the batch of cameras (working unit vs. all 20 new units), this doesn’t look like a per-config issue — it points toward either the software/version stack or the cameras themselves.
So the key next step is your comparison: rebuild the OS with the latest code, then diff the pip/apt/Arducam versions between the working camera and the failing batch. Once you post that version diff and the rebuilt-OS results, we can narrow it down further. We’ll keep watching this thread for tomorrow’s data.