This is a opensource library for taking high resolution still images and short video clip on Arduino based platforms using ArduCAM's camera moduels.
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.
- 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
- Theoretically support all Arduino families
- Arduino UNO R3 (Tested)
- Arduino MEGA2560 R3 (Tested)
- Arduino Leonardo R3 (Tested)
- Arduino Nano (Tested)
- Arduino DUE (Tested)
- Arduino Genuion 101 (Tested)
- Raspberry Pi (Tested)
- ESP8266-12 (Tested) (http://www.arducam.com/downloads/ESP8266_UNO/package_ArduCAM_index.json)
- Feather M0 (Tested with OV5642)
Note: ArduCAM library for ESP8266 is maintained with another repository ESP8266 using josn board manager script.
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.
The libraries should be configured before running any examples, or else you will get a compilation error message.
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.
Open one of the examples, wiring SPI and I2C interface especially CS pins to ArduCAM shield according to the examples. Hardware and software shuld be consistent to run the examples correctly.
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.
- Using this demo
https://github.com/ArduCAM/Arduino/blob/master/ArduCAM/examples/mini/ArduCAM_Mini_Video_Streaming_Bluetooth/ArduCAM_Mini_Video_Streaming_Bluetooth.ino