cancel
Showing results for 
Search instead for 
Did you mean: 

Unable to Use dcmipp-isp-ctrl Tool at Runtime with IMX219 Sensor on STM32MP257-EV1

dongremayur777
Associate II

I'm currently working with an IMX219 camera sensor connected to the STM32MP257-EV1 board. The camera is successfully streaming, and the pipeline appears correctly configured through media-ctl. However, I’m unable to use the dcmipp-isp-ctrl tool at runtime for ISP control.

System Info:

  • Board: STM32MP257-EV1

  • Sensor: IMX219

  • ISP Tool: /usr/local/demo/bin/dcmipp-isp-ctrl

  • Kernel & Yocto BSP: scarthgap

Media-ctl Output:

Camera is streaming properly; format and pipeline are configured as expected.


root@stm32mp25-eval-e3-e7-ad:~#  media-ctl -d /dev/media2 -p
Media controller API version 6.6.78
 
Media device information
------------------------
driver          dcmipp
model           DCMIPP MDEV
serial          
bus info        platform:48030000.dcmipp
hw revision     0x30
driver version  6.6.78
 
Device topology
- entity 1: dcmipp_input (4 pads, 5 links, 0 routes)
            type V4L2 subdev subtype Unknown flags 0
            device node name /dev/v4l-subdev0
pad0: Sink
[stream:0 fmt:SRGGB10_1X10/1920x1080 field:none colorspace:raw xfer:none quantization:full-range]
<- "dcmipp_tpg":0 []
<- "48020000.csi":1 [ENABLED]
pad1: Source
[stream:0 fmt:SRGGB10_1X10/1920x1080 field:none colorspace:raw xfer:none quantization:full-range]
-> "dcmipp_dump_postproc":0 []
pad2: Source
[stream:0 fmt:SRGGB10_1X10/1920x1080 field:none colorspace:rec709]
-> "dcmipp_main_isp":0 [ENABLED]
pad3: Source
[stream:0 fmt:SRGGB10_1X10/1920x1080 field:none colorspace:raw xfer:none quantization:full-range]
-> "dcmipp_aux_postproc":0 []
 
- entity 6: dcmipp_dump_postproc (2 pads, 2 links, 0 routes)
            type V4L2 subdev subtype Unknown flags 0
            device node name /dev/v4l-subdev1
pad0: Sink
[stream:0 fmt:RGB565_2X8_LE/640x480 field:none colorspace:rec709
compose.bounds:(0,0)/640x480
compose:(0,0)/640x480]
<- "dcmipp_input":1 []
pad1: Source
[stream:0 fmt:RGB565_2X8_LE/640x480 field:none colorspace:rec709
crop.bounds:(0,0)/640x480
crop:(0,0)/640x480]
-> "dcmipp_dump_capture":0 [ENABLED,IMMUTABLE]
 
- entity 9: dcmipp_dump_capture (1 pad, 1 link)
            type Node subtype V4L flags 0
            device node name /dev/video0
pad0: Sink
<- "dcmipp_dump_postproc":1 [ENABLED,IMMUTABLE]
 
- entity 13: dcmipp_main_isp (4 pads, 5 links, 0 routes)
             type V4L2 subdev subtype Unknown flags 0
             device node name /dev/v4l-subdev2
pad0: Sink
[stream:0 fmt:SRGGB10_1X10/1920x1080 field:none colorspace:rec709
crop.bounds:(0,0)/1920x1080
crop:(0,0)/1920x1080
compose.bounds:(0,0)/1920x1080
compose:(0,0)/1920x1080]
<- "dcmipp_input":2 [ENABLED]
pad1: Source
[stream:0 fmt:RGB888_1X24/1920x1080 field:none colorspace:rec709]
-> "dcmipp_main_postproc":0 [ENABLED,IMMUTABLE]
-> "dcmipp_aux_postproc":0 []
pad2: Sink
[stream:0 fmt:RGB888_1X24/1920x1080 field:none colorspace:rec709]
<- "dcmipp_main_isp_params_output":0 [ENABLED,IMMUTABLE]
pad3: Source
[stream:0 fmt:unknown/0x0]
-> "dcmipp_main_isp_stat_capture":0 [ENABLED,IMMUTABLE]
 
- entity 18: dcmipp_main_postproc (2 pads, 2 links, 0 routes)
             type V4L2 subdev subtype Unknown flags 0
             device node name /dev/v4l-subdev3
pad0: Sink
[stream:0 fmt:RGB888_1X24/1920x1080@1/30 field:none colorspace:rec709
crop.bounds:(0,0)/1920x1080
crop:(0,0)/1920x1080
compose.bounds:(0,0)/1920x1080
compose:(0,0)/1920x1080]
<- "dcmipp_main_isp":1 [ENABLED,IMMUTABLE]
pad1: Source
[stream:0 fmt:RGB888_1X24/1920x1080@1/30 field:none colorspace:rec709]
-> "dcmipp_main_capture":0 [ENABLED,IMMUTABLE]
 
- entity 21: dcmipp_main_capture (1 pad, 1 link)
             type Node subtype V4L flags 0
             device node name /dev/video1
pad0: Sink
<- "dcmipp_main_postproc":1 [ENABLED,IMMUTABLE]
 
- entity 25: dcmipp_aux_postproc (2 pads, 3 links, 0 routes)
             type V4L2 subdev subtype Unknown flags 0
             device node name /dev/v4l-subdev4
pad0: Sink
[stream:0 fmt:RGB888_1X24/640x480@1/30 field:none colorspace:rec709
crop.bounds:(0,0)/640x480
crop:(0,0)/640x480
compose.bounds:(0,0)/640x480
compose:(0,0)/640x480]
<- "dcmipp_input":3 []
<- "dcmipp_main_isp":1 []
pad1: Source
[stream:0 fmt:RGB888_1X24/640x480@1/30 field:none colorspace:rec709]
-> "dcmipp_aux_capture":0 [ENABLED,IMMUTABLE]
 
- entity 28: dcmipp_aux_capture (1 pad, 1 link)
             type Node subtype V4L flags 0
             device node name /dev/video2
pad0: Sink
<- "dcmipp_aux_postproc":1 [ENABLED,IMMUTABLE]
 
- entity 32: dcmipp_main_isp_stat_capture (1 pad, 1 link)
             type Node subtype V4L flags 0
             device node name /dev/video3
pad0: Sink
<- "dcmipp_main_isp":3 [ENABLED,IMMUTABLE]
 
- entity 36: dcmipp_main_isp_params_output (1 pad, 1 link)
             type Node subtype V4L flags 0
             device node name /dev/video4
pad0: Source
-> "dcmipp_main_isp":2 [ENABLED,IMMUTABLE]
 
- entity 40: dcmipp_tpg (1 pad, 1 link, 0 routes)
             type V4L2 subdev subtype Sensor flags 0
             device node name /dev/v4l-subdev5
pad0: Source
[stream:0 fmt:RGB565_1X16/640x480 field:none colorspace:rec709]
-> "dcmipp_input":0 []
 
- entity 64: 48020000.csi (2 pads, 2 links, 0 routes)
             type V4L2 subdev subtype Unknown flags 0
             device node name /dev/v4l-subdev6
pad0: Sink
[stream:0 fmt:SRGGB10_1X10/1920x1080 field:none colorspace:raw xfer:none quantization:full-range]
<- "imx219 0-0010":0 [ENABLED,IMMUTABLE]
pad1: Source
[stream:0 fmt:SRGGB10_1X10/1920x1080 field:none colorspace:raw xfer:none quantization:full-range]
-> "dcmipp_input":0 [ENABLED]
 
- entity 69: imx219 0-0010 (1 pad, 1 link, 0 routes)
             type V4L2 subdev subtype Sensor flags 0
             device node name /dev/v4l-subdev7
pad0: Source
[stream:0 fmt:SRGGB10_1X10/1920x1080 field:none colorspace:raw xfer:none quantization:full-range
crop.bounds:(8,8)/3280x2464
crop:(688,700)/1920x1080]
-> "48020000.csi":0 [ENABLED,IMMUTABLE]





But the issue is 

Issue:

Running the following command:

/usr/local/demo/bin/dcmipp-isp-ctrl -i0 -g

I am getting output as 

00:00:47.8 / 99:99:99.
Can't find sensor subdev


Didn't understand what's going wrong , why it is unable to recognize the sensor.



 

1 REPLY 1
VABRI
ST Employee

Hello @dongremayur777 ,

The IMX129 is a RAW8/RAW10 bayer sensor.
To tune the dcmippp for this sensor and to get good color rendering, I suggest you to add the X-LINUX-ISP expansion package to your project:
https://wiki.st.com/stm32mpu/wiki/Category:X-LINUX-ISP_expansion_package

 

The dcmipp-isp-ctrl you are intended to use is no more the official way to use Raw bayer sensor. It is preferable to use Libcamera as depicted in the wiki page I have shared.

You should certainely need to update some of the IMX129 service to be supported by our ISP IQTune software to be able to properly tune the sensor image quality.

 

Vincent


In order to give better visibility on the answered topics, please click on 'Accept as Solution' on the reply which solved your issue or answered your question.