The ESP32 DevKit is one of the most popular microcontroller boards for DIY electronics, IoT, and embedded projects. If you’re starting out with the ESP32 or want a detailed reference for its pins and features, this guide is for you! Here, we’ll break down the ESP32 DevKit pinout, technical specs, and practical tips so you can make the most of your board.
What is the ESP32 DevKit?
The ESP32 DevKit is built around the ESP32-WROOM-32 microcontroller—a powerful 32-bit dual-core chip with integrated Wi-Fi and Bluetooth 4.2. It’s designed for flexibility, featuring a wide range of GPIOs, analog and digital interfaces, and support for various communication protocols.
Key Specs
-
CPU: Dual-core Xtensa LX6, 160–240 MHz
-
RAM: 520 KB SRAM
-
Flash: 4–16 MB external (QSPI)
-
Wi-Fi: 2.4 GHz, 802.11 b/g/n
-
Bluetooth: v4.2 (Classic + BLE)
-
Operating Voltage: 3.3V (regulated from USB or VIN)
ESP32 DevKit Board Layout
Power & Basic Components
-
Micro USB Connector: Main power and programming interface.
-
LDO Voltage Regulator: Converts 5V USB/VIN to 3.3V for the ESP32.
-
Power LED (Red): Indicates board is powered.
-
User LED (Blue, GPIO2): Handy for testing and beginner projects.
-
EN (Enable) Button: Resets the board.
-
BOOT Button: Used for programming/flashing modes.
ESP32 DevKit Pinout Overview
Power Pins
-
VIN: 5V input (if not using USB)
-
3.3V: Regulated output for sensors/modules
-
GND: Ground
GPIO Pins
-
Total GPIOs: Up to 30 available (not all are equal!)
-
General Use: GPIO1, 3, 4, 12–19, 21–23, 25–27, 32, 33 are safe for digital I/O
Input-Only Pins
-
GPIO34, GPIO35, GPIO36, GPIO39: Input-only, no output or internal pull-up/pull-down. Use for sensors, not for driving LEDs or relays.
Pins to Avoid
-
GPIO6–11: Used for onboard SPI flash. Do not use for your projects.
Strapping Pins (Special Boot Functions)
-
GPIO0, GPIO2, GPIO4, GPIO5, GPIO12, GPIO15: These affect boot mode. Don’t connect devices that change their state at boot, or you may have trouble uploading code.
Analog & Special Function Pins
ADC (Analog to Digital Converter)
-
18 channels (12-bit):
-
ADC1: GPIO32–39 (use these for analogRead with Wi-Fi)
-
ADC2: GPIO0, 2, 4, 12–15, 25–27 (not available for analogRead when Wi-Fi is active)
-
DAC (Digital to Analog Converter)
-
GPIO25 (DAC1), GPIO26 (DAC2): 8-bit analog output.
PWM (Pulse Width Modulation)
-
16 channels: Any output-capable GPIO (except 34–39) can be used for PWM—great for LEDs and motors.
Touch Sensors
-
10 capacitive touch pins:
-
T0 (GPIO4), T1 (GPIO0), T2 (GPIO2), T3 (GPIO15), T4 (GPIO13), T5 (GPIO12), T6 (GPIO14), T7 (GPIO27), T8 (GPIO33), T9 (GPIO32)
-
RTC GPIOs
-
Some GPIOs are routed to the RTC subsystem for ultra-low-power wake-up (deep sleep).
Communication Interfaces
UART (Serial)
-
Up to 3 UARTs:
-
UART0: GPIO1 (TX), GPIO3 (RX) [default for programming]
-
UART2: GPIO17 (TX), GPIO16 (RX)
-
UART1: GPIO9, GPIO10 (avoid—used by SPI flash)
-
I2C
-
Default: GPIO21 (SDA), GPIO22 (SCL)
-
Can be reassigned to other output-capable GPIOs.
-
SPI
-
VSPI: MOSI (GPIO23), MISO (GPIO19), SCK (GPIO18), CS (GPIO5)
-
HSPI: MOSI (GPIO13), MISO (GPIO12), SCK (GPIO14), CS (GPIO15)
-
Note: GPIO6–11 are reserved for flash and should not be used.
Practical Tips & Warnings
-
Maximum current per GPIO: 40mA (absolute max; keep below 20mA for safety)
-
All GPIOs can be used for interrupts
-
Input-only pins: GPIO34–39 (no output, no pull-up/pull-down)
-
ADC2 pins: Not available for analogRead() when Wi-Fi is active—use ADC1 pins for analog sensors if Wi-Fi is needed.
-
Strapping pins: Avoid connecting devices that may interfere with boot mode.
-
Powering: Use VIN (5V) or 3.3V pin (with regulated supply). If using a battery, ensure enough current and stable voltage.
ESP32 DevKit Pinout Cheat Sheet
GPIO | Safe to Use? | Notes |
---|---|---|
0 | With caution | Strapping pin, must be LOW for flashing |
1 | TX0 | Serial output at boot |
2 | Yes | Onboard LED, strapping pin |
3 | RX0 | Serial input at boot |
4 | Yes | ADC2, touch, strapping pin |
5 | Yes | SPI CS, strapping pin |
6–11 | NO | Used by SPI flash, don’t use |
12 | With caution | Strapping pin, must be LOW at boot |
13–19 | Yes | General use, some are SPI/HSPI |
21–23 | Yes | I2C default (21=SDA, 22=SCL), SPI MOSI |
25–27 | Yes | ADC2, DAC, touch |
32–33 | Yes | ADC1, touch |
34–39 | Input only | No output, no pull-up/pull-down |
Conclusion
The ESP32 DevKit is a versatile, feature-packed board suitable for everything from simple sensor projects to advanced IoT applications. Understanding the pinout is key to unlocking its full potential and avoiding common pitfalls. Bookmark this guide and refer back whenever you’re wiring up a new project!