What Is the ESP32?
The ESP32 is a powerful, low-cost microcontroller developed by Espressif Systems. It features a dual-core 32-bit processor, built-in Wi-Fi and Bluetooth, and a rich set of peripherals — making it one of the most versatile chips available for hobbyists, makers, and professional engineers alike.
Whether you want to build a smart home sensor, a web-connected robot, or a Bluetooth audio device, the ESP32 has the hardware to support it — all for just a few dollars per module.
Key Features at a Glance
- Dual-core Xtensa LX6 processor running up to 240 MHz
- Built-in Wi-Fi (802.11 b/g/n) and Bluetooth 4.2 / BLE
- Up to 34 GPIO pins with multiple functions
- 12-bit ADC on up to 18 channels
- Support for SPI, I2C, I2S, UART, CAN, PWM and more
- Ultra-low power modes, including deep sleep at ~10 µA
- On-chip Hall sensor and capacitive touch inputs
What You'll Need to Get Started
- An ESP32 development board — the ESP32-DevKitC or a NodeMCU-32S are popular choices for beginners
- A USB cable (usually Micro-USB or USB-C, depending on the board)
- A computer running Windows, macOS, or Linux
- Arduino IDE (free download from arduino.cc)
Installing the ESP32 Board Package in Arduino IDE
Arduino IDE is the easiest way to start programming the ESP32. Follow these steps to add ESP32 support:
- Open Arduino IDE and go to File → Preferences.
- In the "Additional Board Manager URLs" field, paste:
https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json - Click OK, then go to Tools → Board → Boards Manager.
- Search for "esp32" and install the package by Espressif Systems.
- Once installed, go to Tools → Board and select your specific ESP32 board.
Your First Sketch: Blink an LED
Most ESP32 development boards have a built-in LED connected to GPIO 2. Here's the classic "Hello World" of hardware:
void setup() {
pinMode(2, OUTPUT);
}
void loop() {
digitalWrite(2, HIGH);
delay(1000);
digitalWrite(2, LOW);
delay(1000);
}
Upload this sketch by selecting the correct COM port under Tools → Port, then clicking the Upload button. You should see the onboard LED blinking every second.
Choosing the Right ESP32 Variant
Espressif makes several ESP32 variants. Here's a quick comparison for beginners:
| Module | Cores | Wi-Fi | Bluetooth | Best For |
|---|---|---|---|---|
| ESP32 | 2 | Yes | BT + BLE | General IoT projects |
| ESP32-S3 | 2 | Yes | BLE only | AI / USB applications |
| ESP32-C3 | 1 (RISC-V) | Yes | BLE only | Cost-sensitive designs |
| ESP32-S2 | 1 | Yes | None | USB-HID, no BT needed |
Next Steps
Once you've blinked an LED, you're ready to explore further. Try reading sensor data over I2C, connecting to your home Wi-Fi, or setting up a simple web server. The ESP32 ecosystem is vast — and this is just the beginning.