Espressif ESP32
ESP32-CAM (AI-Thinker) Pinout
The ESP32-CAM crams an ESP32-S, an OV2640 2 MP camera, and a microSD slot onto one tiny board. There's no USB-serial chip, so you need an FTDI adapter (or the dedicated programmer board) to flash it. Most GPIOs are taken by the camera and SD card — only a handful are free for sensors.
Specifications
- MCU
- ESP32-S (dual-core 240 MHz)
- PSRAM
- 4 MB (required for higher resolutions)
- Flash
- 4 MB
- Camera
- OV2640, up to 1600×1200
- Storage
- microSD up to 4 GB (FAT)
- Operating voltage
- 5V on 5V pin (regulator on board)
Pin reference
| Pin | Name | Type / functions | Notes |
|---|---|---|---|
| 5V | 5V input | Power | Use a clean 5V/1A+ supply — brownouts crash the camera. |
| 3V3 | 3.3V | Power | Can also feed 3.3V directly if 5V regulator is bypassed. |
| GND | Ground | Power | — |
| U0R | GPIO3 / RX0 | UART RX for flashing | — |
| U0T | GPIO1 / TX0 | UART TX for flashing | — |
| GPIO0 | GPIO0 | Flash mode | Tie to GND while powering up to enter flash mode. |
| GPIO2 | GPIO2 | Free I/O | Shared with SD_DATA0. Free only if SD is unused or in 1-bit mode. |
| GPIO4 | GPIO4 / FLASH LED | Onboard white flash LED | Bright! Use PWM or it will overheat. |
| GPIO12 | GPIO12 | Free I/O (with care) | Strapping pin — must be LOW at boot. |
| GPIO13 | GPIO13 | Free I/O | Shared with SD_DATA3. |
| GPIO14 | GPIO14 | Free I/O | Shared with SD_CLK. |
| GPIO15 | GPIO15 | Free I/O | Shared with SD_CMD. |
| GPIO16 | GPIO16 | Free I/O (input only on this board) | — |
Gotchas
- 01No USB. You need an FTDI/CP2102 adapter wired to U0R/U0T, with GPIO0 to GND for flashing.
- 02Power it from a real 5V/1A bench supply or USB-to-serial with a strong line — the camera browns out cheap regulators.
- 03Built-in flash LED on GPIO4 doubles as SD_DATA1 — it lights up faintly during SD writes.
- 04Use PSRAM-enabled builds (board variant 'AI-Thinker ESP32-CAM') for anything above 320×240.
Generate a wiring diagram
Describe your circuit and get a Mermaid diagram you can share.
Open diagram generator