Arducam IMX219 camera not working on Raspberry Pi CM4 with Ochin V2

Hi everyone. I’ve got an Arducam B0179 IMX219 Wide Angle Camera Module that I’m trying to get working on a Raspberry Pi Compute Module 4. The module is listed as compatible with both Jetson Nano and the CM4, but I just can’t get it going on the CM4, and I can’t find any documentation for installing it on a CM4. I’m using an Ochin V2 carrier board. Is this camera actually compatible with the CM4? Any docs or step-by-step would be really appreciated.

Hi there. The configuration for the Arducam IMX219 is basically the same on the CM4 as it is on a Pi 5, so you can follow the official guide for the Pi 5 8MP IMX219 here: 8MP IMX219 - Arducam Wiki

One thing to keep in mind: if your CM4 is running Bullseye, the config file will be at /boot/config.txt instead of /boot/firmware/config.txt. I can’t guarantee compatibility with the third-party Ochin V2 carrier board, but let’s configure the CM4 first and see if the camera comes up. Can you give that a try and report back?

Thanks, I followed the guide. The camera now gets detected, but libcamera-hello just times out and the preview never starts. I’m starting to wonder if the sensor is faulty.

My setup is a CM4 on the Ochin V2 carrier board, Bookworm (the /boot/firmware/config.txt path is present), and the IMX219.

config.txt has:

[all]
camera_auto_detect=0
hdmi_force_hotplug=1
hdmi_group=2
hdmi_mode=82
dtoverlay=imx219

libcamera-hello --list-cameras shows it detected:

Available cameras

0 : imx219 [3280x2464 10-bit RGGB] (/base/soc/i2c0mux/i2c@1/imx219@10)
Modes: ‘SRGGB10_CSI2P’ : 640x480 [206.65 fps - (1000, 752)/1280x960 crop]
1640x1232 [41.85 fps - (0, 0)/3280x2464 crop]
1920x1080 [47.57 fps - (680, 692)/1920x1080 crop]
3280x2464 [21.19 fps - (0, 0)/3280x2464 crop]
‘SRGGB8’ : 640x480 [206.65 fps - (1000, 752)/1280x960 crop]
1640x1232 [83.70 fps - (0, 0)/3280x2464 crop]
1920x1080 [47.57 fps - (680, 692)/1920x1080 crop]
3280x2464 [21.19 fps - (0, 0)/3280x2464 crop]

dmesg | grep imx219 gives:

[ 0.055700] platform fe801000.csi: Fixed dependency cycle(s) with /soc/i2c0mux/i2c@1/imx219@10
[ 2.600898] platform fe801000.csi: Fixed dependency cycle(s) with /soc/i2c0mux/i2c@1/imx219@10

And libcamera-hello ends like this:

Made X/EGL preview window
Mode selection for 1640:1232:12:P
SRGGB10_CSI2P,640x480/0 - Score: 4504.81
SRGGB10_CSI2P,1640x1232/0 - Score: 1000
SRGGB10_CSI2P,1920x1080/0 - Score: 1541.48
SRGGB10_CSI2P,3280x2464/0 - Score: 1718
SRGGB8,640x480/0 - Score: 5504.81
SRGGB8,1640x1232/0 - Score: 2000
SRGGB8,1920x1080/0 - Score: 2541.48
SRGGB8,3280x2464/0 - Score: 2718
Stream configuration adjusted
0:16:05.986564097 [2005] INFO Camera camera.cpp:1183 configuring streams: (0) 1640x1232-YUV420 (1) 1640x1232-SBGGR10_CSI2P
0:16:05.987012854 [2008] INFO RPI vc4.cpp:629 Sensor: /base/soc/i2c0mux/i2c@1/imx219@10 - Selected sensor format: 1640x1232-SBGGR10_1X10 - Selected unicam format: 1640x1232-pBAA
0:16:07.083017683 [2008] WARN V4L2 v4l2_videodevice.cpp:2007 /dev/video0[13:cap]: Dequeue timer of 1000000.00us has expired!
0:16:07.083124145 [2008] ERROR RPI pipeline_base.cpp:1382 Camera frontend has timed out!
0:16:07.083141812 [2008] ERROR RPI pipeline_base.cpp:1383 Please check that your camera sensor connector is attached securely.
0:16:07.083158738 [2008] ERROR RPI pipeline_base.cpp:1384 Alternatively, try another cable and/or sensor.
ERROR: Device timeout detected, attempting a restart!!!

I’ve already tried a different cable and I also tried increasing the timeout in /usr/share/libcamera/pipeline/rpi/vc4/rpi_apps.yaml, but it made no difference. I also found this similar issue: [BUG]latest picamera2/libcamera version causes timeouts for externally triggered HQ camera · Issue #748 · raspberrypi/picamera2 · GitHub

Thanks for the full logs. From what you’ve posted, the imx219 is being detected and enumerated correctly at /base/soc/i2c0mux/i2c@1/imx219@10, so the config side looks fine. The problem is that the camera frontend times out after the sensor format is selected, which usually points at the physical link or the sensor itself rather than a detection/config issue.

Can you try running it with the explicit tuning file for the IMX219, like this:

libcamera-still -t 0 --tuning-file /usr/share/libcamera/ipa/rpi/pisp/imx219.json

Also double-check the sensor connector is seated properly, and if you have another cable or sensor to test with, that would help narrow it down. The picamera2/libcamera issue you linked could be relevant too, but let’s rule out the tuning file path first and see what that command outputs.

Just tried the tuning file command. It behaves the same way - it selects the sensor and format, then hits the dequeue timer expiry and the ‘Camera frontend has timed out!’ error, then tries to restart. The connector is seated firmly and I’ve already swapped the cable. I don’t have another IMX219 module to test with unfortunately. At this point it really feels like the sensor itself is bad.

Thanks for testing that. Given that the camera is detected, the overlay is loading, and the sensor is selected correctly, but the frontend still times out even with the explicit tuning file, this looks like a hardware fault rather than a software/config problem. The ‘Dequeue timer … has expired’ followed by ‘Camera frontend has timed out!’ means the sensor isn’t delivering frames back to the CSI receiver as expected.

To summarize: the configuration is correct for the CM4/Bookworm, and the camera enumerates properly, but it fails to stream frames. Since you’ve already tried a different cable and reseated the connector, the most likely conclusion is a defective sensor. If you can borrow or test another IMX219 module on the same carrier board, that would confirm it, but from here I’d treat this unit as faulty.