Difference between revisions of "DIGILENT MIPI-CSI Camera Set"Voipac webshop

From Voipac Wiki
Jump to navigation Jump to search
Line 5: Line 5:
  
 
== Camera Input  ==
 
== Camera Input  ==
 +
 +
[[image:Pcam-5C.png|800px]]<br />
 +
Digilent Pcam 5C is a MIPI-CSI interface, 5 MP Fixed-Focus color camera connected to iMX Development Baseboard
 +
 
'''''Input:''''' Connect DIGILENT Pcam 5C camera module into CSI-2 interface and check if it is detected on I2C bus<br />
 
'''''Input:''''' Connect DIGILENT Pcam 5C camera module into CSI-2 interface and check if it is detected on I2C bus<br />
 
'''''Output:''''' Camera is found<br />
 
'''''Output:''''' Camera is found<br />
Line 75: Line 79:
  
 
Video should be displayed on video output (hdmi or lvds display)
 
Video should be displayed on video output (hdmi or lvds display)
 
<br /><br />!!!!!!!!!EXISTING PART OF THE WIKI PAGE STARTS BELOW !!!!!!!!!<br /><br />
 
 
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.
 
<br />
 
[[image:Pcam-5C.png|800px]]<br />
 
Digilent Pcam 5C is a MIPI-CSI interface, 5 MP Fixed-Focus color camera connected to iMX Development Baseboard
 
<br />
 
 
== Kernel detection ==
 
<syntaxhighlight lang="bash">
 
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:~#
 
</syntaxhighlight>
 
 
== I2C detection ==
 
DIGILENT Pcam 5C camera chip is connected via I2C2. The most important address for correct detection is 0x3c.
 
<syntaxhighlight lang="bash">
 
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: -- -- -- -- -- -- -- --
 
</syntaxhighlight>
 
 
== Modules listing ==
 
=== Kernel 4.1 ???????????===
 
<syntaxhighlight lang="bash">
 
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
 
 
</syntaxhighlight>
 
 
== Resolution setting ==
 
The camera support video streaming formats 1080p (at 30 frames per second) and 720p (at 60 frames per second)
 
=== 1280x960 ===
 
<syntaxhighlight lang="bash">
 
echo 0 > /sys/bus/i2c/devices/1-0036/ov5647_mode
 
</syntaxhighlight>
 
 
=== 1280x720 ===
 
<syntaxhighlight lang="bash">
 
echo 1 > /sys/bus/i2c/devices/1-0036/ov5647_mode
 
</syntaxhighlight>
 
 
=== 1920x1080 ===
 
<syntaxhighlight lang="bash">
 
echo 2 > /sys/bus/i2c/devices/1-0036/ov5647_mode
 
</syntaxhighlight>
 
 
=== 640x480 ===
 
<syntaxhighlight lang="bash">
 
echo 3 > /sys/bus/i2c/devices/1-0036/ov5647_mode
 
</syntaxhighlight>
 
 
=== 1024x768 (default) ===
 
<syntaxhighlight lang="bash">
 
echo 4 > /sys/bus/i2c/devices/1-0036/ov5647_mode
 
</syntaxhighlight>
 
 
=== 960x720 ===
 
<syntaxhighlight lang="bash">
 
echo 5 > /sys/bus/i2c/devices/1-0036/ov5647_mode
 
</syntaxhighlight>
 
 
=== 640x480 (narrow angle of view) ===
 
<syntaxhighlight lang="bash">
 
echo 6 > /sys/bus/i2c/devices/1-0036/ov5647_mode
 
</syntaxhighlight>
 
 
== Gstreamer ==
 
=== Capture single JPEG picture ===
 
<syntaxhighlight lang="bash">
 
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
 
</syntaxhighlight>
 
 
The image stored in local media with name sample_image.jpeg
 
 
=== Video preview ===
 
<syntaxhighlight lang="bash">
 
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
 
</syntaxhighlight>
 
The video stream from camera can be displayed on display/monitor
 

Revision as of 22:08, 11 February 2025

Camera Input

Pcam-5C.png
Digilent Pcam 5C is a MIPI-CSI interface, 5 MP Fixed-Focus color camera connected to iMX Development Baseboard

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_digi.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)