ESP32 will not upload: "Failed to connect" and other errors
The most common beginner problem: the Arduino IDE compiles the sketch, but the upload fails. Here is a proven checklist. If your case is different, reply with the full error text.
"A fatal error occurred: Failed to connect to ESP32: No serial data received"
The board did not enter the bootloader.
- Hold BOOT, start the upload in the IDE and release BOOT when
Connecting....appears. - If that works every time, the board's auto-reset is weak. A 10 µF capacitor between EN and GND fixes it.
- Disconnect everything from GPIO0, GPIO2, GPIO12 and GPIO15 — these are strapping pins, and a pull in the wrong direction breaks boot. More in the ESP32 pinout article.
The port does not show up at all
- A charge-only cable is the number one cause. Try another, known data cable.
- Driver: CP2102 (Silicon Labs) or CH340 (WCH). macOS and Windows 11 usually have them; older systems need an install.
- On ESP32-C3 / S3 with native USB the port exists only while the firmware is alive. If the sketch hangs: hold BOOT, press RESET, release BOOT. See first steps with the ESP32-C3 SuperMini.
"Brownout detector was triggered" after flashing
Not enough power: a hub port, a long thin cable, or a servo or LED strip also running from 3.3 V. Power the load separately and connect the grounds.
The upload stops halfway
Lower the speed: Tools → Upload Speed → 115200.
If nothing helps, start a topic with the board name, your OS, the ESP32 core version (Tools → Board → Boards Manager) and the full upload log.
Sign in with Google to start topics and reply. Sign in with Google
Be kind, stay on topic, no ads and no piracy.