Camera and Imaging - MIPI CSI

This section covers the MIPI CSI interfaces of the compute module. USB cameras are managed by the USB service layer.

There are two MIPI CSI interfaces on the compute module; the CSI camera modules are connected directly to the module as the CSI signals are not routed through the board to board connectors.

Note: Active cooling is required for all camera and image processing use cases.

An enclosure is available for the expansion board, cameras, and a fan.

Supported modules

Ref-OS-IoT includes native support for two camera modules, a 5MP imager on JCAM2 and a 13MP imager on JCAM1. Cameras are available from this retail distributor:

See the camera module FPC topic for guidance on creating new imaging assemblies; note NEW modules will need drivers written and ISP tuning data to function correctly.

See MIPI*-CSI signal group specifications for MIPI CSI connector pin out and MIPI*-CSI DC Specification for power limits.

Alternate Configurations

The default hardware configuration is to have the 13 Mpixel camera module attached to JCAM1 and the 5 MPixel camera module attached to JCAM2. If the opposite HW configuration is desired, the following changes must be done to the software:

  1. In the Ref-OS-IoT build environment, open the file meta-ref-os-iot/recipes-camera-adaptation/camera3hal/camera3hal.bbappend and un-comment the line that enables the camera HAL configuration for swapping the two cameras.
  2. Rebuild the Ref-OS-IoT image and flash it on the device.
  3. Flash BIOS version1J0 or higher on the device.
  4. During the early boot, enter the BIOS configuration menu and go to Device Manager -> System Setup -> System Component. In the Camera enabling section, configure JCAM1A to contain OV5670 and JCAM2C to contain IMX214. Leave JCAM1B and JCAM2D disabled. Press F4 to save the change.

Basic software suppport for attaching four ov5670 5 Mpixel cameras to the compute module, using special Y-cable flexes, can be enabled in a similar way:

  1. In the Ref-OS-IoT build environment, open the file meta-ref-os-iot/recipes-camera-adaptation/camera3hal/camera3hal.bbappend and un-comment the lines that enable the y-cable configuration.
  2. Rebuild the Ref-OS-IoT image and flash it on the device.
  3. Flash BIOS version 1J1_ycable or higher on the device. Please note that there are two BIOS binary images. Only the one marked to support the Y-cable will work.
  4. During the early boot, enter the BIOS configuration menu and go to Device Manager -> System Setup -> System Component. In the Camera enabling section, configure JCAM1A to contain OV5670, JCAM1B to contain OV5670, JCAM2C to contain OV5670 and JCAM2D to contain OV5670.
  5. Only 720p at 26 fps is currently supported for the four ov5670 camera configuration. An example Gstreamer preview command is:

gst-launch-1.0 icamerasrc device-name=0 io-mode=3 num-buffers=300 printfps=true ! video/x-raw,format=NV12,width=1280,height=720 ! vaapisink dmabuf-alloc-tiled=true icamerasrc device-name=1 io-mode=3 num-buffers=300 printfps=true ! video/x-raw,format=NV12,width=1280,height=720 ! vaapisink dmabuf-alloc-tiled=true icamerasrc device-name=2 io-mode=3 num-buffers=300 printfps=true ! video/x-raw,format=NV12,width=1280,height=720 ! vaapisink dmabuf-alloc-tiled=true icamerasrc device-name=3 io-mode=3 num-buffers=300 printfps=true ! video/x-raw,format=NV12,width=1280,height=720 ! vaapisink dmabuf-alloc-tiled=true

 

Libraries used

The camera software support is pulled in by the meta-intel-camera layer:

https://github.com/01org/meta-intel-camera.

Then it pulls in software components from the following projects:

https://github.com/01org/intel-camera-drivers

https://github.com/01org/icamerasrc

https://github.com/Intel-5xx-Camera

Subjects covered

These sections discuss Camera topics:

 

For more complete information about compiler optimizations, see our Optimization Notice.