OV5647 Camera Not Working With Raspberry Pi 5

The camera that comes with the AI Fusion Lab Kit is not working with my Raspberry Pi 5. I have made sure that the camera is connected to the PI 5 using the cable in the correct orientation. When I type the following command in the terminal I get the following:

rpicam-hello --list-cameras

Available cameras

0 : ov5647 [2592x1944 10-bit GBRG] (/base/axi/pcie@1000120000/rp1/i2c@80000/ov5647@36)
Modes: ‘SGBRG10_CSI2P’ : 640x480 [62.50 fps - (16, 0)/2560x1920 crop]
1296x972 [46.34 fps - (0, 0)/2592x1944 crop]
1920x1080 [32.81 fps - (348, 434)/1928x1080 crop]
2592x1944 [15.63 fps - (0, 0)/2592x1944 crop]

I believe that this means the the Raspberry Pi 5 recognises that the camera is attached. However, when I try to test the camera to determine if it is functional with just “rpicam-hello” I get the following error messages:

[0:23:11.230974358] [2565] INFO Camera camera_manager.cpp:340 libcamera v0.7.1+rpt20260609
[0:23:11.244308249] [2568] INFO RPI pisp.cpp:720 libpisp version v1.6.0 29-06-2026 (16:17:40)
[0:23:11.259382415] [2568] INFO IPAProxy ipa_proxy.cpp:184 Using tuning file /usr/share/libcamera/ipa/rpi/pisp/ov5647.json
[0:23:11.270409271] [2568] INFO Camera camera_manager.cpp:223 Adding camera ‘/base/axi/pcie@1000120000/rp1/i2c@80000/ov5647@36’ for pipeline handler rpi/pisp
[0:23:11.270443456] [2568] INFO RPI pisp.cpp:1181 Registered camera /base/axi/pcie@1000120000/rp1/i2c@80000/ov5647@36 to CFE device /dev/media0 and ISP device /dev/media2 using PiSP variant BCM2712_D0
Made X/EGL preview window
[0:23:11.460232641] [2568] WARN V4L2 v4l2_pixelformat.cpp:346 Unsupported V4L2 pixel format Nc30
[0:23:11.460280826] [2568] WARN V4L2 v4l2_pixelformat.cpp:346 Unsupported V4L2 pixel format Nc12
Mode selection for 1296:972:12:P
SGBRG10_CSI2P,640x480/0 - Score: 3296
SGBRG10_CSI2P,1296x972/0 - Score: 1000
SGBRG10_CSI2P,1920x1080/0 - Score: 1349.67
SGBRG10_CSI2P,2592x1944/0 - Score: 1567
Stream configuration adjusted
[0:23:11.460569344] [2565] INFO Camera camera.cpp:1216 configuring streams: (0) 1296x972-YUV420/sYCC (1) 1296x972-GBRG_PISP_COMP1/RAW
[0:23:11.460680177] [2568] INFO RPI pisp.cpp:1485 Sensor: /base/axi/pcie@1000120000/rp1/i2c@80000/ov5647@36 - Selected sensor format: 1296x972-SGBRG10_1X10/RAW - Selected CFE format: 1296x972-PC1g/RAW
[0:23:12.542106638] [2568] WARN V4L2 v4l2_videodevice.cpp:2096 /dev/video4[13:cap]: Dequeue timer of 1000000.00us has expired!
[0:23:12.542147286] [2568] ERROR RPI pipeline_base.cpp:1371 Camera frontend has timed out!
[0:23:12.542152638] [2568] ERROR RPI pipeline_base.cpp:1372 Please check that your camera sensor connector is attached securely.
[0:23:12.542157157] [2568] ERROR RPI pipeline_base.cpp:1373 Alternatively, try another cable and/or sensor.
ERROR: Device timeout detected, attempting a restart!!!

The error messages loops many times over. I am following Paul McWhorter’s lessons on Youtube and encountered this issue while trying to complete Lesson 15. I am using the custom operating system that was recommended for the course and have not modified it in anyway.

Please contac service@sunfounder.com to get a camera module and provide your detailed address and original order number if possible.

Hi Moderator,

I have obtained a new identical Sunfounder camera module and new ribbon cable. However, after ensuring that the cable is correctly oriented and securely attached to the camera module and Raspberry Pi 5, I am still encountering the same issue. I have been perusing the Raspberry Pi forums and have found that there have been connectivity issues with the OV5647 camera. However, I have not come across a post mentioning the exact error I am encountering. Do you know of a way for me to determine if this is truly a hardware issue, with either the Raspberry Pi 5 itself or the camera module, or if this is a software issue?

Just my best guesses.. Software stack looks ok

These are not errors:

Unsupported V4L2 pixel format Nc30
Unsupported V4L2 pixel format Nc12

These warnings are normal with the PiSP pipeline on the Raspberry Pi 5.

I2c looks fine, error suggests a csi problem, either cable or other hardware. Pi5 has 2 csi ports, try both of them. Also try

dmesg | grep -i ov5647
dmesg | grep -i csi

And look for any csi related errors.

I really appreciate the recommendations. I have tried using both CSI ports and unfortunately ended up with the same error message.

The “dmesg | grep -i ov5647” command has the following results:

[ 0.033087] /axi/pcie@1000120000/rp1/i2c@80000/ov5647@36: Fixed dependency cycle(s) with /axi/pcie@1000120000/rp1/csi@128000
[ 0.033114] /axi/pcie@1000120000/rp1/csi@128000: Fixed dependency cycle(s) with /axi/pcie@1000120000/rp1/i2c@80000/ov5647@36
[ 0.033233] /axi/pcie@1000120000/rp1/i2c@80000/ov5647@36: Fixed dependency cycle(s) with /axi/pcie@1000120000/rp1/csi@128000
[ 0.033260] /axi/pcie@1000120000/rp1/csi@128000: Fixed dependency cycle(s) with /axi/pcie@1000120000/rp1/i2c@80000/ov5647@36
[ 0.420152] /axi/pcie@1000120000/rp1/i2c@80000/ov5647@36: Fixed dependency cycle(s) with /axi/pcie@1000120000/rp1/csi@128000
[ 0.420493] /axi/pcie@1000120000/rp1/i2c@80000/ov5647@36: Fixed dependency cycle(s) with /axi/pcie@1000120000/rp1/csi@128000
[ 0.420507] /axi/pcie@1000120000/rp1/csi@128000: Fixed dependency cycle(s) with /axi/pcie@1000120000/rp1/i2c@80000/ov5647@36
[ 2.632115] /axi/pcie@1000120000/rp1/csi@128000: Fixed dependency cycle(s) with /axi/pcie@1000120000/rp1/i2c@80000/ov5647@36
[ 2.632140] /axi/pcie@1000120000/rp1/i2c@80000/ov5647@36: Fixed dependency cycle(s) with /axi/pcie@1000120000/rp1/csi@128000
[ 2.773561] rp1-cfe 1f00128000.csi: found subdevice /axi/pcie@1000120000/rp1/i2c@80000/ov5647@36
[ 3.127395] rp1-cfe 1f00128000.csi: Using sensor ov5647 11-0036 for capture

The “dmesg | grep -i csi” command has the following result:

[ 0.033087] /axi/pcie@1000120000/rp1/i2c@80000/ov5647@36: Fixed dependency cycle(s) with /axi/pcie@1000120000/rp1/csi@128000
[ 0.033114] /axi/pcie@1000120000/rp1/csi@128000: Fixed dependency cycle(s) with /axi/pcie@1000120000/rp1/i2c@80000/ov5647@36
[ 0.033233] /axi/pcie@1000120000/rp1/i2c@80000/ov5647@36: Fixed dependency cycle(s) with /axi/pcie@1000120000/rp1/csi@128000
[ 0.033260] /axi/pcie@1000120000/rp1/csi@128000: Fixed dependency cycle(s) with /axi/pcie@1000120000/rp1/i2c@80000/ov5647@36
[ 0.039106] SCSI subsystem initialized
[ 0.248832] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 247)
[ 0.284455] Loading iSCSI transport class v2.0-870.
[ 0.420152] /axi/pcie@1000120000/rp1/i2c@80000/ov5647@36: Fixed dependency cycle(s) with /axi/pcie@1000120000/rp1/csi@128000
[ 0.420493] /axi/pcie@1000120000/rp1/i2c@80000/ov5647@36: Fixed dependency cycle(s) with /axi/pcie@1000120000/rp1/csi@128000
[ 0.420507] /axi/pcie@1000120000/rp1/csi@128000: Fixed dependency cycle(s) with /axi/pcie@1000120000/rp1/i2c@80000/ov5647@36
[ 2.632115] /axi/pcie@1000120000/rp1/csi@128000: Fixed dependency cycle(s) with /axi/pcie@1000120000/rp1/i2c@80000/ov5647@36
[ 2.632140] /axi/pcie@1000120000/rp1/i2c@80000/ov5647@36: Fixed dependency cycle(s) with /axi/pcie@1000120000/rp1/csi@128000
[ 2.772339] rp1-cfe 1f00128000.csi: bcm2712_iommu_of_xlate: MMU 1000005280.iommu
[ 2.772345] rp1-cfe 1f00128000.csi: bcm2712_iommu_probe_device: MMU 1000005280.iommu
[ 2.772351] rp1-cfe 1f00128000.csi: bcm2712_iommu_device_group: MMU 1000005280.iommu
[ 2.772356] rp1-cfe 1f00128000.csi: Adding to iommu group 2
[ 2.772359] rp1-cfe 1f00128000.csi: bcm2712_iommu_attach_dev: MMU 1000005280.iommu
[ 2.772722] rp1-cfe 1f00128000.csi: DW dphy Host HW v1.20
[ 2.772732] rp1-cfe 1f00128000.csi: PiSP FE HW v0.1
[ 2.773561] rp1-cfe 1f00128000.csi: found subdevice /axi/pcie@1000120000/rp1/i2c@80000/ov5647@36
[ 3.127395] rp1-cfe 1f00128000.csi: Using sensor ov5647 11-0036 for capture
[ 3.127520] rp1-cfe 1f00128000.csi: Registered [rp1-cfe-csi2_ch0] node id 0 successfully as /dev/video0
[ 3.127547] rp1-cfe 1f00128000.csi: Registered [rp1-cfe-embedded] node id 1 successfully as /dev/video1
[ 3.127589] rp1-cfe 1f00128000.csi: Registered [rp1-cfe-csi2_ch2] node id 2 successfully as /dev/video2
[ 3.127621] rp1-cfe 1f00128000.csi: Registered [rp1-cfe-csi2_ch3] node id 3 successfully as /dev/video3
[ 3.127652] rp1-cfe 1f00128000.csi: Registered [rp1-cfe-fe_image0] node id 4 successfully as /dev/video4
[ 3.131519] rp1-cfe 1f00128000.csi: Registered [rp1-cfe-fe_image1] node id 5 successfully as /dev/video5
[ 3.133956] rp1-cfe 1f00128000.csi: Registered [rp1-cfe-fe_stats] node id 6 successfully as /dev/video6
[ 3.135225] rp1-cfe 1f00128000.csi: Registered [rp1-cfe-fe_config] node id 7 successfully as /dev/video7

Based on these results, is it possible to completely rule out a CSI problem?

No its not possible to rule out csi, but your logs show that the entire control path is healthy:

The OV5647 is detected on I²C.

The sensor driver loads correctly.

The RP1 CSI receiver (CFE) finds the sensor.

Media graph is created.

/dev/video0 through /dev/video7 are registered.

These 2 lines confirm this

Using sensor ov5647 11-0036 for capture
Registered ... /dev/video0

This means Linux, libcamera, and the device tree are all configured correctly. That’s a lot of good stuff !

But it’sthe timeout on (not) receiving any data from the csi that’s the first reported issue.

But given that youve already swapped cameras and cables and csi ports, im struggling to think what else may be amiss. Your libcamera build is quite recent, libcamera v0.7.1+rpt20260609, maybe there’s a problem with this .latest build?

Im out of my depth now to be honest, and i have no equivalent hardware to assist further debug, so best to await Sunfounder reply. They may have seen it before.

Sorry couldn’t help

Thanks again for the information. I have also tried flashing the custom operating system recommended by Sunfounder for the Paul McWhorter course again. When that did not work, I also updated the operating system, etc and tried various suggestions found on the Raspberry Pi forums with no luck.

Thank you for providing the full logs and for the thorough testing – this is very helpful.

From the logs, we can see that the OV5647 camera’s control link has been established:

The camera is detected via I²C.

The OV5647 driver loads correctly.

The RP1 CSI receiver has found the camera.

/dev/video0 through /dev/video7 have been successfully registered.

However, this confirms only that the Raspberry Pi can identify and control the camera – it does not rule out issues with CSI data transmission.

The Camera frontend has timed out error you saw earlier indicates that the system recognises the camera but is not receiving actual image frames from the CSI‑2 interface. The issue could still lie with:

The camera sensor itself,

The FPC ribbon cable,

The connectors,

Or the CSI receiver on the Raspberry Pi 5.

You have already done an excellent job testing multiple cameras, cables, both CSI ports, and different OS versions – including the recommended system for Paul McWhorter’s course. Since the problem persists in that environment, it seems less likely that the latest libcamera version alone is the cause.

To help us go further, could you please confirm:

Were all the tests (two cameras and two cables) performed on the same Raspberry Pi 5?

If possible, could you test one camera and cable on a different Raspberry Pi board?

If the same camera and cable work on another Pi, the issue is almost certainly with the CSI interface or related hardware on your current Raspberry Pi 5.

If you do not have another Raspberry Pi for cross‑testing, please also send us a few clear photos showing:

The FPC cable connected to the Raspberry Pi 5’s CSI port,

The cable connected to the camera module,

The front and back of the camera module,

Close‑up photos of both CSI connectors on the Raspberry Pi 5.

We will do our best to assist further based on your findings.

All of the testing was done on the same Raspberry Pi 5. I unfortunately do not have another Raspberry Pi board to test the camera module and FPC cable on. Please see the requested photos.

Thank you for your patience.If you have received the replacement camera module and are still unable to detect it, then the issue is most likely related to your Raspberry Pi board itself.

Unfortunately, we are unable to resolve this issue on our end, as it falls outside the scope of our product support. At this point, we sincerely recommend that you seek help from the Raspberry Pi community.Truly appreciate your understanding.