ESP32-CAM AI-Thinker Board - All about GPIO Pins (original) (raw)

This tutorial is a guide to AI thinker ESP32-CAM development board. We will discuss pinout, features, and specifications and see how to get started with ESP32- CAM development board.

ESP32-CAM AI-Thinker Introduction

The world has been revolving around IoTs i.e., Internet of Things for quite a while now. From the hobbyists to the innovators, everyone is interested in Smart technology, designing different prototypes and products, and launching them in the market. ESP32 Series chips are one of the popular intelligent modules for IoTs. ESP32-CAM AI-Thinker is the advanced version of ESP8266-01 launched by Espressif with many features. The ultra-small, low-power module comes with two high-performance 32-bit LX6 CPUs with a 7-stage pipeline architecture.

Peripherals

ESP32-CAM has integrated with Wi-Fi, Bluetooth and can be used with OV2640 or OV7670 cameras. The ESP32 IC has high-resolution ADCs, SPI, I2C, and UART protocols for information communication. The module has an inbuilt Hall sensor, temperature sensor, and touch sensors, and watchdog timers. RTC can be operated in different modes. The module has a maximum clock frequency of 160 MHz that means the computing power up to 600 DMPIS. Furthermore, it is quite durable and reliable when it comes to internet connectivity.

Applications

ESP32-CAM AI-Thinker module has a never-ending list of applications like home automation, intelligent devices, positioning systems, security systems and perfect for IoT applications.

ESP32-CAM AI-Thinker Components

This development board is a 27*40.5*4.5 DIP style PCB Board. The following figure shows the components of the ESP32-CAM board from both top and bottom side.

AI thinker ESP32 components

ESP32-CAM AI-Thinker module consists of different parts. These areas described below:

ESP32-S Chip: The module is a main chip contains two high-performance 32-bit LX6 CPUs with a 7-stage pipeline architecture and used for all the processing and functioning.

IPEX block output: The printed IPEX connects GSM antennas to transmit signals.

Tantalum capacitor: The tantalum capacitor is majorly used on small size modules. They are durable and provide power supply filtering for fine signal quantity.

Reset button: When pressed, the reset button restarts the code executed on the module.

Voltage regulator chip: The voltage regulator chip on the module maintains the output voltage despite the fluctuations in the input supply. It regulates the voltage to 3.3 volts.

PSRAM: A low-power Pseudo-Random Access Memory of 4MB is incorporated in the module for fast processing of the instructions. It helps the camera to run smoothly.

TF Card Holder: ESP32 series are embedded with a micro-SD card holder to store the data. All the transmission takes place through the Serial Peripheral Interface.

FPC connector: To mount the camera, the ESP32 module contains a flexible printed circuit connector. Their fine pitch is responsible for signal reliability.

Flash Light: The flash lamp produces electric pulses which work as a flash for the camera so that it can capture clear images.

Schematic Diagram

ESP32 CAM AI thinker schematic diagram

Image Credit

The following diagram shows the pinout of the ESP32-CAM AI-Thinker Module:

ESP32 CAM Pinout AI thinker

This section describes the pinout of the ESP32-CAM AI-Thinker Module. The ESP32-S chip has a total of 34 pins but only 16 pins are exposed to the pinout headers.

Power pins

The module has three ground pins and two positive power supply pins such as 5V and 3.3V pins. These pins can be used to power the ESP32-CAM AI-Thinker module. But it is recommended not to power this development bord with 3.3V pin, it does not provide stable power to board.

ESP32 CAM power supply pins

Power Output Pin

ESP32-CAM also provide one power output pin as shown in yellow color in the pinout diagram above. This is a VCC pin that can output either 5V or 3.3V. According to Jumper connection on ESP32-CAM, VCC pin provides 3.3V output.

GPIO33 – Built-in Red LED

AI-Thinker board also has one onboard RED LED. You can find this LED next to the reset button. This built-in red LED is connected with GPIO 33 in logic low active state. That means if we want to turn on LED, we drive GPIO 33 to logic low level. Similarly, to turn off LED, we drive GPIO 33 to active high state.

ESP32 CAM built-in LED

UART pins

Almost all the GPIO pins of ESP32-CAM are multi-purpose pins. GPIO1 and GPIO3 has alternate functions for the serial transmission and reception of the data for UART port, respectively. AI-Thinker board does not come with onboard programmer. Therefore, these UART pins are used to program and communicate with the PC to upload the code.

Pin Name Function
GPIO1 U0TXD (UART Transmission pin)
GPIO3 UORXD (UART Reception pin)

We can use an FTDI cable to flash code to ESP32-CAM by using UART pins. You can read this article on how to use USB to serial FTDI cable:

GPIO0 pin – Flash Mode Selection

This pin determines the mode of the module such as flash or normal mode. In flashing mode, GPIO0 is pulled low which means it should be connected to the ground. When GPIO0 is connected to ground, ESP32-CAM goes into flashing mode and we can flash the code. After flashing the code to board, we should disconnect the GPIO0 from the ground to run the module normally or we say it enters the normal mode.

SD Card pins

As discussed in the previous section, ES32-CAM board has built-in SD card connector which can used to connect an SD card. These GPIO pins use for connections with micro SD cards while reading and writing data to SD card. These GPIO pins can be used as typical I/O pins if the SD card is not in use.

Pin Name SD Card Connection
GPIO2 Data0 pin(RTC & ADC supported)
GPIO4/Flash lamp Data1 pin(RTC & ADC supported)
GPIO12 Data2 pin(RTC & ADC supported)
GPIO13 Data3 pin(RTC & ADC supported)
GPIO14 CLK(RTC & ADC supported)
GPIO15 CMD(RTC & ADC supported)

Note: If you are not using SD card in your ESP32-CAM project, you can use these GPIO pins for other functions such as digital input, digital output, ADC, and RTC.

You can find more features of these pins in the following article:

Flash LED pin

ESP32-CAM also has built-in high brightness flashlight. This flashlight can be used with a Camera while taking picture in darkness. GPIO4 is connected to an embedded flash lamp which (if programmed so) flashes when the camera captures the pictures. GPIO4 is also connected to the SD card, so it might cause difficulty accessing both at the same time. That means flashlight may glow unwanted while using SD card.

ESP32 CAM Flash light

If you want to stop the flashlight from lighting up when using SD card, you can instruct the program to do not use GPIO4 as a data line for SD card by using this line:

SD_MMC.begin("/sdcard", true)

Camera Connector Pins

The following table lists the GPIO pins connections with OV2640 Camera and their respective variable names that we will use in our program.

OV2640 CAMERA ESP32 Variable name in code
D0 GPIO5 Y2_GPIO_NUM
D1 GPIO18 Y3_GPIO_NUM
D2 GPIO19 Y4_GPIO_NUM
D3 GPIO21 Y5_GPIO_NUM
D4 GPIO36 Y6_GPIO_NUM
D5 GPIO39 Y7_GPIO_NUM
D6 GPIO34 Y8_GPIO_NUM
D7 GPIO35 Y9_GPIO_NUM
XCLK GPIO0 XCLK_GPIO_NUM
PCLK GPIO22 PCLK_GPIO_NUM
VSYNC GPIO25 VSYNC_GPIO_NUM
HREF GPIO23 HREF_GPIO_NUM
SDA GPIO 26 SIOD_GPIO_NUM
SCL GPIO 27 SIOC_GPIO_NUM
POWER PIN GPIO 32 PWDN_GPIO_NUM

ESP32-CAM Features and Specifications

The technical details and specifications of this extremely handy module are listed below:

Feature Availability
Module ESP32-CAM AI-Thinker
Processor 32-bit LX6
Architecture 7-stage pipeline
SPI Flash 32-bit
SRAM 520 KB
PSRAM 4MB
Operating Temperature -200C – 850C
Operating Voltage 5 Volts
UART 1
UART Baud Rate 115200 bps
SPI Yes
I2C Yes
PWM Yes
Wi-fi 802.11 b/g/n
Power Transmission 802.11 b: 17±2 dBm at 11Mbps 802.11 g: 14±2 dBm at 54Mbps 802.11 n: 13±2 dBm at MCS7
Bluetooth Bluetooth 4.2 BR/EDR with BLE standards
Support TF Card 4G Maximum Support
Security WPA/WPA2/WPA2-Enterprise/WPS
Output Image Format BMP, GRAYSCALE, JPEG(OV2640 support only)
Spectrum Range 2412 MHz – 2484 MHz
On Board PCB Antenna Gain 2dBi
Input/Output port 9
Reception 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 Turn off the flash: 180mA at 5V Turn on the flash with maximum brightness: 310mA at 5V Deep-sleep mode: the lowest power consumption can reach 6mA@5V Modem-sleep mode: < 20mA at 5V Light-sleep mode: <6.7mA at 5V
Clock Frequency 240 MHz (max)
Package Type DIP-16
Package Size 27*40.5*4.5(±0.2)mm

Detailed Features

Some the additional prominent features of this amazing module are described as under:

How to program ESP32-CAM AI-Thinker?

Unlike an ESP32 dev kit or other ESP32 development boards, the ESP32-CAM AI-Thinker board does not have any built-in programmer to burn the code to the ESP32-S chip. Therefore, to upload the code, we must use an external USB to UART Converter or an FTDI Programmer.

The following diagram shows the connection between ESP32-CAM and an FTDI cable. We use UART pins of ESP32-CAM to connect with an FTDI cable.

ESP32 CAM connections with FTDI cable

ESP32-CAM FTDI Cable
GND GND
5V VCC (5V)
U0RX/GPIO3 TX
U0TX/GPIO1 RX
GPIO0 GND

In next tutorial, we will see how to install ESP32-CAM add-on in Arduino IDE and how to upload sample example code to AI-Thinker board using FTDI cable.

In Summary, in this tutorial, we learned the following:

In the coming tutorial, we will see how to create a web server with ESP32-CAM with live video streaming.

Related ESP32 Tutorials: