What is a Microcontroller ?
A microcontroller is a small, compact integrated circuit (IC) designed to perform specific control tasks within electronic devices. It contains three key components inside a single chip.
Main parts of a microcontroller:
CPU (Central Processing Unit): Processes instructions
- Memory:
- RAM for temporary data
- ROM / Flash for storing the program
- I/O Ports: Used to connect and control external devices such as sensors, motors, and displays.
ESP32
The ESP32 is a powerful and low-cost microcontroller chip developed by Espressif Systems. It is widely used in Internet of Things (IoT) applications because it has built-in Wi-Fi and Bluetooth, which allow devices to communicate wirelessly without needing extra modules. The ESP32 is faster and more capable than many other microcontrollers, such as the Arduino UNO, because it has a dual-core processor and more memory.
The ESP32 includes features such as a 32-bit CPU, flash memory for program storage, RAM for data handling, and a large number of input and output pins that can connect to sensors, motors, displays, and other hardware. It also supports analog-to-digital and digital-to-analog conversion, PWM control, touch sensor inputs, and many communication interfaces like UART, SPI, and I2C.
The ESP32 is used in applications such as smart home automation, wireless monitoring, robotics, wearables, remote control systems, and data logging. It is popular among students, hobbyists, and engineers because it is easy to program using Arduino IDE, MicroPython, or the ESP-IDF development environment.
ESP32 Main Features
- It has a dual-core 32-bit processor that provides high processing speed.
- It includes built-in Wi-Fi and Bluetooth (both Classic and BLE) for wireless communication.
- It has a large number of GPIO pins that can be used to connect sensors and external devices.
- It supports analog-to-digital conversion (ADC) and digital-to-analog conversion (DAC).
- It provides multiple communication interfaces such as UART, SPI, and I2C.
- It contains built-in timers, PWM outputs, and capacitive touch inputs.
- It has built-in flash memory for program storage and RAM for data handling.
- It supports deep sleep and ultra-low-power modes for battery-powered applications.
- It has good security features such as encryption and secure boot.
PIN GUIDE FOR ESP32 - WROOM 32 MODEL
ESP32-WROOM-32 — Complete Pin Guide & Descriptions
The ESP32-WROOM-32 module has 38 physical pins. Not all pins are available as general-purpose I/O (GPIO). Some pins support ADC, DAC, touch sensing, communication interfaces, or special boot functions.
Power Pins
| Pin Name | Description |
|---|---|
| 3V3 | 3.3V power input to the module |
| GND | Ground reference |
| EN | Enable pin (reset when pulled low) |
GPIO Pins and Functions
| GPIO | Module Pin | Features / Functions | Notes |
|---|---|---|---|
| GPIO0 | Boot pin | ADC2, Touch, Boot | Used for boot mode selection |
| GPIO1 | TX0 | UART0 TX | Used for programming / serial output |
| GPIO2 | Pin | ADC2, PWM | Boot strap pin |
| GPIO3 | RX0 | UART0 RX | Used for programming |
| GPIO4 | Pin | PWM, ADC2, Touch | General I/O |
| GPIO5 | Pin | PWM, ADC2, SPI SS | Boot strap pin |
| GPIO12 | Pin | ADC2, Touch | Boot strap — voltage sensitivity |
| GPIO13 | Pin | Touch, PWM, SPI | General I/O |
| GPIO14 | Pin | PWM, ADC2, Touch | General I/O |
| GPIO15 | Pin | PWM, ADC2 | Boot strap function |
| GPIO16 | Pin | UART2 RX | General I/O |
| GPIO17 | Pin | UART2 TX | General I/O |
| GPIO18 | Pin | SPI CLK, PWM | General I/O |
| GPIO19 | Pin | SPI MISO, PWM | General I/O |
| GPIO21 | Pin | I2C SDA, PWM | Preferred for I2C |
| GPIO22 | Pin | I2C SCL | Preferred for I2C |
| GPIO23 | Pin | SPI MOSI | General I/O |
| GPIO25 | Pin | DAC1, PWM, ADC2 | Analog output available |
| GPIO26 | Pin | DAC2, PWM, ADC2 | Analog output available |
| GPIO27 | Pin | PWM, ADC2 | General I/O |
| GPIO32 | Pin | ADC1, Touch, PWM | General I/O |
| GPIO33 | Pin | ADC1, Touch, PWM | General I/O |
| GPIO34 | Pin | ADC1 | Input-only |
| GPIO35 | Pin | ADC1 | Input-only |
| GPIO36 | Pin | ADC1 | Input-only |
| GPIO39 | Pin | ADC1 | Input-only |
Special Notes
GPIO34, GPIO35, GPIO36, and GPIO39 are input-only pins and cannot output signals. GPIO0, GPIO2, GPIO5, GPIO12, and GPIO15 have special boot functions and must be handled carefully during startup.
UART0 (GPIO1/3) is used for programming and uploading code.
I2C default recommended pins are GPIO21 (SDA) and GPIO22 (SCL).
ADC2 pins cannot be used when Wi-Fi is active.
Communication Interfaces
| Interface | Pins |
|---|---|
| UART0 | GPIO1 (TX), GPIO3 (RX) |
| UART2 | GPIO16 (RX), GPIO17 (TX) |
| SPI | GPIO18 (CLK), GPIO19 (MISO), GPIO23 (MOSI), GPIO5 (CS) |
| I2C | GPIO21 (SDA), GPIO22 (SCL) |
For full electrical specifications, current limits, and design rules, always refer to the official Espressif ESP32-WROOM-32 datasheet.
.
Support My Work with a Cup of Chai! ☕
If you are located in India, I kindly request your support through a small contribution.
Please note that the UPI payment method is only available within India.
Accepted Payment Methods: Google Pay, PhonePe, PayTM, Amazonpay UPI
UPI ID :
haneenthecreate@postbank
If you are not located in India , Do the Payments via BUY ME A COFEE
Wishing you a wonderful day!
HaneentheCREATE is now available in the DISCORD ! Become a member and join us


