Component · Controller
ESP32
The ESP32 is a fast dual-core microcontroller with built-in Wi-Fi and Bluetooth—an Arduino you can talk to wirelessly. What it does and when to pick it.
What it is
The ESP32 is a microcontroller that feels like an Arduino with a radio bolted on and the brakes taken off. It has a dual-core 32-bit processor that runs many times faster than an Uno, far more memory, and—the headline feature—Wi-Fi and Bluetooth built in. That combination is why it dominates hobby robotics and IoT: a robot can host a web page to control itself, stream sensor data to your phone, or take commands over Bluetooth, all from one cheap chip.
Crucially, you program it with the same Arduino IDE and language you may already know. The learning you did on an Uno transfers directly; you simply gain connectivity and headroom.
How it works
At its heart are two Xtensa CPU cores clocked up to 240 MHz. Having two cores matters for robots: one core can run your control loop with steady timing while the other handles Wi-Fi, so networking never stalls the wheels. Around the CPU sit the usual microcontroller peripherals—GPIO, PWM channels, multiple ADCs, I²C, SPI, UART—plus the radio.
The most important practical fact is the voltage: the ESP32 runs at 3.3 V logic, not the Uno’s 5 V. Its pins are not 5 V tolerant. A 5 V sensor output—like the Echo pin of an HC-SR04—must be dropped to 3.3 V before it touches an ESP32 pin, or you risk damage. This one difference trips up almost everyone moving from an Uno.
When to use it
Reach for an ESP32 when your robot needs to be wireless—remote control, telemetry, a browser dashboard—or when it needs compute an 8-bit board can’t manage, like processing more sensors or running lightweight on-device logic. The ESP32-CAM variant adds a camera, opening up simple vision projects.
Stick with an Arduino Uno when you are learning the fundamentals, when 5 V tolerance makes wiring safer, or when the project is simple and offline—driving a couple of motors around a line doesn’t need Wi-Fi.
Wiring and gotchas
- It is 3.3 V, and not 5 V tolerant. Level-shift any 5 V signal before it reaches a GPIO. This is the single most common way beginners damage an ESP32.
- Wi-Fi plus motors can brown out the board. The radio draws sharp current spikes; sharing a weak supply with motors causes resets. Power motors separately through a motor driver and give the ESP32 a stable 3.3 V rail.
- Not every pin is free. Several GPIOs are input-only, tied to boot behaviour, or connected to internal flash. Check a pinout before assigning pins, or the board won’t boot.
- ADC quirks. One of the two ADCs is unavailable while Wi-Fi is active, and the readings are less linear than an Uno’s—calibrate if you need accuracy.
Explore the graph
Used in these builds
Projects, learning paths, and simulators that include the ESP32.
Compare
Alternatives
Questions
ESP32 FAQ
What is the ESP32?
The ESP32 is a low-cost microcontroller with a dual-core processor and built-in Wi-Fi and Bluetooth. Think of it as an Arduino that is much faster and can talk to networks and phones wirelessly, which is why it powers most connected robotics and IoT projects.
What is an ESP32 used for?
It is used wherever a project needs wireless connectivity or more processing than an 8-bit board can offer: Wi-Fi-controlled robots, web-based dashboards, Bluetooth remote control, sensor nodes that report to the cloud, and camera projects using the ESP32-CAM variant.
Is the ESP32 better than the Arduino Uno?
On raw specs, yes—it is far faster, has more memory, and includes wireless the Uno lacks. But the Uno is 5 V and more forgiving of wiring mistakes, while the ESP32 is 3.3 V and less tolerant. For learning basics the Uno is gentler; for connected or compute-heavy robots the ESP32 wins.
What is the difference between Arduino and ESP32?
Arduino usually means an 8-bit, 5 V, single-core board with no radio. The ESP32 is a 32-bit, 3.3 V, dual-core board with Wi-Fi and Bluetooth built in. Confusingly, you program both with the Arduino IDE, so 'Arduino' can mean the language and tools as well as the classic boards.
Does the ESP32 use C or C++?
The ESP32 is programmed in C++ (with plenty of C) using the Arduino framework or Espressif's own ESP-IDF. If you have written Arduino sketches, the language and structure carry straight over—you mostly just gain Wi-Fi, Bluetooth, and more pins to work with.
Can you program the ESP32 with the Arduino IDE?
Yes. After adding the ESP32 board package to the Arduino IDE's board manager, you write and upload sketches exactly as you would for an Uno, and existing libraries largely work. This is the easiest way to start, before moving to ESP-IDF for advanced features.
Further reading