DART-MX8M Android Camera

From Variscite Wiki
DART-MX8M - Android Oreo Android O8.1.0_r14 - Camera

1 Overview

The DART-MX8M is capable of driving video input via MIPI CSI-2 cameras.

The CSI-2 Host Controller is a digital core that implements all protocol functions defined in the MIPI CSI-2 specification, providing an interface between the system and the MIPI D-PHY, allowing communication with an MIPI CSI-2 compliant camera sensor.
Key features include:

  • Module provides Two four-lane MIPI camera serial interfaces
  • MIPI D-PHY specification V1.2 (Board Approved)
  • Compliant to MIPI CSI2 Specification V1.3 except for C-PHY feature (Board Approved)
  • Support primary and secondary Image format
    • YUV420, YUV420 (Legacy), YUV420 (CSPS), YUV422 of 8-bits and 10-bits
    • RGB565, RGB666, RGB888
    • RAW6, RAW7, RAW8, RAW10, RAW12, RAW14
    • All of User defined Byte-based Data packet
  • Support up to 4 lanes of D-PHY, which operates up to a maximum bit rate of 1.5 Gbps/lane.
  • Interfaces
    • Compatible to PPI (Protocol-to-PHY Interface) in MIPI D-PHY Specification
    • AMBA3.0 APB Slave for Register configuration.
    • Image output data bus width: 32 bits
  • Image memory
    • Size of SRAM is 4KB
  • Pixel clock can be gated when no PPI data is coming


  • At present OV5640 supports only YUV 422 image format.


The DART-MX8M exposes two MIPI-CSI input ports of the SOC.
Refer to: https://www.variscite.com/wp-content/uploads/2018/03/DART-MX8M-datasheet.pdf for more details.

2 Hardware Availability and Setup

Connect the relevant camera accessories to the right connector.



3 Software Setup

Make sure you have the required hardware as per above.

3.1 MIPI Cameras

By default, MIPI cameras are supported out of the box.
Android System / Vendor images contain Camera HAL already support for OV5640 5MP support available.
You don't need to do any special build/addition below HAL if you are using the standard camera. Unless you wish to modify for your custom camera type,

  • For Android Oreo:

Source Path: <android_build>/vendor/nxp-opensource/imx/libcamera3/


  • Android 8.0 and above Camera2 APIs are standard.
  • Camera2 APIs are supported out of the box.
  • Legacy Camera1 APIs should also work.
  • Auto Focus, Manual Focus, Auto Exposure and Manual exposure are not supported at present.

3.2 UVC Camera Setup

Coming Soon..

4 Testing Camera

If the camera is connected/configured correctly. Once you click the Android Camera Application mentioned blow.

Imx8 Camera App.png

It will ask you for location , and storage permissions, click on allow and then click next. The camera preview should start, like below

Imx8 Camera Preview.png

Click on the Camera icon, it will take JPEG snapshot.

If you wish to record/video, click on the leftmost side of the preview screen you will see moving UI.
Imx8 Camera Recording opts.png

Click on Video Recording Button , it will record the video like below.
Imx8 Camera recording in progress.png


  • JPEG snapshot up to 5MP supported.
  • RAW / DNG format not implemented.

Video Recording:

  • Encoding upto 480@30fps (Software based)