Aptina mt9v034 sensor V4L2 based linux driver
From IGEP - ISEE Wiki
Contents
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]'