# ESP32 will not boot with something attached: strapping pins explained

> Which ESP32 pins affect boot \(GPIO 0, 2, 5, 12 and 15 on the classic chip\) and how to avoid boot failures from wired modules.

Canonical: https://roboticsengineering.in/fix/esp32-strapping-pins-boot-problems/ | Published: 2026-11-03 | Updated: 2026-11-03

**On the classic ESP32, GPIO 0, 2, 5, 12 and 15 are read at reset to choose the boot mode and settings.** Things wired to them can stop it booting.

## What the message means

The chip samples these pins in the moment of reset. A module that pulls one to the wrong level changes the boot mode or the flash voltage.

## Fix it in this order

1. Avoid these pins for sensors and modules, or make sure the module does not pull them in the wrong direction at start.
2. GPIO 0 low at reset enters download mode. Do not hold it low in normal use.
3. GPIO 12 high at reset can set the wrong flash voltage on some modules. See the GPIO 12 page.
4. Disconnect the attached module and see if the board boots. Then connect it again after boot.
5. Check the datasheet for your exact chip, since other ESP32 models have different strapping pins.

## If you see this, do this

| You see | Do this |
| --- | --- |
| Boots with the module unplugged only | Strapping pin conflict. |
| Stuck in download mode | GPIO 0 held low. |

## Related

[GPIO 12 boot fail](https://roboticsengineering.in/fix/esp32-gpio-12-boot-fail-flash-voltage/), [wrong boot mode](https://roboticsengineering.in/fix/esp32-wrong-boot-mode-waiting-for-download/), [ESP32 pinout](https://roboticsengineering.in/esp32-pinout-for-robotics/).

Last reviewed: November 2026. These are the usual causes and the order that finds them fastest. Test on your own board; clones and cables differ.
