Radxa Camera 4k not working with CM5 + IO Board - has it been confirmed to work?

I’m currently trying to get the Radxa Camera 4K working with the CM5 + IO board, running Radxa OS

I have tried the same camera module on the Rock 5C, it is working on that board when testing with the following command:

gst-launch-1.0 v4l2src device=/dev/video11 io-mode=4 ! videoconvert ! video/x-raw,format=NV12,width=1920,height=1080 ! xvimagesink

But when I follow the same steps on the CM5 + IO board:

  • Enabling the overlay
  • Run the command above

I see that the IMX415 is detected, and there are no obvious different error messages than the Rock 5C - but the camera simply does not seem to deliver any working frames. Gstreamer just does nothing until I terminate manually, and no video feed pops up.

When running cheese - I get a black screen.

The only other post I’ve seen is this:
https://forum.radxa.com/t/problem-for-cm5-with-4k-camera
But it seems they gave up on the Camera 4K and switched to another camera.

The CM5 IO board and Camera 4K are advertised as being compatible. So can anyone from Radxa confirm that the camera has been tested and actually works on the IO board? If so what steps are needed to get this working?

This is relevant to me as we want to use the CM5 and Camera 4k in a design, if the IO board has a hardware issue preventing the camera from working we need to know how to address it in our design. Or if there’s an issue in the CM5 IO OS image compared to the Rock 5C one.

CM5 IO dmesg (not working)

[ 11.771049] platform csi2-dcphy0: Fixed dependency cycle(s) with /i2c@feca0000/imx415@1a
[ 11.794971] imx415 8-001a: driver version: 00.01.08
[ 11.794983] imx415 8-001a: Get hdr mode failed! no hdr default
[ 11.794993] imx415 8-001a: detect imx415 lane 4
[ 11.795031] imx415 8-001a: Failed to get power-gpios
[ 11.795036] imx415 8-001a: could not get default pinstate
[ 11.795040] imx415 8-001a: could not get sleep pinstate
[ 11.795045] imx415 8-001a: Looking up dvdd-supply from device tree
[ 11.795051] imx415 8-001a: Looking up dvdd-supply property in node /i2c@feca0000/imx415@1a failed
[ 11.795078] imx415 8-001a: supply dvdd not found, using dummy regulator
[ 11.795144] imx415 8-001a: Looking up dovdd-supply from device tree
[ 11.795151] imx415 8-001a: Looking up dovdd-supply property in node /i2c@feca0000/imx415@1a failed
[ 11.795165] imx415 8-001a: supply dovdd not found, using dummy regulator
[ 11.795186] imx415 8-001a: Looking up avdd-supply from device tree
[ 11.795192] imx415 8-001a: Looking up avdd-supply property in node /i2c@feca0000/imx415@1a failed
[ 11.795205] imx415 8-001a: supply avdd not found, using dummy regulator
[ 11.852535] imx415 8-001a: Detected imx415 id 0000e0
[ 11.890061] imx415 8-001a: Consider updating driver imx415 to match on endpoints
[ 11.890083] rockchip-csi2-dphy csi2-dcphy0: dphy0 matches m00_b_imx415 8-001a:bus type 5
[ 14.922672] imx415 8-001a: set hdr cfg, set mode to 0
[ 14.922687] imx415 8-001a: set fmt: cur_mode: 3864x2192, hdr: 0, bpp: 10
[ 14.932758] imx415 8-001a: set exposure(shr0) 1845 = cur_vts(2250) - val(405)
[ 125.165858] imx415 8-001a: s_stream: 1. 3864x2192, hdr: 0, bpp: 10
[ 125.165866] imx415 8-001a: write reg array error
[ 125.214970] imx415 8-001a: set vblank 0x3a vts 2250
[ 125.216264] imx415 8-001a: set exposure(shr0) 1845 = cur_vts(2250) - val(405)
[ 125.217120] imx415 8-001a: set analog gain 0x0
[ 126.251710] imx415 8-001a: s_stream: 0. 3864x2192, hdr: 0, bpp: 10
[ 126.372635] imx415 8-001a: s_stream: 1. 3864x2192, hdr: 0, bpp: 10
[ 126.372638] imx415 8-001a: write reg array error
[ 126.422164] imx415 8-001a: set vblank 0x3a vts 2250
[ 126.423481] imx415 8-001a: set exposure(shr0) 1845 = cur_vts(2250) - val(405)
[ 126.424352] imx415 8-001a: set analog gain 0x0
(no stream - manual terminate)
[ 131.083492] imx415 8-001a: s_stream: 0. 3864x2192, hdr: 0, bpp: 10

Rock 5C dmesg (working)
[ 13.053875] platform csi2-dphy0: Fixed dependency cycle(s) with /i2c@feab0000/imx415@1a
[ 13.077672] imx415 3-001a: driver version: 00.01.08
[ 13.077684] imx415 3-001a: Get hdr mode failed! no hdr default
[ 13.077695] imx415 3-001a: detect imx415 lane 4
[ 13.077732] imx415 3-001a: Failed to get power-gpios
[ 13.077737] imx415 3-001a: could not get default pinstate
[ 13.077740] imx415 3-001a: could not get sleep pinstate
[ 13.077745] imx415 3-001a: Looking up dvdd-supply from device tree
[ 13.077752] imx415 3-001a: Looking up dvdd-supply property in node /i2c@feab0000/imx415@1a failed
[ 13.077778] imx415 3-001a: supply dvdd not found, using dummy regulator
[ 13.077837] imx415 3-001a: Looking up dovdd-supply from device tree
[ 13.077844] imx415 3-001a: Looking up dovdd-supply property in node /i2c@feab0000/imx415@1a failed
[ 13.077858] imx415 3-001a: supply dovdd not found, using dummy regulator
[ 13.077882] imx415 3-001a: Looking up avdd-supply from device tree
[ 13.077888] imx415 3-001a: Looking up avdd-supply property in node /i2c@feab0000/imx415@1a failed
[ 13.077901] imx415 3-001a: supply avdd not found, using dummy regulator
[ 13.149101] imx415 3-001a: Detected imx415 id 0000e0
[ 13.188264] imx415 3-001a: Consider updating driver imx415 to match on endpoints
[ 13.188276] rockchip-csi2-dphy csi2-dphy0: dphy0 matches m00_b_imx415 3-001a:bus type 5
[ 16.707073] imx415 3-001a: set hdr cfg, set mode to 0
[ 16.707088] imx415 3-001a: set fmt: cur_mode: 3864x2192, hdr: 0, bpp: 10
[ 16.714651] imx415 3-001a: set exposure(shr0) 1845 = cur_vts(2250) - val(405)
[ 115.595837] imx415 3-001a: s_stream: 1. 3864x2192, hdr: 0, bpp: 10
[ 115.655347] imx415 3-001a: write reg array error
[ 115.702793] imx415 3-001a: set vblank 0x3a vts 2250
[ 115.704025] imx415 3-001a: set exposure(shr0) 1845 = cur_vts(2250) - val(405)
[ 115.704850] imx415 3-001a: set analog gain 0x0
[ 115.773218] imx415 3-001a: set exposure(shr0) 1537 = cur_vts(2250) - val(713)
[ 115.789824] imx415 3-001a: set exposure(shr0) 994 = cur_vts(2250) - val(1256)
[ 115.812966] imx415 3-001a: set analog gain 0xe
[ 115.814249] imx415 3-001a: set exposure(shr0) 900 = cur_vts(2250) - val(1350)
[ 115.822643] imx415 3-001a: set analog gain 0x1f
[ 115.840310] imx415 3-001a: set analog gain 0x32
[ 115.856052] imx415 3-001a: set analog gain 0x3b
[ 115.872767] imx415 3-001a: set analog gain 0x46
[ 115.889767] imx415 3-001a: set analog gain 0x54
[ 115.906166] imx415 3-001a: set analog gain 0x63
[ 115.922702] imx415 3-001a: set analog gain 0x72
[ 115.939327] imx415 3-001a: set analog gain 0x7f
[ 115.955975] imx415 3-001a: set analog gain 0x8c
… working stream (logs continue until termination)

@ken @ChenJaly please take a look. This is with 6.1.84-6-rk2410 kernel.

Are you using our Debian Desktop image?

Hi, yes I’m using this Debian image:

https://github.com/radxa-build/radxa-cm5-io/releases/download/rsdk-b3/radxa-cm5-io_bookworm_kde_b3.output.img.xz

I have ran apt update & upgrade and the 4K camera overlay was enabled via rsetup.

You should not run apt upgrade as it could break the system. Check if you have the overlay in the base image first. If not, use rsetup to update the system.

Okay - I did also test prior to running apt upgrade and got the same result.

Also, we have a few CM5s, IO boards and Camera 4K - I have tried to run the camera on a completely different set of hardware (different CM5, board, camera and cable) - I got the same outcome, so it’s probably not a unique defect in any of those components.

@RadxaYuntian could you please let me know if or when there’s any update on this? We are aiming to finalize a board design this week. Even if the cause is not certain, it would be useful to know whether this is a hardware issue with the CM5 + IO board or a software issue.

@ChenJaly is tasked to check on this issue.

Hi @kieranwlc,
Observe that your kernel log contains [ 125.165866] imx415 8-001a: write reg array error, which is generally a hardware communication quality problem. I have tested it with cm5 io and b3 images, and everything is normal. Please provide the running command: GST_DEBUG=4 gst-launch-1.0 v4l2src device=/dev/video-camera0 ! video/x-raw,format=NV12,width=3840,height=2160,fps=20 ! fakesink -v 2>&1 log and the complete kernel log

Hi thanks for the response @ChenJaly :
gst log:

Full dmesg:

Hi, we have discovered that the source of the issue was a faulty/inadequate power supply. We switched to a new 12V/5A power supply and now the camera is working. Not sure if it’s because of the 12V instead of 5V or if the previous one was just faulty.

Apologies for taking up your time @ChenJaly @RadxaYuntian but thank you for your support!

1 Like

Happy to see you solved the problem