Support for implementing Sony IMX462 Camera on Verdin iMX8M Plus

We are working to implement and bring up the Sony IMX462 MIPI CSI-2 camera sensor on the Verdin iMX8M Plus (V1.1A) with the Verdin Development Board (V1.1F).

We would like direct guidance and a working approach for:

  • Proper driver integration for IMX462 (based on IMX290 or separate driver).

  • Required device tree or overlay changes to enable the sensor.

  • Steps to verify successful camera initialization and streaming via V4L2 or GStreamer.

We need help to get this implementation working correctly on the current Toradex BSP.

Hardware Details:

  • SoM: Verdin iMX8M Plus 8GB WB IT V1.1A

  • Carrier Board: Verdin Development Board V1.1F

  • Camera Sensor: Sony IMX462 (MIPI CSI-2 interface)

Software Details:

  • OS: TDX Wayland with XWayland 7.4.0+build.10 (scarthgap)

  • Kernel Version: 6.6.101-7.4.0

  • Image: Verdin-iMX8MP_Reference-Multimedia-Image

  • Build Environment: Ubuntu 22.04 (Host), cross-compiling using Toradex SDK toolchain

Hi, I’m the Toradex AI Assistant.

I might make mistakes or occasionally get you wrong. Our support team will step in if needed.


I’ll help you implement the Sony IMX462 MIPI CSI-2 camera sensor on your Verdin iMX8M Plus system. Based on the available documentation and a similar case from the community, here’s a comprehensive approach.

Driver Integration for IMX462

The Sony IMX462 shares similarities with the IMX290 sensor, so you can likely use the existing IMX290 driver as a base(1). The kernel includes support for various camera sensors through the V4L2 framework(2).

Device Tree Configuration

Device Tree Structure

Toradex uses a three-level device tree structure for modular support(3):

  • SoC level: Include files (*.dtsi) with SoC-level definitions
  • SoM level: Include files (*.dtsi) with specific SoM-level definitions
  • Board level: Files for board-level definitions considering custom carrier board design

Required Device Tree Changes

You’ll need to create device tree modifications similar to the Basler camera example from the community(1). The device tree should include:

  1. Camera sensor node in the I2C bus:
basler_camera_vvcam@36 {
    csi_id = <0x00>;
    compatible = "basler,basler-camera-vvcam", "basler-camera-vvcam";
    status = "okay";
    reg = <0x36>;

    port {
        endpoint {
            data-lanes = <0x01 0x02 0x03 0x04>;
            clock-lanes = <0x00>;
            remote-endpoint = <0x40>;
            max-pixel-frequency = <0x00 0x1dcd6500>;
            max-lane-frequency = <0x00 0x2cb41780>;
            phandle = <0x76>;
            max-data-rate = <0x00 0x00>;
            link-frequencies = <0x00 0x2cb41780>;
        };
    };
};

(1)

  1. Standard device tree properties you’ll need to configure(3):
    • compatible: Define the specific programming model for the device
    • reg: Address of the device’s resources within the address space
    • status: Set to “okay” to enable the device

Creating Device Tree Overlays

You can use device tree overlays to modify the base device tree without rebuilding the entire kernel(3). Create a .dtsi overlay file for your IMX462 sensor configuration.

Verification Steps

1. Check Device Recognition

After implementing your device tree changes, verify the camera is detected:

# ls /dev/video*
# v4l2-ctl --list-devices
# v4l2-ctl -V

(1)

2. I2C Communication Verification

Check if the camera appears on the I2C bus:

# i2cdetect -y 2

(1)

The camera should show as “UU” when the driver is loaded and using the device.

3. GStreamer Testing

Test basic video capture using GStreamer(2)(4):

# gst-launch-1.0 -v v4l2src device=/dev/video2 ! waylandsink

(1)

For more advanced testing, you can use the video test source:

# gst-launch-1.0 videotestsrc ! waylandsink

(2)

Important Considerations

BSP Version Compatibility

Based on community experience, ensure you’re using the correct BSP version(1). If you encounter kernel panics or I2C communication issues, consider using BSP 7.0.0 specifically, as there have been reports of I2C driver changes affecting camera sensors between versions.

Prerequisites

Before testing, ensure you have(2):

  • Reference Multimedia Image installed
  • Qt Demo application disabled:
# systemctl stop wayland-app-launch
# systemctl disable wayland-app-launch

Debugging Tools

Use GStreamer debugging tools to troubleshoot(2):

  • gst-inspect-1.0 to check available plugins and elements
  • gst-launch-1.0 with verbose output (-v flag) for pipeline debugging

Additional Resources

For comprehensive camera implementation guidance, refer to the following Toradex documentation:

  • Camera support overview and GStreamer integration(4)
  • Video encoding and playback with hardware acceleration(2)
  • Device tree configuration principles(3)

The key is to adapt the device tree configuration for your specific IMX462 sensor while following the established patterns used by other MIPI CSI-2 cameras on the Verdin iMX8M Plus platform.

Best regards, Toradex AI Assistant.


Did you like my answer? :+1: :-1:

If I answered your question, please tick the “Solution” checkbox.

For follow-up questions to me, please use @ToradexAI in your post.

Hello Girish,

Did you purchase this camera module from e-con?
Please download the documentation given on their page and you will get the required drivers and integration instructions in the document itself.

Sahil Malian
Toradex

Thanks Sahil, we are currently using the sensors from our existing CCTV products, can you just help with sharing the related documentation?

Also, can you assist with exactly which git version that will be required for imx462 Integration??
-linux-toradex.git - Linux kernel for Apalis, Colibri and Verdin modules

Hi @girish07,
Usually, the camera related documents should be provided by the camera vendor.
I suggested you to please login/create account at e-con and download the documentations.
Their documentation contains patches, device tree settings, driver and the procedure for integration for Verdin iMX8.
I can see kernel version 5.15 is used.

Please download the documentation and take reference from there.

Hi @sahil.tx , I have downloaded the docs provided in econ, but since it is using different kernel patch, it is not supported with the board, I’m using (Toradex -v: 6.6.101‑7.4.0) can you provide support for this specific version??

Hello @girish07
Just for basic understanding I am adding the below points.

The IMX462 is just the raw image sensor from Sony.It does not include any additional circuitry like power regulation, interface boards, or software drivers.

Camera Vendor(e.g., VEYE, e-con, Arducam, etc.):The camera vendor designs the camera hardware around the IMX462 sensor,(Power management, MIPI-CSI interface, Lens mounting, etc)The camera vendor is responsible for providing the IMX462 driver.

Toradex provides the MIPI CSI interface and the V4L2 framework for camera integration on the Verdin i.MX8MP platform.

Now, how can you progress from here

  1. You mentioned that

we are currently using the sensors from our existing CCTV products

Please recheck if you are using the raw sensor or it is from some vendor

  1. You can take reference from econ documentations or from veye.
    They have provided the drivers and the device tree/ device tree overlays for Verdin iMX8MP/Mini.

You can first test and validate with 5.15 and then later try to apply these modification on the newer kernel.
Further you can either request your camera vendor or take help from third party company. If you want we can connect you to someone.

Let me know if you want further information