Having trouble getting a Mira220 MIPI camera (the color version of the B0526) to initialize on my setup. The camera just won’t come up - there’s no /dev/video0 at all. If I load the imx477 overlay with an imx477 sensor installed, that works fine, so the system side seems okay.
dmesg shows the firmware loading but then failing on control enumeration:
[0:04:09.608234090] [98] INFO IPAManager ipa_manager.cpp:137 libcamera is not installed. Adding ‘/usr/src/ipa’ to the IPA search path
[0:04:09.610422135] [98] INFO Camera camera_manager.cpp:327 libcamera v0.0.0+5338-818d45eb
No cameras were identified on the system.
There’s very little info in the logs about camera initialization, so I can’t really tell if it’s progressing correctly or where it’s getting stuck. Any ideas on what to check next?
Thanks for the details. Can you post pictures of the hardware connection at both the Raspberry Pi end and the camera end? Also, please generate a bug report so we can dig into this further. Here’s how:
Okay, here are the photos and the bug report. A bit more context on my setup:
It’s a Raspberry Pi Compute Module 4 on a custom carrier board.
The camera can be connected to either cam0 or cam1. In the photo it’s connected to cam1.
I had to patch the overlay dts to make cam1 work - the standard overlay “arducam-pivariety,cam0” only works when connected to cam0.
I’m also not using install_pivariety_pkgs.sh. Those packages are incompatible with my current OS version, and since I build for multiple cameras (some use regular libcamera), I want to keep control over dependencies and the libcamera version to avoid bugs. For this test, libcamera and libcamera_apps were compiled from the Arducam GitHub.
With correct settings the firmware loads, but I still get the enum controls errors. When I intentionally misconfigured the overlay, I got these logs:
So I suspect the real failure happens earlier than the enum controls step, but I’d expect more dmesg output when the camera actually initializes successfully.
Thanks, that’s helpful. Looking at your logs, the “enum controls failed” symptom points to the camera module not being able to establish I2C communication with the CM4.
For reference, when the overlay is intentionally misconfigured you get:
But with your correct settings the firmware does load (firmware version: 0x10003), and then control enumeration fails. That means the failure is happening earlier in initialization than the error message suggests - the firmware loads, but the I2C readback needed for control enumeration isn’t working.
Since cam0 with the standard overlay appears to work and cam1 needed the patched dts, I’d suggest checking the I2C lines at the camera connection with an oscilloscope or logic analyzer to see whether any I2C data is actually getting through on cam1. That will tell us whether it’s a signal/wiring issue or something in the overlay/driver path.