I’ve got an Arducam 64 MP camera on a Raspberry Pi 4 with a fresh install of the latest Raspberry Pi OS. The drivers look like they installed fine and the camera shows up as /dev/video0, but I can’t get libcamera-still to actually capture anything. Every time I run it I get a bunch of warnings and then it fails to start.
Output:
Preview window unavailable
[0:09:44.974459207] [1721] INFO Camera camera_manager.cpp:293 libcamera v0.0.0+3730-67300b62
[0:09:44.983366828] [1723] WARN CameraSensorProperties camera_sensor_properties.cpp:174 No static properties available for ‘arducam_64mp’
[0:09:44.983449081] [1723] WARN CameraSensorProperties camera_sensor_properties.cpp:176 Please consider updating the camera sensor properties database
[0:09:45.013977434] [1723] WARN RPI raspberrypi.cpp:1274 Mismatch between Unicam and CamHelper for embedded data usage!
[0:09:45.014444452] [1723] ERROR DelayedControls delayed_controls.cpp:87 Delay request for control id 0x009a090a but control is not exposed by device /dev/v4l-subdev0
[0:09:45.014610791] [1723] INFO RPI raspberrypi.cpp:1398 Registered camera /base/soc/i2c0mux/i2c@1/arducam_64mp@1a to Unicam device /dev/media4 and ISP device /dev/media2
[0:09:45.015270053] [1721] INFO Camera camera.cpp:1029 configuring streams: (0) 4624x3472-YUV420
[0:09:45.015657077] [1723] INFO RPI raspberrypi.cpp:763 Sensor: /base/soc/i2c0mux/i2c@1/arducam_64mp@1a - Selected sensor format: 4624x3472-SBGGR10_1X10 - Selected unicam format: 4624x3472-pBAA
[0:09:45.151415861] [1723] ERROR V4L2 v4l2_videodevice.cpp:1867 /dev/video0[14:cap]: Failed to start streaming: Input/output error
ERROR: *** failed to start camera ***
I followed the setup instructions from the Arducam 64mp camera software operation docs. The troubleshooting page there says warnings like this are nothing to worry about, but the camera definitely isn’t working. What should I try next?
Thanks for the detailed report. The static properties and embedded data mismatch warnings are generally harmless, and the preview window unavailable line is just because there’s no display attached. The one that actually matters is the last one:
ERROR V4L2 v4l2_videodevice.cpp:1867 /dev/video0[14:cap]: Failed to start streaming: Input/output error
That means the sensor is dropping out on the i2c side while streaming starts. Can you grab the kernel messages for the sensor? Run:
dmesg | grep arducam
and paste the output here. That will tell us exactly what’s failing.
That’s helpful — the sensor is failing to write register 0x5ca2 (error -5) during streaming start, so we need a full snapshot of the setup to see the whole picture. Reboot the Pi and run our bug report tool:
Ran the bug report tool and attached the file. One thing I noticed: the script seems to look for arducam-test.jpg, but the command I ran earlier created test.jpg instead — and test.jpg was definitely created. Not sure if that matters, just flagging it.
Thanks, I’m going through it now. Since these reports can vary slightly between runs, could you run the exact same bug report command once more and attach the new output? I want to compare the two and see whether the i2c behavior is consistent. Also let me know if the arducam-test.jpg / test.jpg observation changes on the second run.
Comparing both reports, this points to i2c instability. There are usually three things that can cause that:
an issue with the camera itself
an issue with the hardware platform
an issue with the connection cable
First thing to try is swapping the connection cable. I also updated the report script — please re-download it and send me the new bug file after the cable swap so we can compare.
Thanks — this one is actually pretty revealing. From the new report I can see the camera does work when the device is set to a smaller resolution, so the sensor itself isn’t dead. That said, I’m not 100% sure the resolution is the root cause; it could also be an unstable signal, which fits with the i2c instability we saw in the earlier reports.
To narrow this down, can you test a few different resolutions and note which ones work and which ones fail? Start with a smaller one:
Then try a couple of other sizes around it and post the results. That boundary is what will tell us whether we’re dealing with a resolution limit or a signal integrity problem.