1. Home
  2. Docs
  3. Camera breakout board
  4. 2MP MT9D111
  5. Software Guide

Software Guide


This page describle the basic control over the sensor registers using Arducam camera breakout board, it might not be able to cover all the detail register operations, but give you an insight how to adjust these settings.

Sensor I2C Slave Address

The MT9D111 camera I2C 8-bit slave address is fixed to 0x90. With 8bit regsiter address, and 16bit register value. And there are three register banks (pages), the Sensor Core Registers , IFP Registers Page1 and Page 2 registers. Using 0xF0 register to assign which bank or page to access.

In the Page0 (Sensor Core Register), there is product ID register 0x00 which can help diagnose if the I2C bus is accessable and determin the camera models.

Product ID RegisterValue

Sensor Initialization

You need a basic settings to bring up the sensor and make it working in normal streaming mode. Here is the sample config files for USB camera shield.

MT9D111Sample Config
800 x 600MT9D111_800x600_0x90.cfg
1600 x 1200MT9D111_1600x1200_0x90.cfg 

Context Switching

There are two context registers called context A and context B. Context A is used as higher frame rate preview settings which also support AEC/AWB and context B is used for capture which exposure time and white balance is fixed from the preview values. User can switch between these two settings without rewrite the full set of these two different settings.

Switch from Context A to Context B

REG = 0xF0, 0x0001
REG = 0xC6, 0xA120
REG = 0xC8, 0x02
REG = 0xC6, 0xA103
DELAY = 500
REG = 0xC8, 0x02 

Switch from Context B to Context A

REG = 0xF0, 0x0001
REG = 0xC6, 0xA120
REG = 0xC8, 0x00
REG = 0xC6, 0xA103
REG = 0xC8, 0x01 
Was this article helpful to you? Yes No 5