

The ESP32-WROOM-32 (36 PIN) is a powerful Wi-Fi and Bluetooth microcontroller module developed by Espressif. It is based on the ESP32 dual-core processor and is designed for a wide range of IoT applications. With its integrated wireless capabilities, extensive GPIO options, and robust processing power, the ESP32-WROOM-32 is ideal for projects requiring connectivity, real-time processing, and low power consumption.








The ESP32-WROOM-32 (36 PIN) module features a total of 36 pins. Below is the pinout and description:
| Pin Number | Pin Name | Function |
|---|---|---|
| 1 | EN | Enable pin. Active high to enable the module. |
| 2 | IO0 | GPIO0. Used for boot mode selection during programming. |
| 3 | IO1 (TX0) | GPIO1. UART0 TX pin. |
| 4 | IO3 (RX0) | GPIO3. UART0 RX pin. |
| 5 | IO4 | GPIO4. General-purpose I/O. |
| 6 | IO5 | GPIO5. General-purpose I/O. |
| 7 | IO12 | GPIO12. Can be used as ADC, touch, or general-purpose I/O. |
| 8 | IO13 | GPIO13. Can be used as ADC, touch, or general-purpose I/O. |
| 9 | IO14 | GPIO14. Can be used as ADC, touch, or general-purpose I/O. |
| 10 | IO15 | GPIO15. Can be used as ADC, touch, or general-purpose I/O. |
| 11 | IO16 | GPIO16. General-purpose I/O. |
| 12 | IO17 | GPIO17. General-purpose I/O. |
| 13 | IO18 | GPIO18. SPI clock (SCK) or general-purpose I/O. |
| 14 | IO19 | GPIO19. SPI MISO or general-purpose I/O. |
| 15 | IO21 | GPIO21. I2C SDA or general-purpose I/O. |
| 16 | IO22 | GPIO22. I2C SCL or general-purpose I/O. |
| 17 | IO23 | GPIO23. SPI MOSI or general-purpose I/O. |
| 18 | IO25 | GPIO25. DAC1 or general-purpose I/O. |
| 19 | IO26 | GPIO26. DAC2 or general-purpose I/O. |
| 20 | IO27 | GPIO27. General-purpose I/O. |
| 21 | IO32 | GPIO32. ADC or general-purpose I/O. |
| 22 | IO33 | GPIO33. ADC or general-purpose I/O. |
| 23 | IO34 | GPIO34. ADC input only. |
| 24 | IO35 | GPIO35. ADC input only. |
| 25 | GND | Ground. |
| 26 | 3V3 | 3.3V power output. |
| 27 | VIN | Input voltage (7-12V). |
| 28 | TX2 | UART2 TX pin. |
| 29 | RX2 | UART2 RX pin. |
| 30 | TX1 | UART1 TX pin. |
| 31 | RX1 | UART1 RX pin. |
| 32 | BOOT | Boot mode selection pin. |
| 33 | RST | Reset pin. Active low to reset the module. |
| 34 | IO36 | GPIO36. ADC input only. |
| 35 | IO39 | GPIO39. ADC input only. |
| 36 | NC | Not connected. |
Powering the Module:
Programming the Module:
Connecting Peripherals:
Flashing Code:
Below is an example of how to blink an LED connected to GPIO2:
// Define the GPIO pin for the LED
#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:
Code Upload Fails:
Wi-Fi Connection Issues:
GPIO Pin Not Working:
Q: Can the ESP32-WROOM-32 operate on battery power?
Q: How do I reset the ESP32?
Q: Can I use the ESP32 with 5V logic?