ESP32-CAM: Machine Vision Tips, Camera Guides and Projects
ESP32-CAM: Specification, Pinout and User Guide
|SPI Flash||Default 32Mbit|
|RAM||520KB SRAM +4M PSRAM|
|Bluetooth||Bluetooth 4.2 BR/EDR and BLE standards|
|Support TF card||Maximum support 4G|
|UART Baudrate||Default 115200 bps|
|Image Output Format||JPEG( OV2640 support only ), BMP, GRAYSCALE|
|Spectrum Range||2412 ~2484MHz|
|Antenna||Onboard PCB antenna, gain 2dBi|
|Transmit Power||802.11b: 17±2 dBm (@11Mbps)|
802.11g: 14±2 dBm (@54Mbps)
802.11n: 13±2 dBm (@MCS7)
|Receiving Sensitivity||CCK, 1 Mbps: -90dBm|
CCK, 11 Mbps: -85dBm
6 Mbps (1/2 BPSK): -88dBm
54 Mbps (3/4 64-QAM): -70dBm
MCS7 (65 Mbps, 72.2 Mbps): -67dBm
|Power Dissipation||Deep-sleep: [email protected]|
Moderm-sleep: [email protected]
Light-sleep: [email protected]
|Power Supply Range||5V|
|Operating Temperature||-20 °C ~ 85 °C|
|Storage Environment||-40 °C ~ 90 °C, < 90%RH|
Quick sum-up about the ESP32-CAM:
- The board is powered by an ESP32-S SoC from Espressif, a powerful, programmable MCU with out-of-the-box WIFI and Bluetooth.
- It’s the cheapest (around $7) ESP32 dev board that offers an onboard camera module, MicroSD card support, and 4MB PSRAM at the same time.
- Adding an external wifi antenna for signal boosting requires extra soldering work.
- The board does not have a conventional USB port, you will have to use either an FTDI programmer, or an add-on HAT, or an Arduino UNO along with the Arduino IDE/ESP-IDF DEV tools to upload codes to it.
- Being a low-cost board in a small enough form factor has made it extremely popular for many IoT and machine vision applications.
- The outdated spec sheet and many tutorial pages say that the ESP32-CAM only supports two camera modules (OV2640 & OV7670), while in fact you can use many cameras with it, simply scroll down for more details.
Getting Started with ESP32-CAM (Full Guide)
First time using ESP32-CAM? DroneBotWorkshop has a good tutorial you can follow.
Top 4 problems developers have with the ESP32-CAM
Maximum SD Card Size Supported
The datasheet states that the ESP32-CAM can support up to 4GB, but a fellow Redditor have tried a 64GB card and it worked pretty well.
Local Image Classification
Using the latest TinyML models, the ESP-32 CAM is capable of doing on-device machine learning tasks like image classification, person detection, etc. Check the tutorials section for more details.
Capturing RAW Images at Maximum Resolution
The OV2640 sensor itself supports RAW data format, and since it’s also got a whopping 4MB external PSRAM, getting uncompressed images at a 1600 x 1200 resolution is totally eligible as long as the camera is properly configured.
5V or 3.3V Input
ESP-32 CAM has two input power pins, and by default, the board takes 3.3V, chances are that if you try to use the OV2640 under 3.3V, the board can become unstable with errors or images having colored lines. 5V input is recommended.
The onboard camera (OV2640) Variants: Fisheye, Night Vision, Extension Cable, etc.
Although the ESP32-CAM can be a good bargain and has big potential for IoT-related projects, it’s not a perfect board, especially on the camera part, the 2MP OV2640 camera that comes with it has quite some limitations.
Narrow field of view: The lens on the stock module only provides a 65-degree FoV, which is far less than what we actually need for home/desk bench/etc. monitoring projects.
Short Cable Length: The ribbon of the stock camera is just way too short to let anyone change the orientation of the camera without rotating the board.
Inability for Night Vision: If you want to use IR LEDs with the camera together for low light or night vision projects, there’s no other way but to manually unglue/unscrew the lens and remove the IR-blocking filter from the bottom. Doing so will also put you at risk of damaging the lens or getting dust on the surface of the image sensor.
For the ESP32-CAM, Arducam decides to tackle these problems with three infallible solutions.
OV2640 Module w/ Multiple Lens Options
The Arducam wide-angle OV2640 camera series is a perfect supplement for projects that need to have the ESP32-CAM in much wider FoVs.
|OV2640 Version||Available FoV|
|Arducam OV2640 Camera||100°/120°/140°/170°|
Various Cable Lengths
For ease of project development, we also have the OV2640 camera in many different cable lengths.
|Stock Camera||21 mm|
|Arducam OV2640 Camera||40/60/100/189 mm|
NoIR OV2640 Modules
And to save the trouble of manual removal, OV2640 cameras manufactured without the IR-Cut filter can also make the ESP32-CAM a more flexible MCU for the maker community.
|Stock Camera||No, Visible Light Only|
|Arducam OV2640 Camera||Yes, Visible Light/Infrared|
Multiple Cameras with one ESP32-CAM Board
Two years ago we designed a board with the same ESP32-S module and managed to have our multi-camera adapter board work with it to successfully put four OV2640 cameras on it. That same quad-camera setup can work with the ESP32-CAM as well.
Learn more about it here:
Introducing Arducam IoTai – The Ultimate IoT (Internet of Things) Board with Camera Support, Based on ESP32 and in the Shape of Arduino UNO
IoT Platform with ESP32 If you are interested in maker boards and IoT projects, you must have heard of ESP platforms such as the ESP-32 series. Considering the Wifi and Bluetooth features integrated, it is Read more…
ESP32-CAM: Compatible Camera List
Aside from the two officially supported cameras, the Espressif’s camera repository offers driver support for a total of 9 image sensors that are compatible with the ESP32-CAM, yet with Arducam’s solutions, you can use it or any ESP32 based dev board with dozens of camera modules!
Here’s a complete list of cameras you can use with the ESP32-CAM:
|OV2640||2MP, 1600 x 1200||1/4″|
|OV3640||3MP, 2048 x 1536||1/4″|
|OV3660||3MP, 2048 x 1536||1/5″|
|OV5640||5MP, 2592 x 1944||1/4″|
|OV7670||0.3MP, 640 x 480||1/6″|
0.3MP, 640 x 480
|NT99141||1MP, 1280 x 720||1/4″|
|GC032A||0.3MP, 640 x 480||1/10″|
|GC0308||0.3MP, 640 x 480||1/6.5″|
|GC2145||2MP, 1600 x 1200||1/5″|
Machine Vision/Learning on ESP32-CAM: Resources and Tutorials
Tiny Machine Learning Resources for ESP32-CAM
ESP32-CAM Machine Learning/Vision Tutorials
Kishor S · April 3, 2022 at 1:07 pm
I have one doubt, if the camera shows things . On on perticular things performing a task can be done pr not.??
For example : if camera shows this is a apple then servo connected to different digital pin should perform of if it shows pine apple then another differnt servo must perfor. Is this process can be possible or not?
Dave · November 12, 2022 at 1:25 am
Yes you can do that.