← How-Tos
electronics Jul 3, 2026 ◑ 14 views ◯ 2 min read

ESP32-CAM Complete Setup Guide: Flashing, FTDI Wiring, First Boot

esp32 camesp32ftdiarduino ideov2640cameraflashinggetting started

What You Need

Wiring for Flashing

The ESP32-CAM has no onboard USB, so every session starts with wiring it to an FTDI adapter:

Without GPIO0 tied to GND at power-up, the board boots normally and won't accept new firmware.

Arduino IDE Setup

  1. Install the ESP32 board package: File > Preferences > Additional Board URLs > add https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json
  2. Tools > Board > ESP32 Arduino > AI Thinker ESP32-CAM
  3. Set Partition Scheme to "Huge APP (3MB No OTA/1MB SPIFFS)" if you're not doing OTA — this avoids sketch-too-big errors on camera projects
  4. Select the correct COM port for your FTDI adapter

First Flash: CameraWebServer Example

File > Examples > ESP32 > Camera > CameraWebServer. Uncomment the line for your board:

#define CAMERA_MODEL_AI_THINKER

Add your WiFi credentials in the ssid/password fields near the top, then hit Upload. Watch the console — when it says "Connecting....", press the small RST button on the board.

After Flashing: Boot to Run Mode

Disconnect GPIO0 from GND and power-cycle the board (or press RST). Open Serial Monitor at 115200 baud — you'll see it connect to WiFi and print an IP address. Open that IP in a browser to see the camera stream.

Common Problems

Next Steps

Once you have a stable stream, look at the companion guides for MJPEG/RTSP streaming into Home Assistant, motion-triggered snapshots, and on-device face detection.