ESP32 board wiring being checked for safe GPIO pin selection

Free ESP32 tool

Check the GPIO before the project refuses to boot.

ESP32 pins are not all equal. Some are input-only, some affect boot, and some are connected to flash. Pick a pin and intended use to see whether it is safe, risky, or should be avoided.

ESP32 GPIO safety checker

Choose your GPIO and what you want to connect.

This checker is for common ESP32 development boards. Always compare with your exact board schematic before final PCB design.

Quick rules

ESP32 pin rules that prevent painful bugs.

Avoid GPIO6-GPIO11 On most ESP32 boards, these connect to flash memory. Do not use them for normal project wiring.
Input-only pins cannot drive loads GPIO34, GPIO35, GPIO36, and GPIO39 are input-only. Use them for inputs, not relays or LEDs.
Boot pins need care GPIO0, 2, 4, 5, 12, and 15 can affect boot if pulled to the wrong state by external circuits.

FAQ

ESP32 pin questions

Can I use GPIO34 for a relay?

No. GPIO34 is input-only. It cannot drive a relay, LED, PWM signal, or I2C line.

Why does ESP32 fail to boot after connecting a module?

The module may be pulling a boot strapping pin to the wrong level during reset. Check GPIO0, GPIO2, GPIO4, GPIO5, GPIO12, and GPIO15 first.

Are GPIO21 and GPIO22 required for I2C?

No, ESP32 can use many pins for I2C in code, but GPIO21 as SDA and GPIO22 as SCL are common defaults on many dev boards.