ESP32 pinout explained in a simple, beginner-friendly way. Learn ESP32 pin functions, pin definitions, safe pins to use, and complete ESP32 S3 pinout guide.
If you’ve ever held an ESP32 board in your hand and wondered what each tiny pin actually does, you’re not alone. The ESP32 is powerful, flexible, and insanely popular in IoT projects — but the pinout can look confusing at first glance. The goal of this guide is simple: to give you the clearest, simplest, and most complete ESP32 pinout explained article on the internet.
Whether you’re using a classic ESP32-WROOM-32 module, an ESP-32S board, an ESP32 DevKit, the newer ESP32-S3, or even breakout boards from Espressif or Adafruit, this guide walks you through each feature in a human, beginner-friendly way.
By the end, you’ll know:
- What each pin does
- Which ESP32 pins to use (and which to avoid)
- Which pins are safe for input and output
- Which pins are 5V tolerant
- How the ESP32 pin functions expand beyond just digital I/O
- How the ESP32 pin definition and hardware capabilities work internally
Grab some coffee — let’s decode this board like friends geeking out together.
The ESP32 Pinout Explained: A Quick Overview
The ESP32 isn’t like the old-school microcontrollers with simple GPIO pins. It’s more like a multitool. Many pins serve multiple purposes — meaning the same pin can act as a GPIO, an ADC input, a touch sensor, or a hardware peripheral, depending on how you configure it.
This flexibility makes it powerful — but also a bit overwhelming.
When we talk about the ESP32 pinout explained, we include:
- GPIO pins
- ADC (analog-to-digital) inputs
- DAC outputs
- Touch sensor pins
- UART / I2C / SPI pins
- PWM pins
- Strapping pins
- Power pins (3.3V, GND, EN, etc.)
- Special-function pins
Every ESP32 board — whether ESP32 DevKit by Espressif, ESP32-S3 modules, or ESP32 pinout Adafruit versions — follows the same fundamental pin design, with small differences in layout.
ESP32 Pin Functions (Explained Like You’re New to Microcontrollers)
Each pin on the ESP32 has primary and secondary functions.
Primary Functions (Basic Use)
These are what most beginners use:
- Digital Input
- Digital Output
- PWM Output
- Built-in pull-up/pull-down
- Capacitive touch input (some pins)
Secondary (Advanced) Functions
These depend on the internal hardware:
- ADC (12-bit analog input)
- DAC (analog voltage output)
- SPI (communication interface)
- I2C
- UART
- CAN
- Ethernet RMII
- SD card interface
- Strapping boot pins
When reading any ESP32 pin description, keep in mind that most pins are “multiplexed,” meaning you choose what role each pin plays through software.
ESP32 Power Pins Explained
Before jumping into GPIOs, let’s understand the power pins:
| Pin | Use |
|---|---|
| 3.3V | Powers sensors and modules (max ~500mA depending on board) |
| GND | Common ground |
| 5V | Used when powering board via USB or external 5V supply |
| EN (Enable) | Active-high reset pin |
A common beginner question:
Are ESP32 pins 5V tolerant?
Short answer: No.
Long answer:
Most ESP32 pins are not 5V tolerant. Feeding 5V into GPIO pins can permanently damage the board unless the design includes onboard level shifting (rare).
If you see “ESP32 pins 5V tolerant” anywhere, be careful — that usually refers to boards with built-in regulators or shields, not the raw chip.
ESP32 GPIO Pins: Full Pin Guide
When people search for an ESP32 pin guide, this is usually what they want: a breakdown of which pins you can safely use.
Let’s categorize the GPIOs into simple groups.
Safe GPIO Pins for Beginners (Use Freely)
These pins are the most stable and safe for general use:
GPIO 1, 3, 4, 5, 12, 13, 14, 15, 16, 17, 18, 19, 21, 22, 23, 25, 26, 27, 32, 33
They work well for:
- LEDs
- Buttons
- Relays (through a transistor)
- Sensors
- Communication devices
If you’re not sure which ESP32 pins to use, or you want a beginner-friendly introduction before diving deeper into the pinout, check this simple guide:
What is ESP32? Explained for Beginners
This gives you a solid foundation before exploring advanced ESP32 pin functions and configurations.
Pins You Should Avoid Unless You Know What You’re Doing
Certain pins behave unexpectedly during boot.
Boot/Strapping Pins
These pins affect startup mode:
| Pin | Reason to Avoid |
|---|---|
| GPIO 0 | Boot mode selector |
| GPIO 2 | Boot mode, internal pull-down |
| GPIO 12 | Touchy — affects voltage regulator mode |
| GPIO 15 | Boot strapping logic |
You can use them, but only if your circuit doesn’t pull them high/low at boot.
Input-Only Pins (Do Not Use for Output)
Some pins cannot output signals:
- GPIO 34
- GPIO 35
- GPIO 36
- GPIO 39
Useful for sensors and ADCs.
ESP32 ADC Pins (Analog Inputs)
The ESP32’s ADC is powerful but quirky. Two groups:
ADC1 Pins (Safe, no WiFi interference)
- GPIO 32–39
Great for precise sensor readings.
ADC2 Pins (Shared with WiFi)
- GPIO 0, 2, 4, 12–15, 25–27
When WiFi is active, ADC2 becomes unreliable.
If your project needs analog input and WiFi, stick to ADC1 pins only.
ESP32 DAC Pins
Only two pins support true analog output:
- GPIO 25 → DAC1
- GPIO 26 → DAC2
Beginners often miss this. If you want to generate audio tones or analog voltages, these are your guys.
ESP32 Touch Sensor Pins
The ESP32 supports touch sensing (capacitive). These pins double as GPIO:
| Pin | Touch Channel |
|---|---|
| GPIO 4 | T0 |
| GPIO 0 | T1 |
| GPIO 2 | T2 |
| GPIO 15 | T3 |
| GPIO 13 | T4 |
| GPIO 12 | T5 |
| GPIO 14 | T6 |
| GPIO 27 | T7 |
| GPIO 33 | T8 |
| GPIO 32 | T9 |
Touch sensing is great for creating touch buttons without mechanical parts.
ESP32 UART Pins
The ESP32 supports multiple UART ports.
Default UART0 (USB programming)
- GPIO 1 (TX)
- GPIO 3 (RX)
Don’t use these for external devices unless you remap UART.
Recommended UART pins
- GPIO 16, 17 (UART2)
- GPIO 9, 10 (UART1 depending on board)
ESP32’s flexible pin mapping lets you move UART anywhere using Serial.begin() and Serial.swap().
ESP32 I2C Pins
I2C pins are fully remappable, but the defaults are:
- GPIO 22 → SCL
- GPIO 21 → SDA
Most tutorials and libraries assume these defaults.
ESP32 SPI Pins
Default VSPI:
- GPIO 18 → SCK
- GPIO 19 → MISO
- GPIO 23 → MOSI
- GPIO 5 → CS
Default HSPI:
- GPIO 14 → SCK
- GPIO 12 → MISO
- GPIO 13 → MOSI
- GPIO 15 → CS
You can remap these, but hardware defaults are fastest and most stable.
Special Pins: EN, BOOT, Sensor VP/VN
Let’s clear confusion around these:
EN pin (Enable)
Resets the board when pulled low.
BOOT / GPIO 0
Used to enter flashing mode. Avoid pulling this pin during boot.
Sensor VP (GPIO 36) & VN (GPIO 39)
Dedicated high-quality ADC pins, input-only.
ESP32 Pin Definition (How the Chip Actually Sees Pins)
Behind the scenes, the ESP32 uses a matrix called IO-Mux.
This means:
- Any pin can perform almost any function
- Actual function is decided in software
- This is why libraries can “reroute” I2C, SPI, and UART
When you read an ESP32 pin definition in the datasheet, you are essentially reading the pin’s “default mapping.” But you’re not locked to it.
This also explains why so many guides — including ** ESP32 pinout Espressif**, ESP32 pinout Adafruit, and various ESP-32S pinout diagrams — look slightly different but still valid.
ESP32-S3 Pinout Explained (Newer Variant)
Since one of your secondary keywords is esp32 s3 pinout explained, here’s a clear breakdown.
What’s new in ESP32-S3?
- More GPIO pins
- USB-OTG support
- More I/O flexibility
- Better camera interface
- Improved ADC stability
Pinout differences
- GPIO pins go up to 48
- More dedicated pins for LCD/Camera
- Input-only pins remain (like traditional ESP32)
If you need AI-oriented or camera projects, ESP32-S3 is the best upgrade.
Which ESP32 Pins to Use?
If you want a “safe zone” for all your projects, use these:
GPIO 4, 5, 12–19, 21–23, 25–27, 32, 33
Avoid these unless you understand boot logic:
GPIO 0, 2, 12, 15
Do NOT use these for output:
GPIO 34–39
ESP-32S Pinout (Generic Chinese Board Variant)
The ESP-32S pinout is almost identical to the ESP32-WROOM-32 module, but the board layout varies slightly.
Key things to remember:
- Pins still follow the same ESP32 pin functions
- Power and ground locations may change
- Labeling is sometimes inconsistent, so double-check diagrams
How to Read Any ESP32 Pin Diagram (Including Espressif & Adafruit)
Whether you’re looking at:
- ESP32 pinout Espressif (official)
- ESP32 pinout Adafruit
- ESP-32S pinout from generic boards
Always identify three things:
- Boot pins
- Input-only pins
- ADC1 vs ADC2
Once you can spot these, you can work confidently with any ESP32 board.
Example ESP32 Projects Using Different Pin Functions
Just to build your confidence, here are some beginner-friendly ideas:
1. Touch-enabled lamp (uses touch pins + PWM)
- GPIO 4 (touch input)
- GPIO 16 (PWM output)
2. WiFi + Analog Sensor (use ADC1 only)
- GPIO 32 (analog input)
3. Motor control (PWM)
- GPIO 14, 15 for motor driver
4. Custom UART device
- GPIO 16 (RX)
- GPIO 17 (TX)
5. DAC music player
- GPIO 25 (DAC1)
- GPIO 26 (DAC2)
Common Beginner Mistakes (and How to Avoid Them)
Let’s save you hours of debugging.
Mistake 1: Using ADC2 pins with WiFi ON
Solution: Use GPIO 32–39 (ADC1).
Mistake 2: Driving relays directly from pins
Use a transistor or relay module.
Mistake 3: Feeding 5V into GPIO pins
ESP32 pins are NOT 5V tolerant.
Mistake 4: Using boot pins incorrectly
Avoid GPIO 0, 2, 12, 15 for critical functions.
ESP32 Pinout Summary Table
Here is a clean, beginner-friendly summary.
| Type | Pins |
|---|---|
| Safe GPIO | 4, 5, 12–19, 21–23, 25–27, 32, 33 |
| Input-only | 34, 35, 36, 39 |
| Boot pins | 0, 2, 12, 15 |
| ADC1 pins | 32–39 |
| ADC2 pins | 0, 2, 4, 12–15, 25–27 |
| DAC pins | 25, 26 |
| Touch pins | 0, 2, 4, 12–15, 27, 32, 33 |
| UART | 1, 3, 9, 10, 16, 17 |
| I2C | 21 (SDA), 22 (SCL) |
| SPI | 5, 18, 19, 23 |
Final Thoughts – ESP32 Pinout Explained Simply
If you’ve read everything up to this point, you now understand the ESP32’s pins much better than most beginners.
You’ve gone through:
- ESP32 pin functions
- ESP32 pin definition and how multiplexing works
- Which ESP32 pins to use safely
- ESP32 ADC, DAC, UART, SPI, and touch pins
- ESP-32S pinout and ESP32-S3 pinout explained
- Power pins and 5V tolerance
- How to read diagrams from Espressif and Adafruit
You now have the most complete ESP32 pinout explained article — written clearly, without jargon, in a way that actually makes sense.
Whether you’re building your first home automation project, a wearable gadget, a robot, or a sensor network, this guide gives you the foundation you need.
FAQ : ESP32 Pinout Explained
1. What does ESP32 pinout explained actually mean?
When people search for esp32 pinout explained, they want a simple breakdown of what each ESP32 pin can do — digital I/O, analog input, ADC, DAC, touch sensing, UART, I2C, SPI, and boot/strapping functions.
Instead of getting lost in a complicated datasheet, this guide gives a beginner-friendly, practical explanation of every ESP32 pin and how to use it safely in real projects.
2. Which ESP32 pins should beginners use first?
If you’re new to the ESP32, start with safe and stable pins that don’t interfere with boot mode.
The best pins for beginners are:
- GPIO 4
- GPIO 5
- GPIO 12–19
- GPIO 21–23
- GPIO 25–27
- GPIO 32–33
These pins work for almost every basic project and follow all guidelines from the esp32 pin functions list.
3. Which ESP32 pins should I avoid?
Some pins behave differently during boot or have restricted functions. Avoid:
- GPIO 0, GPIO 2, GPIO 12, GPIO 15 (boot pins)
- GPIO 34–39 (input-only pins)
These can cause unexpected resets or failed uploads. This is one of the most common issues beginners face, so it’s always included in any esp32 pin guide.
4. Are ESP32 pins 5V tolerant?
No — ESP32 pins are not 5V tolerant.
All ESP32 GPIO pins are rated for 3.3V max, and feeding 5V directly into the pins can permanently damage the board.
Search terms like esp32 pins 5v tolerant often confuse beginners because some breakout boards use onboard level shifters — but the ESP32 chip itself is strictly 3.3V only.
5. What is the difference between ESP32 ADC1 and ADC2?
The ESP32 has two ADC systems:
ADC1 (GPIO 32–39)
- Works reliably
- No WiFi interference
- Recommended for sensors
ADC2 (GPIO 0, 2, 4, 12–15, 25–27)
- Shared with WiFi
- Can give unstable readings when WiFi is ON
When reading any esp32 pin description, remember this rule:
Use ADC1 for all real sensor projects.
6. What are input-only pins on ESP32?
These pins can only read input signals, not output anything:
- GPIO 34
- GPIO 35
- GPIO 36
- GPIO 39
If you need analog readings, these are excellent because they belong to ADC1, which is WiFi-safe. This is often highlighted in esp-32s pinout guides because many learners mix these up.
7. What is the ESP32-S3 pinout explained simply?
The ESP32-S3 is a newer chip, and its esp32 s3 pinout explained includes:
- More GPIO pins (up to 48)
- USB OTG support
- Better ADC stability
- Improved camera/LCD support
Most pin functions remain similar to the original ESP32, but the ESP32-S3 gives more flexibility for AI and camera projects.
8. How do I know which ESP32 pins to use for UART?
The ESP32 supports multiple UART ports. Default pins are:
- UART0: GPIO 1 (TX), GPIO 3 (RX)
- UART1: GPIO 9 (RX), GPIO 10 (TX)
- UART2: GPIO 16 (RX), GPIO 17 (TX)
However, thanks to the ESP32’s powerful IO Mux, you can remap UART to almost any pin, which is why most esp32 pin definition explanations mention “pin multiplexing.”
9. Does the ESP32 have DAC pins for analog output?
Yes. Only two pins support true DAC (Digital-to-Analog conversion):
- GPIO 25 → DAC1
- GPIO 26 → DAC2
These pins can output smooth voltage levels and are often used in audio projects, smart lighting, or motor control.
10. What is the difference between ESP32 pinout Espressif and ESP32 pinout Adafruit?
Both are correct but differ in presentation:
ESP32 pinout Espressif (official)
- Based on engineering datasheet
- More technical
- Exact, formal pin definition
ESP32 pinout Adafruit
- Beginner-friendly
- Clean labeling
- Designed for hobbyists
No matter which diagram you use, the underlying esp32 pin functions remain the same.
11. Why do some ESP32 pins have multiple functions?
The ESP32 uses a hardware feature called the IO-MUX matrix, allowing almost every pin to perform multiple roles.
This is why the same pin can act as:
- A digital I/O pin
- An ADC input
- A touch sensor
- A UART / SPI / I2C line
This flexibility is why creating an esp32 pinout explained article is so helpful — the chip is powerful but needs a clear guide.
12. What are strapping pins on the ESP32?
Strapping pins are special pins that decide how the ESP32 boots.
| Pin | Purpose |
|---|---|
| GPIO 0 | Flash mode / boot mode |
| GPIO 2 | Boot voltage selection |
| GPIO 12 | Flash voltage configuration |
| GPIO 15 | Boot configuration |
When beginners accidentally pull these pins high/low in a circuit, the ESP32 may stop uploading code.
This is why they’re heavily emphasized in every esp32 pin description or boot guide.
13. Can I use ESP32 pins for PWM?
Yes. Almost every ESP32 GPIO supports PWM using the built-in LEDC driver.
The ESP32 supports:
- Up to 16 PWM channels
- Up to 40 MHz clock
- Adjustable frequency and duty cycle
PWM is one of the most commonly used features in any esp32 pin guide.
14. Why does the ESP32 reboot when I connect sensors?
Common reasons include:
- Using boot pins (GPIO 0, 2, 12, 15) incorrectly
- Drawing too much 5V/3.3V power
- Feeding 5V signals into GPIO pins
- Noise from motors or relays
- Faulty breadboard connections
Fixing these instantly solves 80% of beginner issues.
15. Are all ESP32 DevKit boards the same?
No.
While the ESP32 chip is the same, different manufacturers arrange the pins differently.
Popular variants include:
- Espressif DevKit
- ESP-32S pinout (Ai-Thinker modules)
- ESP32 Adafruit HUZZAH boards
- Generic Chinese modules
This is why it’s important to read a clear esp32 pin guide tailored to your board.
16. Which pins support touch input on the ESP32?
The ESP32 has 10 touch-capable pins:
GPIO: 0, 2, 4, 12, 13, 14, 15, 27, 32, 33
These pins allow you to create touch buttons, sliders, and touch-based controls without mechanical switches.
17. Can the ESP32 handle analog output like Arduino?
Yes, but differently.
Arduino uses PWM-based analogWrite, while ESP32 uses true DAC on pins 25 and 26.
This makes it suitable for:
- Audio signals
- Waveform generation
- LED smooth fades
- Motor speed control
For all other pins, you can use LEDC PWM, which is extremely flexible.
18. How do I power the ESP32 safely?
You can power the ESP32 in three ways:
- USB (5V)
- 5V pin (regulated supply)
- 3.3V pin (must be clean and stable)
Always remember: GPIO pins must never receive 5V.
19. Can I use ESP32 pins for SD card communication?
Yes. The ESP32 supports SD cards using:
- SPI mode
- SDIO mode
Common pins used:
GPIO 5, 18, 19, 23 (for SPI)
This is why SD card projects are common in esp32 explained tutorials.
20. How many power pins does the ESP32 have?
Most ESP32 DevKit boards include:
- 3.3V
- 5V
- GND (multiple)
- EN (enable/reset)
These power pins are consistent across most Espressif and Adafruit layouts.
21. What is EN pin on the ESP32?
EN stands for Enable.
Pulling it LOW resets the chip.
Pulling it HIGH lets the ESP32 run normally.
It works similarly to a “reset button” and is found in all esp32 pinout espressif diagrams.
22. Do all ESP32 boards have the same GPIO count?
No.
It depends on the model:
- ESP32: 34 usable GPIOs
- ESP32-S2: ~43 GPIOs
- ESP32-S3: up to 48 GPIOs
- ESP-32S: similar to ESP32 DevKit
Always check your board’s esp32 pin definition chart before building.
23. How do I avoid damaging my ESP32 pins?
Follow these rules:
- Never input 5V into GPIO
- Use a proper ground connection
- Don’t overload 3.3V output
- Avoid boot pins for sensors
- Use resistors with LEDs
- Use level shifters for 5V sensors
These simple steps will keep your ESP32 safe for years.
24. What happens if I use boot pins accidentally?
The ESP32 may:
- Fail to upload code
- Enter flash mode
- Reboot continuously
- Freeze at startup
This is the #1 reason beginners Google which esp32 pins to use.
25. How do I identify pins from the ESP32 datasheet easily?
Instead of struggling with dense PDFs, use:
- Espressif official pinout diagram
- Adafruit annotated pin charts
- ESP32 DevKit silkscreen labels
This is why many people search terms like esp32 pinout adafruit — their diagrams are cleaner.
Mr. Raj Kumar is a highly experienced Technical Content Engineer with 7 years of dedicated expertise in the intricate field of embedded systems. At Embedded Prep, Raj is at the forefront of creating and curating high-quality technical content designed to educate and empower aspiring and seasoned professionals in the embedded domain.
Throughout his career, Raj has honed a unique skill set that bridges the gap between deep technical understanding and effective communication. His work encompasses a wide range of educational materials, including in-depth tutorials, practical guides, course modules, and insightful articles focused on embedded hardware and software solutions. He possesses a strong grasp of embedded architectures, microcontrollers, real-time operating systems (RTOS), firmware development, and various communication protocols relevant to the embedded industry.
Raj is adept at collaborating closely with subject matter experts, engineers, and instructional designers to ensure the accuracy, completeness, and pedagogical effectiveness of the content. His meticulous attention to detail and commitment to clarity are instrumental in transforming complex embedded concepts into easily digestible and engaging learning experiences. At Embedded Prep, he plays a crucial role in building a robust knowledge base that helps learners master the complexities of embedded technologies.













