ArduCAM Library


This is a opensource library for taking high resolution still images and short video clip on Arduino based platforms using ArduCAM’s camera modules.
The camera breakout boards should work with ArduCAM shield before connecting to the Arduino boards.
ArduCAM mini series camera modules like Mini-2MP, Mini-5MP(Plus) can be connected to Arduino boards directly.
In addition to Arduino, the library can be ported to any hardware platforms as long as they have I2C and SPI interface based on this ArduCAM library.

Now Supported Cameras

  • OV7660 0.3MP

  • OV7670 0.3MP

  • OV7675 0.3MP

  • OV7725 0.3MP

  • MT9V111 0.3MP

  • MT9M112 1.3MP

  • MT9M001 1.3MP

  • MT9D111 2MP

  • OV2640 2MP JPEG

  • MT9T112 3MP

  • OV3640 3MP

  • OV5642 5MP JPEG

  • OV5640 5MP JPEG

Supported MCU Platform

Note: ArduCAM library for ESP8266 is maintained in another repository ESP8266 using a json board manager script.

Libraries Structure

The basic libraries are composed by two sub-libraries one is ArduCAM and the other is UTFT4ArduCAM_SPI. These two libraries should be copied right under the libraries of Arduino directory in order to be recognized by the Arduino IDE.
The ArduCAM library is the core library for ArduCAM shields. It contains supported image sensor drivers and user land API functions which issue capture or image data read commands .There is also an example directory inside the ArduCAM library which illustrates most function of the ArduCAM shields. The existing examples are plug and play without need to write a single line of code.
The UTFT4ArduCAM_SPI library is modified version of UTFT which is written by Henning Karlsen. We ported it to support ArduCAM shield with LCD screen. So the UTFT4ArduCAM_SPI library is only needed when using the ArduCAM-LF model.

How to use

The libraries should be configured before running any examples, or else you will get a compilation error message.

1. Edit memorysaver.h file

Open the memorysaver.h file in the ArduCAM folder and enable the hardware platform and camera module which matches to your hardware by comment or uncomment the macro definition in the file. For example, if you got a ArduCAM-Mini-2MP you should uncomment the line #define OV2640_MINI_2MP and comment all the other lines. And if you got a ArduCAM-Shield-V2 and a OV5642 camera module, you should uncomment the line #define ARDUCAM_SHIELD_V2 and the line #define OV5642_CAM then comment other lines.

2. Choose correct CS pin for your camera

Open one of the examples, wiring SPI and I2C interface especially CS pins to ArduCAM shield according to the examples. Hardware and software should be consistent to run the examples correctly.

3. Upload the examples

In the example folder there are seven sub directories for different ArduCAM models and the host application. The Mini folder is for ArduCAM-Mini-2MP and ArduCAM-Mini-5MP modules.
The Mini_5MP_Plus folder is for ArduCAM-Mini-5MP-Plus (OV5640/OV5642) modules.
The RevC folder is for ArduCAM-Shield-RevC or ArduCAM-Shield-RevC+ shields.
The Shield_V2 folder is for ArduCAM-Shield-V2 shield.
The host_app folder is host capture and display application for all of ArduCAM modules.
The RaspberryPi folder is examples used for Raspberry Pi platform, see more instruction.
The ESP8266 folder is for ArduCAM-ESP8266-UNO board examples for library compatibility. Please try repository ESP8266 using josn board manager script instead.
Selecting correct COM port and Arduino boards then upload the sketches.

Arducam MINI Camera Demo Tutorial for Arduino


Arducam Camera Shield V2 Demo Tutorial for Arduino


4. How To Connect Bluetooth Module

  • Using this demo
Alt text

5. How to download the Host V2 ?


Used by

SoC support

  • esp32

  • esp32c2

  • esp32c3

  • esp32s2

  • esp32s3

  • esp8266

  • host

  • rp2040