How to get started with ESP32-CAM (basic setup, common errors)
ESP32-CAM is awesome, but it's not a “plug it in and upload” board unless you buy a version with USB built in. The two things that matter most are power and upload wiring.
What you need
- ESP32-CAM board (AI Thinker style is common)
- USB-to-serial adapter (FTDI/CP2102/CH340)
- Solid 5V power (a weak USB port will cause resets and camera failures)
Wiring for upload (USB-to-serial)
- Adapter TX → ESP32-CAM U0R
- Adapter RX → ESP32-CAM U0T
- GND → GND
- 5V → 5V (use 5V pin; don't try to power the camera from 3.3V)
- GPIO0 → GND (only while uploading; this forces bootloader mode)
Common mistake
ESP32-CAM can pull real current when the camera starts. If your adapter can't provide enough 5V current, it will brown out and act “cursed.” Use a proper 5V source.
Upload steps (Arduino IDE)
- Install ESP32 board support in Arduino IDE.
- Select an ESP32-CAM board profile (often “AI Thinker ESP32-CAM”).
- Connect GPIO0 to GND.
- Click Upload.
- When it says “Connecting…”, tap RST (or power-cycle).
- After upload succeeds, disconnect GPIO0 from GND and reset to run.
Common errors and fixes
GPIO0 must be held low for upload mode, and you often need to tap reset when the IDE says “Connecting…”. Also double-check TX/RX are crossed and the correct port is selected.
Power is sagging. Use a stronger 5V supply, shorter wires, and consider adding a bulk capacitor near 5V/GND.
Usually power or the wrong board/camera config. Start with the stock camera web server example, make sure the ribbon cable is seated, and fix brownouts first.
ESP32-CAM problems are usually power or bootloader wiring. Use solid 5V, cross TX/RX, pull GPIO0 low for upload, and reset at “Connecting…”. Fix brownouts before chasing camera bugs.
Related: Failed to connect to ESP32 · Brownout detector reset · ESP32 board install issues