Difference between revisions of "Aptina mt9v034 sensor V4L2 based linux driver"

From IGEP - ISEE Wiki

Jump to: navigation, search
(Created page with '= Overview = IMPORTANT NOTE: This software is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or …')
 
m (Tools)
 
(8 intermediate revisions by 3 users not shown)
Line 22: Line 22:
  
 
* https://gitorious.org/raw2rgbpnm
 
* https://gitorious.org/raw2rgbpnm
 +
 +
Documentation of Laurent Pinchart about Media controller on OMAP3430 ISP (V4L2 Helsinki Summit)
 +
* http://linuxtv.org/downloads/presentations/summit_jun_2010/20100614-v4l2_summit-media.pdf
  
 
= Mainline status =
 
= Mainline status =
  
'''Submitted:''' Oct. 5, 2012
+
'''Submitted:''' Dec. 4, 2013
  
'''Permalink:''' [https://patchwork.kernel.org/patch/1552451 /patch/1552451/]
+
'''Permalink:''' [https://patchwork.linuxtv.org/patch/20921/ /patch/20921/]
  
'''Status:''' Needs to revisit.
+
'''Status:''' Accepted.
  
 
= linux-3.6.y status =
 
= linux-3.6.y status =
Line 52: Line 55:
 
(None for the moment)
 
(None for the moment)
  
= linux-2.37.y status =
+
= linux-2.6.37.y status =
 +
 
 +
'''Repository:''' [http://git.isee.biz/?p=pub/scm/linux-omap-2.6.git;a=shortlog;h=refs/heads/linux-2.6.37.y-camr00x0 linux-2.6.37.y-camr00x0]
 +
 
 +
git clone git://git.isee.biz/pub/scm/linux-omap-2.6.git -b linux-2.6.37.y-camr00x0
 +
 
 +
'''Status:''' Working
  
'''Repository:''' [http://git.isee.biz/?p=pub/scm/linux-omap-2.6.git;a=shortlog;h=refs/heads/linux-2.37.y-mt9v034 linux-2.37.y-mt9v034]
+
== MT9V034 Testing notes ==
  
git clone git://git.isee.biz/pub/scm/linux-omap-2.6.git -b linux-2.37.y-mt9v034
+
=== IGEP.ini configuration===
  
'''Status:''' Working with issues
+
<pre>buddy=camr00x0
 +
camr00x0.sensor=mt9v034 </pre>
  
== Testing notes ==
+
=== Tools ===
  
 
Use Laurent’s "media-ctl" and yavta command line tool,
 
Use Laurent’s "media-ctl" and yavta command line tool,
Line 67: Line 77:
  
 
  media-ctl -r
 
  media-ctl -r
  media-ctl -l '"mt9v034 2-005c":0->"OMAP3 ISP CCDC":0[1]'
+
  media-ctl -l '"mt9v034 3-005c":0->"OMAP3 ISP CCDC":0[1]'
 
  media-ctl -l '"OMAP3 ISP CCDC":1->"OMAP3 ISP CCDC output":0[1]'
 
  media-ctl -l '"OMAP3 ISP CCDC":1->"OMAP3 ISP CCDC output":0[1]'
  media-ctl -f '"mt9v034 2-005c":0 [SGRBG10 752x480]'
+
  media-ctl -f '"mt9v034 3-005c":0 [SGRBG10 752x480]'
  media-ctl -f '"OMAP3 ISP CCDC":1 [SGRBG10 752x480]
+
  media-ctl -f '"OMAP3 ISP CCDC":1 [SGRBG10 752x480]'
  
 
Capture data with,
 
Capture data with,
Line 80: Line 90:
 
  raw2rgbpnm -f SGRBG10 -s 752x480 img-000000.bin img-000000.pnm
 
  raw2rgbpnm -f SGRBG10 -s 752x480 img-000000.bin img-000000.pnm
  
== Known Issues ==
+
Configure pipeline to SENSOR -> CCDC -> PREVIEWER -> RESIZER
 +
 
 +
media-ctl -r
 +
media-ctl -l '"mt9v034 3-005c":0->"OMAP3 ISP CCDC":0[1]'
 +
media-ctl -l '"OMAP3 ISP CCDC":2->"OMAP3 ISP preview":0[1]'
 +
media-ctl -l '"OMAP3 ISP preview":1->"OMAP3 ISP resizer":0[1]'
 +
media-ctl -l '"OMAP3 ISP resizer":1->"OMAP3 ISP resizer output":0[1]'
 +
 +
media-ctl -f '"mt9v034 3-005c":0[SGRBG10 752x480]'
 +
media-ctl -f  '"OMAP3 ISP CCDC":0 [SGRBG10 752x480]'
 +
media-ctl -f  '"OMAP3 ISP CCDC":2 [SGRBG10 752x480]'
 +
media-ctl -f  '"OMAP3 ISP preview":1 [UYVY 752x480]'
 +
media-ctl -f  '"OMAP3 ISP resizer":1 [UYVY 752x480]'
 +
 
 +
Capture data with,
 +
 
 +
gst-launch v4l2src device=/dev/video8 ! ffmpegcolorspace ! fbdevsink
  
* #001: Can't capture from previewer.
+
== Notes ==
* #002: Can't capture from resizer.
 
  
 
Pipeline for previewer
 
Pipeline for previewer
  
 
  media-ctl -r
 
  media-ctl -r
  media-ctl -l '"mt9v034 2-005c":0->"OMAP3 ISP CCDC":0[1]'
+
  media-ctl -l '"mt9v034 3-005c":0->"OMAP3 ISP CCDC":0[1]'
 
  media-ctl -l '"OMAP3 ISP CCDC":2->"OMAP3 ISP preview":0[1]'
 
  media-ctl -l '"OMAP3 ISP CCDC":2->"OMAP3 ISP preview":0[1]'
 
  media-ctl -l '"OMAP3 ISP preview":1->"OMAP3 ISP preview output":0[1]'
 
  media-ctl -l '"OMAP3 ISP preview":1->"OMAP3 ISP preview output":0[1]'
  media-ctl -d /dev/media0 -f '"mt9v034 2-005c":0 [SGRBG10 752x480]'
+
  media-ctl -d /dev/media0 -f '"mt9v034 3-005c":0 [SGRBG10 752x480]'
  media-ctl -d /dev/media0 -f '"mt9v034 2-005c":0 [SGRBG10 752x480]'
+
  media-ctl -d /dev/media0 -f '"mt9v034 3-005c":0 [SGRBG10 752x480]'
 
  media-ctl -d /dev/media0 -f '"OMAP3 ISP CCDC":2 [SGRBG10 752x480]'
 
  media-ctl -d /dev/media0 -f '"OMAP3 ISP CCDC":2 [SGRBG10 752x480]'
 
  media-ctl -d /dev/media0 -f '"OMAP3 ISP preview":1 [UYVY 752x480]'
 
  media-ctl -d /dev/media0 -f '"OMAP3 ISP preview":1 [UYVY 752x480]'
Line 99: Line 124:
  
 
  media-ctl -r
 
  media-ctl -r
  media-ctl -l '"mt9v034 2-005c":0->"OMAP3 ISP CCDC":0[1]'
+
  media-ctl -l '"mt9v034 3-005c":0->"OMAP3 ISP CCDC":0[1]'
 
  media-ctl -l '"OMAP3 ISP CCDC":2->"OMAP3 ISP preview":0[1]'
 
  media-ctl -l '"OMAP3 ISP CCDC":2->"OMAP3 ISP preview":0[1]'
 
  media-ctl -l '"OMAP3 ISP preview":1->"OMAP3 ISP resizer":0[1]'
 
  media-ctl -l '"OMAP3 ISP preview":1->"OMAP3 ISP resizer":0[1]'
 
  media-ctl -l '"OMAP3 ISP resizer":1->"OMAP3 ISP resizer output":0[1]'
 
  media-ctl -l '"OMAP3 ISP resizer":1->"OMAP3 ISP resizer output":0[1]'
 
   
 
   
  media-ctl -f '"mt9v034 2-005c":0[SGRBG10 752x480]'
+
  media-ctl -f '"mt9v034 3-005c":0[SGRBG10 752x480]'
 
  media-ctl -f  '"OMAP3 ISP CCDC":0 [SGRBG10 752x480]'
 
  media-ctl -f  '"OMAP3 ISP CCDC":0 [SGRBG10 752x480]'
 
  media-ctl -f  '"OMAP3 ISP CCDC":2 [SGRBG10 752x480]'
 
  media-ctl -f  '"OMAP3 ISP CCDC":2 [SGRBG10 752x480]'
 
  media-ctl -f  '"OMAP3 ISP preview":1 [UYVY 752x480]'
 
  media-ctl -f  '"OMAP3 ISP preview":1 [UYVY 752x480]'
 
  media-ctl -f  '"OMAP3 ISP resizer":1 [UYVY 752x480]'
 
  media-ctl -f  '"OMAP3 ISP resizer":1 [UYVY 752x480]'

Latest revision as of 11:04, 11 June 2015

Overview

IMPORTANT NOTE: This software is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

The goal of this article is provide mt9v034 open source driver for our camera boards.

General testing notes

To manipulate the Media controller device node, you can use Laurent’s "media-ctl" command line tool, which you can find here.

To capture data from sensor, you can use Laurent's "yavta" tool, which you can find here.

To see live display from sensor, you can use Laurent's "live" tool, which you can find here.

To convert raw bayer images to user viewable format, you can use "raw2rgbpnm" tool, which you can find here.

Documentation of Laurent Pinchart about Media controller on OMAP3430 ISP (V4L2 Helsinki Summit)

Mainline status

Submitted: Dec. 4, 2013

Permalink: /patch/20921/

Status: Accepted.

linux-3.6.y status

Repository: linux-3.6.y-mt9v034

git clone git://git.isee.biz/pub/scm/linux-omap-2.6.git -b linux-3.6.y-mt9v034

Status: Working

Testing notes

Use Laurent’s "live" command line tool,

modprobe omap_vout
live

Source code: http://git.ideasonboard.org/omap3-isp-live.git

Known Issues

(None for the moment)

linux-2.6.37.y status

Repository: linux-2.6.37.y-camr00x0

git clone git://git.isee.biz/pub/scm/linux-omap-2.6.git -b linux-2.6.37.y-camr00x0

Status: Working

MT9V034 Testing notes

IGEP.ini configuration

buddy=camr00x0
camr00x0.sensor=mt9v034 

Tools

Use Laurent’s "media-ctl" and yavta command line tool,

Configure pipeline to SENSOR -> CCDC OUTPUT

media-ctl -r
media-ctl -l '"mt9v034 3-005c":0->"OMAP3 ISP CCDC":0[1]'
media-ctl -l '"OMAP3 ISP CCDC":1->"OMAP3 ISP CCDC output":0[1]'
media-ctl -f '"mt9v034 3-005c":0 [SGRBG10 752x480]'
media-ctl -f '"OMAP3 ISP CCDC":1 [SGRBG10 752x480]'

Capture data with,

yavta -p -f SGRBG10 -s 752x480 -n 4 --capture=3 /dev/video4 --file=img-#.bin

Convert to a viewable format with,

raw2rgbpnm -f SGRBG10 -s 752x480 img-000000.bin img-000000.pnm

Configure pipeline to SENSOR -> CCDC -> PREVIEWER -> RESIZER

media-ctl -r
media-ctl -l '"mt9v034 3-005c":0->"OMAP3 ISP CCDC":0[1]'
media-ctl -l '"OMAP3 ISP CCDC":2->"OMAP3 ISP preview":0[1]'
media-ctl -l '"OMAP3 ISP preview":1->"OMAP3 ISP resizer":0[1]'
media-ctl -l '"OMAP3 ISP resizer":1->"OMAP3 ISP resizer output":0[1]'

media-ctl -f '"mt9v034 3-005c":0[SGRBG10 752x480]'
media-ctl -f  '"OMAP3 ISP CCDC":0 [SGRBG10 752x480]'
media-ctl -f  '"OMAP3 ISP CCDC":2 [SGRBG10 752x480]'
media-ctl -f  '"OMAP3 ISP preview":1 [UYVY 752x480]'
media-ctl -f  '"OMAP3 ISP resizer":1 [UYVY 752x480]'

Capture data with,

gst-launch v4l2src device=/dev/video8 ! ffmpegcolorspace ! fbdevsink

Notes

Pipeline for previewer

media-ctl -r
media-ctl -l '"mt9v034 3-005c":0->"OMAP3 ISP CCDC":0[1]'
media-ctl -l '"OMAP3 ISP CCDC":2->"OMAP3 ISP preview":0[1]'
media-ctl -l '"OMAP3 ISP preview":1->"OMAP3 ISP preview output":0[1]'
media-ctl -d /dev/media0 -f '"mt9v034 3-005c":0 [SGRBG10 752x480]'
media-ctl -d /dev/media0 -f '"mt9v034 3-005c":0 [SGRBG10 752x480]'
media-ctl -d /dev/media0 -f '"OMAP3 ISP CCDC":2 [SGRBG10 752x480]'
media-ctl -d /dev/media0 -f '"OMAP3 ISP preview":1 [UYVY 752x480]'

Pipeline for resizer

media-ctl -r
media-ctl -l '"mt9v034 3-005c":0->"OMAP3 ISP CCDC":0[1]'
media-ctl -l '"OMAP3 ISP CCDC":2->"OMAP3 ISP preview":0[1]'
media-ctl -l '"OMAP3 ISP preview":1->"OMAP3 ISP resizer":0[1]'
media-ctl -l '"OMAP3 ISP resizer":1->"OMAP3 ISP resizer output":0[1]'

media-ctl -f '"mt9v034 3-005c":0[SGRBG10 752x480]'
media-ctl -f  '"OMAP3 ISP CCDC":0 [SGRBG10 752x480]'
media-ctl -f  '"OMAP3 ISP CCDC":2 [SGRBG10 752x480]'
media-ctl -f  '"OMAP3 ISP preview":1 [UYVY 752x480]'
media-ctl -f  '"OMAP3 ISP resizer":1 [UYVY 752x480]'