

The ESP32, manufactured by Espressif, is a powerful and versatile microcontroller that integrates both Wi-Fi and Bluetooth capabilities. With its 30-pin configuration, the ESP32 is designed to support a wide range of applications, from IoT (Internet of Things) devices to home automation, robotics, and wearable electronics. Its compact size and robust processing power make it a popular choice for developers and hobbyists alike.








The ESP32 (30-pin variant) offers a rich set of features and specifications that make it suitable for a variety of applications. Below are the key technical details:
The ESP32 (30-pin variant) has a well-organized pinout. Below is a table describing the key pins:
| Pin Name | Type | Description |
|---|---|---|
| VIN | Power Input | Input voltage (7-12V) for powering the ESP32. |
| 3V3 | Power Output | Regulated 3.3V output from the onboard voltage regulator. |
| GND | Ground | Ground connection. |
| EN | Enable | Enables the chip when pulled high. |
| GPIO0 | GPIO | General-purpose I/O pin; also used for boot mode selection. |
| GPIO2 | GPIO | General-purpose I/O pin. |
| GPIO4 | GPIO | General-purpose I/O pin. |
| GPIO5 | GPIO | General-purpose I/O pin. |
| GPIO12 | GPIO | General-purpose I/O pin; also used for bootstrapping. |
| GPIO13 | GPIO | General-purpose I/O pin. |
| GPIO14 | GPIO | General-purpose I/O pin. |
| GPIO15 | GPIO | General-purpose I/O pin. |
| GPIO16 | GPIO | General-purpose I/O pin. |
| GPIO17 | GPIO | General-purpose I/O pin. |
| GPIO18 | GPIO | General-purpose I/O pin; supports SPI clock (SCK). |
| GPIO19 | GPIO | General-purpose I/O pin; supports SPI MISO. |
| GPIO21 | GPIO | General-purpose I/O pin; supports I2C SDA. |
| GPIO22 | GPIO | General-purpose I/O pin; supports I2C SCL. |
| GPIO23 | GPIO | General-purpose I/O pin; supports SPI MOSI. |
| GPIO25 | GPIO | General-purpose I/O pin; supports DAC output. |
| GPIO26 | GPIO | General-purpose I/O pin; supports DAC output. |
| GPIO27 | GPIO | General-purpose I/O pin. |
| GPIO32 | GPIO | General-purpose I/O pin; supports ADC input. |
| GPIO33 | GPIO | General-purpose I/O pin; supports ADC input. |
| GPIO34 | GPIO (Input) | General-purpose input pin; supports ADC input. |
| GPIO35 | GPIO (Input) | General-purpose input pin; supports ADC input. |
| GPIO36 | GPIO (Input) | General-purpose input pin; supports ADC input. |
| GPIO39 | GPIO (Input) | General-purpose input pin; supports ADC input. |
| TX0 | UART TX | UART0 transmit pin. |
| RX0 | UART RX | UART0 receive pin. |
The ESP32 is easy to integrate into a variety of projects. Below are the steps and best practices for using the ESP32 in a circuit.
Powering the ESP32:
Connecting to a Computer:
Programming the ESP32:
Tools > Board > ESP32 Dev Module).The following example demonstrates how to blink an LED connected to GPIO2 using the Arduino IDE:
// Define the GPIO pin where the LED is connected
#define LED_PIN 2
void setup() {
// Set the LED pin as an output
pinMode(LED_PIN, OUTPUT);
}
void loop() {
// Turn the LED on
digitalWrite(LED_PIN, HIGH);
delay(1000); // Wait for 1 second
// Turn the LED off
digitalWrite(LED_PIN, LOW);
delay(1000); // Wait for 1 second
}
ESP32 Not Detected by Computer:
Program Upload Fails:
Wi-Fi Connection Issues:
Random Resets:
By following this documentation, you can effectively utilize the ESP32 (30-pin variant) in your projects and troubleshoot common issues with ease.