DIGILENT MIPI-CSI Camera Set
Camera Input
Input: Connect DIGILENT Pcam 5C camera module into CSI-2 interface and check if it is detected on I2C bus
Output: Camera is found
root@imx8mq-voipac:~# dmesg | grep ov56 [ 2.383324] ov5640_mipi 1-003c: No pin available [ 2.387976] ov5640_mipi 1-003c: No sensor pwdn pin available [ 2.393683] ov5640_mipi 1-003c: No sensor reset pin available [ 2.399479] ov5640_regulator_enable: cannot get io voltage error - err:-517 [ 3.018132] ov5640_mipi 1-003c: No pin available [ 3.033972] ov5640_mipi 1-003c: No sensor pwdn pin available [ 3.046488] ov5640_mipi 1-003c: No sensor reset pin available [ 3.062091] ov5640_mipi 1-003c: 1-003c supply DVDD not found, using dummy regulator [ 3.072436] ov5640_mipi 1-003c: 1-003c supply AVDD not found, using dummy regulator [ 4.325257] mxc-mipi-csi2_yav 30b60000.mipi_csi: Registered sensor subdevice: ov5640_mipi 1-003c [ 4.337288] ov5640_mipi 1-003c: Camera is found
Input: Connect DIGILENT Pcam 5C camera module into CSI-2 interface and capture image
Output: The image stored in local media with name sample_image.jpeg
root@imx8mq-voipac:~# gst-launch-1.0 v4l2src num-buffers=1 device=/dev/video1 ! jpegenc ! filesink location=sample_image_digi.jpeg Setting pipeline to PAUSED ... Pipeline is live and does not need PREROLL ... Setting pipeline to PLAYING ... New clock: GstSystemClock [ 1023.907274] ov5640_mipi 1-003c: s_stream: 1 [ 1024.609769] skip frame 1 Got EOS from element "pipeline0".[ 1026.497200] ov5640_mipi 1-003c: s_stream: 0 Execution ended after 0:00:03.075026264 Setting pipeline to PAUSED ... Setting pipeline to READY ... Setting pipeline to NULL ... Freeing pipeline ...
Input: Connect DIGILENT Pcam 5C camera module into CSI-2 interface and capture video
Output: The image displayed on display/monitor
root@imx8mq-voipac:~# GST_DEBUG=GST_BUFFER:5 gst-launch-1.0 v4l2src device=/dev/video1 ! 'video/x-raw,framerate=30/1' ! autovideosink Setting pipeline to PAUSED ... Pipeline is live and does not need PREROLL ... Setting pipeline to PLAYING ... New clock: GstSystemClock 0:00:00.817426914 433 0xaaaacb3d5c00 DEBUG GST_BUFFER gstbuffer.c:2279:gst_buffer_add_meta: alloc metadata 0xaaaacb4873c0 (GstVideoMeta) of size 112 0:00:00.817551951 433 0xaaaacb3d5c00 DEBUG GST_BUFFER gstbuffer.c:2279:gst_buffer_add_meta: alloc metadata 0xaaaacb487440 (GstVideoMeta) of size 112 0:00:00.817603069 4[ 1575.384649] ov5640_mipi 1-003c: s_stream: 1 33 0xaaaacb3d5c00 DEBUG GST_BUFFER gstbuffer.c:2279:gst_buffer_add_meta: alloc metadata 0xaaaacb4874c0 (GstVideoMeta) of size 112 0:00:00.817651068 433 0xaaaacb3d5c00 DEBUG GST_BUFFER gstbuffer.c:2279:gst_buffer_add_meta: alloc metadata 0xaaaacb487540 (GstVideoMeta) of size 112 [ 1576.002044] skip frame 1 CAPTURE INTERRUPTION: [ 1582.847027] ov5640_mipi 1-003c: s_stream: 0 Execution ended after 0:00:08.249177743 Setting pipeline to PAUSED ... Setting pipeline to READY ... 0:00:08.326703325 433 0xaaaacb468180 DEBUG GST_BUFFER gstbuffer.c:1448:gst_buffer_is_memory_range_writable: idx 0, length -1 0:00:08.326764524 433 0xaaaacb468180 DEBUG GST_BUFFER gstbuffer.c:1448:gst_buffer_is_memory_range_writable: idx 0, length -1 0:00:08.326792003 433 0xaaaacb468180 DEBUG GST_BUFFER gstbuffer.c:1448:gst_buffer_is_memory_range_writable: idx 0, length -1 Setting pipeline to NULL ... Total showed frames (78), playing for (0:00:08.249372377), fps (9.455). Freeing pipeline ...
Video should be displayed on video output (hdmi or lvds display)
!!!!!!!!!EXISTING PART OF THE WIKI PAGE STARTS BELOW !!!!!!!!!
This example uses Digilent Pcam 5C is a MIPI-CSI interface camera (built on OV5640 MIPI sensor) as a test device for CSI Interface. On this page OV5640 sensor integration, settings and usage on i.MX8M processors are shown.
Digilent Pcam 5C is a MIPI-CSI interface, 5 MP Fixed-Focus color camera connected to iMX Development Baseboard
Kernel detection
root@imx8mq-voipac:~# dmesg | grep ov56 [ 2.410383] ov5640_mipi 1-003c: No pin available [ 2.415040] ov5640_mipi 1-003c: No sensor pwdn pin available [ 2.420726] ov5640_mipi 1-003c: No sensor reset pin available [ 2.426512] ov5640_regulator_enable: cannot get io voltage error - err:-517 [ 2.555690] ov5640_mipi 2-003c: No pin available [ 2.562074] ov5640_mipi 2-003c: No sensor reset pin available [ 2.567861] ov5640_regulator_enable: cannot get io voltage error - err:-517 [ 2.948998] ov5640_mipi 1-003c: No pin available [ 2.959199] ov5640_mipi 1-003c: No sensor reset pin available [ 2.970608] ov5640_mipi 1-003c: 1-003c supply DVDD not found, using dummy regulator [ 2.983356] ov5640_mipi 1-003c: 1-003c supply AVDD not found, using dummy regulator [ 4.190794] mxc-mipi-csi2_yav 30b60000.mipi_csi: Registered sensor subdevice: ov5640_mipi 1-003c [ 4.204863] ov5640_mipi 1-003c: Camera is found [ 4.209719] ov5640_mipi 2-003c: No pin available [ 4.214385] ov5640_mipi 2-003c: Failed to set power pin [ 4.219626] ov5640_mipi 2-003c: retval=-16 [ 4.223747] ov5640_mipi: probe of 2-003c failed with error -16 root@imx8mq-voipac:~#
I2C detection
DIGILENT Pcam 5C camera chip is connected via I2C2. The most important address for correct detection is 0x3c.
root@imx8mq-voipac:~# i2cdetect -y 1 0 1 2 3 4 5 6 7 8 9 a b c d e f 00: -- -- -- -- -- -- -- -- -- -- -- -- -- 10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 20: -- -- -- UU -- -- -- UU -- -- -- -- -- -- -- -- 30: -- -- -- -- -- -- -- -- -- -- -- -- UU 3d -- -- 40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 50: -- UU -- UU -- -- -- -- -- -- -- -- -- -- -- -- 60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 70: -- -- -- -- -- -- -- --
Modules listing
Kernel 4.1 ???????????
root@imx6-openrex:~# lsmod ???????????????? Module Size Used by mxc_v4l2_capture 27624 2 ipu_bg_overlay_sdc 5385 1 mxc_v4l2_capture ipu_still 2331 1 mxc_v4l2_capture ipu_prp_enc 5903 1 mxc_v4l2_capture ipu_csi_enc 3904 1 mxc_v4l2_capture ipu_fg_overlay_sdc 6130 1 mxc_v4l2_capture ov5647_camera_mipi_int 30566 0 adv7610_video 6373 0 v4l2_int_device 2872 4 ov5647_camera_mipi_int,adv7610_video,ipu_csi_enc,mxc_v4l2_capture mxc_dcic 6528 0 root@imx8mq-voipac:~# lsmod Module Size Used by crct10dif_ce 16384 1 mwifiex_pcie 45056 0 mwifiex 294912 1 mwifiex_pcie galcore 610304 2
Resolution setting
The camera support video streaming formats 1080p (at 30 frames per second) and 720p (at 60 frames per second)
1280x960
echo 0 > /sys/bus/i2c/devices/1-0036/ov5647_mode
1280x720
echo 1 > /sys/bus/i2c/devices/1-0036/ov5647_mode
1920x1080
echo 2 > /sys/bus/i2c/devices/1-0036/ov5647_mode
640x480
echo 3 > /sys/bus/i2c/devices/1-0036/ov5647_mode
1024x768 (default)
echo 4 > /sys/bus/i2c/devices/1-0036/ov5647_mode
960x720
echo 5 > /sys/bus/i2c/devices/1-0036/ov5647_mode
640x480 (narrow angle of view)
echo 6 > /sys/bus/i2c/devices/1-0036/ov5647_mode
Gstreamer
Capture single JPEG picture
root@imx8mq-voipac:~# gst-launch-1.0 v4l2src num-buffers=1 ! jpegenc ! filesink location=sample_image.jp Setting pipeline to PAUSED ... Pipeline is live and does not need PREROLL ... Setting pipeline to PLAYING ... New clock: GstSystemClock ERROR: from element /GstPipeline:pipeline0/GstV4l2Src:v4l2src0: Internal data stream error. Additional debug info: ../git/libs/gst/base/gstbasesrc.c(3072): gst_base_src_loop (): /GstPipeline:pipeline0/GstV4l2Src:v4l2src0: streaming stopped, reason not-negotiated (-4) Execution ended after 0:00:00.000309960 Setting pipeline to PAUSED ... Setting pipeline to READY ... Setting pipeline to NULL ... Freeing pipeline ... root@imx8mq-voipac:~# ls sample_image.jp
The image stored in local media with name sample_image.jpeg
Video preview
root@imx8mq-voipac:~# GST_DEBUG=GST_BUFFER:5 gst-launch-1.0 v4l2src device=/dev/video1 ! 'video/x-raw,framerate=30/1' ! autovideosink Setting pipeline to PAUSED ... Pipeline is live and does not need PREROLL ... Setting pipeline to PLAYING ... New clock: GstSystemClock 0:00:00.842776580 469 0xaaaadc001c00 DEBUG GST_BUFFER gstbuffer.c:2279:gst_buffer_add_meta: alloc metadata 0xaaaadc0623c0 (GstVideoMeta) of size 112 0:00:00.842935198 469 0xaaaadc001c00 DEBUG GST_BUFFER gstbuffer.c:2279:gst_buffer_add_meta: alloc metadata 0xaaaadc062440 (GstVideoMeta) of size 112 0:00:00.843278592 469 0xaaaadc001c00 DEB[ 1415.898001] ov5640_mipi 2-003c: s_stream: 1 UG GST_BUFFER gstbuffer.c:2279:gst_buffer_add_meta: alloc metadata 0xaaaadc0624c0 (GstVideoMeta) of size 112 0:00:00.843338584 469 0xaaaadc001c00 DEBUG GST_BUFFER gstbuffer.c:2279:gst_buffer_add_meta: alloc metadata 0xaaaadc062540 (GstVideoMeta) of size 112 [ 1416.119964] skip frame 1
The video stream from camera can be displayed on display/monitor