Quick Capture Interface

The Quick Capture Interface is a feature of the PXA270 processor, featured on the verdex Gumstix boards.

Drivers
Recently Video4Linux has included support for this interface on the PXA270. The linux-video mailing list indicates they're aiming at including the driver in Linux 2.6.26, and the code is in fact included in the 2.6.26-rc7 patch at http://www.kernel.org. At the time of writing (23 June 2008) development is actively under way, hosted on linuxtv.org and maintained by Guennadi Liakhovetski. Most of the implementation appears to be in these files:

"This driver provides an interface between platform-specific camera busses and camera devices. It should be used if the camera is connected not over a "proper" bus like PCI or USB, but over a special bus, like, for example, the Quick Capture interface on PXA270 SoCs. Later it should also be used for i.MX31 SoCs from Freescale. It can handle multiple cameras and / or multiple busses, which can be used, e.g., in stereo-vision applications."
 * soc_camera.c (Linus' tree).

"This patch adds a driver for the Quick Capture Interface on the PXA270. It is based on the original driver from Intel, but has been re-worked multiple times since then, now it also supports the V4L2 API. This patch depends on a complementary patch, submitted to the ARM tree, providing PXA270 camera platform bindings."
 * pxa_camera.c (Linus' tree).

"This driver supports Micron MT9M001 monochrome and colour cameras."
 * mt9m001.c (Linus' tree)

"This driver supports Micron MT9V022 colour camera."
 * mt9v022.c (Linus' tree)

NOTE: the camera sensor arm of Micron is now named Aptina.

Fun once the driver is working

 * EmbedCV
 * OpenCV

To connect a camera, you will need to...

 * 1) Build a camera board, perhaps with a board-mount lens.
 * 2) * The driver supports the following sensors (though new sensor drivers are relatively easy to implement):
 * 3) **Aptina mt9m001, 1280x1024, 30 fps.
 * 4) **Aptina mt9v022, 752x480 wide-VGA, 60 fps.
 * 5) **See this Aptina page for more packages.
 * 6) Build a small daugter-board holding a mating 120-pin connector.
 * 7) * We're interested in the 14 pins named CIF_* on the verdex board.
 * 8) Connect the camera board to this daughter board via flex, or the like, so you can position the camera separately from the gumstix.

This is most easily done by...
Perhaps there are pre-built digital sensors out there ready to be interfaced? Then we'd only need to interface with the 120-pin connector.
 * Triton-CAM 1.3MP, £75 based on OmniVision OV9653.
 * Triton-CAM 2MP version, £75 based on (?).
 * But must write a driver interface for these.
 * The Triton-CAM brochure says they can produce modules with Micron sensors though.

Resources
There are several mailing lists discussing the topic as of 1/24/08:
 * Linux Video, the main community that seems most focused on the development of this interface.
 * Gumstix-Users
 * "Linux Arm Kernel"

For fine details, see Section 27 "Quick Capture Interface" of the PXA270 developers manual which you can get from here.