ArduCAM Shield Rev.C Now Released


With the great success of ArduCAM shield Rev.B, we received hundreds of comments and feedbacks from ArduCAM users. The ArduCAM team now released a more powerful ArduCAM shield Rev.C with past few months’ hard work. The new features list as follows:

  • Support camera modules: OV7660 OV7670 OV7675 OV7725 OV2640 OV3640 OV5642 MT9D111
  • Incorporating standard SPI slave interface
  • Reduced IOs consumption, only 4 IOs for SPI, 2 IOs for I2C and 1 IO for SD are required
  • All IOs are 5V and 3.3V tolerant
  • Support all Arduino families including Arduino DUE
  • Can be easily ported to any platforms which have SPI port like Raspberry Pi, BeagleBoard, BeagleBone, pcDuino and etc
  • Support 1080p still JPEG image capture
  • Provide low power mode, reduce power consumption and prolong battery life
  • Well mate with Arudino UNO R3, MEGA2560 R3, Leonardo R3 and DUE boards

SPI interface which is widely used in most micro-controllers and peripherals sensors. SPI is a synchronous serial data protocol used by microcontrollers for communicating with one or more peripheral devices quickly over short distances. With the advantage of SPI bus, the ArduCAM shield Rev.C reduced the IO consumption, achieve higher bus speed than the Rev.B. By using Arduino standard SPI and I2C pin out, the Rev.C can well mate with Arduino mainstream boards like UNO R3, Mega2560 R3 and DUE etc. A brief comparison between Rev.C and Rev.B :

Feature Rev.C Rev.B
IO consumption 7 19
Bus speed 8Mbps < 1MB/s
Low power mode Support Not support
Dedicate SPI/I2C interface Yes No

ArduCAM shield Rev.C not only work with Arduino boards, it now can be ported to any platform easily because it use standard SPI bus. We now are busy with Raspberry Pi and helix_4 porting. The helix_4 FPGA module is an efficient, low cost Altera FPGA System on Module designed to give design teams the best possible FPGA development experience, for more information please visit ArduCAM shield Rev.C also provide low power feature for battery powered device. When it is in idle, user can shut down the LCD back light OFF and disable FIFO and etc to reduce power consumption, and prolong battery.

ArduCAM – An Arduino Camera Shield

ArduCAM is Arduino based open source camera platform which is well mated to Arduino boards.  It now supports Arduino UNO board and we will add support Mega1280/2560 and new released Leonardo,  Maple and Chipkit are also in planning.




  • 3.2 inch TFT LCD Screen 320×240 resolution
  • Support various of camera modules
  • Support larger than 8GB SD/TF card read and write
  • FAT filesystem support
  • 320×240 RGB565/RGB555 BMP file format capture and playback
  • Trigger in and trigger out events ability
  • GPIO expansion support
  • Well mated with Arduino board

LCD Module

The TFT LCD is 3.2 inch QVGA ( 320×240 ) LCD, it use SSD1289 LCD controller and consists of up to 172,800 bytes (240 x 320 x 18 / 8) Graphic Display Data RAM (GDDRAM). It interfaces to Arduino with 8bit 8080 type bus interface. It is good to know that Henning Karlsen has already develop a open source library named UTFT for Arudino, it also support this LCD controller.

Camera Module

We will add support (already supported sensors are marked in red) to various of  camera module which use Omnivision and Aptina CMOS image sensor, something like

  • 0.3 Mega Pixel : OV7660, OV7670, OV7675, OV7725
  • 1.3 Mega Pixel : OV9650, OV9655, MT9M111, MT9M112, MT9M001
  •  2   Mega Pixel : OV2640, MT9D111, MT9D112
  •  3   Mega Pixel : OV3640, MT9T112
  •  5   Mega Pixel : OV5640, OV5642, MT9P111

MCU Platform

Two libraries are written for ArduCAM shield, one is UTFT library which is used for accessing the LCD screen, the other is ArduCAM library which supports different kind of camera modules registers configuration via I2C and accessing ArduChip internal control registers. ArduCAM library provide simple interface for sensor initialization, triggering a capture and read image data to external SD/TF card.


ArduCAM incorporate with a ArduChip, which used to do the DMA transfer between camera module and LCD internal GDDRAM, control the camera data stream timing and do the GPIO expansion.  When start the state machine will enter preview mode, the Chip DMA the camera data to LCD screen directly with frame rate upto 30fps. Once the capture button is pressed, the state machine will freeze the screen and enter capture mode,  the MCU will read the image data from LCD’s GDDRAM and save to SD/TF card.


Limitations ( The limitation is improved in the ArduCAM Rev.B and Rev.C)

We can’t live without the LCD screen because we use the LCD GRAM as a frame buffer. The image resolution is limited by the LCD screen, so  it only supports  QVGA(320×240) preview  resolution or equivalent 150KB size (around SXGA 1280×1024) JPEG image. It is OK for machine vision and small applications.

Due to the speed limitation of AVR series MCU, and all the Read and Write access to LCD GRAM is emulated by IO operation, saving a 320×240 RGB555 BMP into SD/TF card will take up 10 seconds and transmit the image over bluetooth needs 15 seconds. It is OK for the demostration,  but I do think it will be resolved when we move to more powerful MCU platform like Maple and Chipkit.