ESP32 microcontroller

Photo shows an ESP32 on breadboards atop a black mat, with jumper wires nearby and the title The ESP32 visible.

The ESP32 is a family of low-cost, high-performance microcontrollers designed for projects that need both hardware control and wireless connectivity. Like the Raspberry Pi Pico, it is programmed to run a single application directly on the hardware, but it adds built-in Wi-Fi and Bluetooth, making it especially well suited to connected and interactive projects.

ESP32 boards are widely used in education, hobby projects, and commercial IoT products. They sit comfortably between very simple microcontrollers and full single-board computers, offering a good balance of power, flexibility, and cost.

Processor

Most ESP32 variants use a dual-core 32-bit processor running at up to 240 MHz. These cores are fast enough to handle real-time control tasks while also managing background activities such as networking.

A key difference compared to simpler microcontrollers is that the ESP32 is designed to run multiple tasks at once. One core can be busy dealing with Wi-Fi or Bluetooth while the other runs your main application logic. This makes it much easier to build responsive projects that communicate over a network without becoming unreliable or sluggish.

Memory (RAM)

The ESP32 includes around 520 KB of internal RAM, which is used while the program is running. This memory holds variables, buffers, and data used by the operating system and networking stacks.

Wireless features such as Wi-Fi and Bluetooth do consume a noticeable amount of RAM, but even with this overhead, the ESP32 still offers more working memory than many entry-level microcontrollers. This allows for more complex programs, multitasking, and richer features without immediately running into memory limits.

PSRAM (external memory)

Some ESP32 boards include PSRAM, which is additional external memory connected to the chip. This is commonly available in sizes such as 4 MB or 8 MB.

PSRAM greatly expands what the ESP32 can handle comfortably. Projects involving displays, image buffers, audio data, or camera modules benefit significantly from this extra memory. While PSRAM is not required for simpler projects, it makes a noticeable difference as soon as applications start handling larger amounts of data.

Flash storage

Program code and long-term data are stored in flash memory, which keeps its contents when the power is off. Most ESP32 development boards include 4 MB of flash, with many offering 8 MB, 16 MB, or more.

This larger flash capacity allows ESP32 projects to include configuration files, web pages, and multiple firmware images. It also enables features such as over-the-air updates, where the device can update its own software via Wi-Fi without being physically connected to a computer.

Input and output pins

The ESP32 provides a large number of GPIO pins, typically 30 or more depending on the board and module. These pins are highly flexible and can be configured for digital input and output, PWM, analogue input, or serial communication.

Unlike some microcontrollers where pins have very fixed roles, many ESP32 pins can be reassigned in software. This flexibility makes it easier to design custom hardware and adapt projects as they evolve. The chip also includes built-in support for common interfaces such as SPI, I²C, and UART, along with additional features like capacitive touch inputs.

Wireless connectivity

Wireless networking is one of the ESP32’s defining features. Wi-Fi and Bluetooth are built directly into the chip, rather than added as external modules.

Wi-Fi allows ESP32 devices to connect to existing networks, host their own access points, or communicate with cloud services. Bluetooth and Bluetooth Low Energy make it possible to interact directly with phones, tablets, and nearby devices. These capabilities open the door to projects such as web-controlled robots, sensor dashboards, and mobile-controlled devices with very little additional hardware.

ESP32 variants

The ESP32 family includes several closely related variants aimed at different use cases. Standard ESP32 modules are general-purpose and well suited to learning, prototyping, and most connected projects. Versions that include PSRAM are intended for more demanding applications involving graphics, audio, or large data buffers.

Newer variants add features such as native USB support, improved performance for graphics and AI-style workloads, or lower power consumption for battery-powered devices. Despite these differences, the programming model and toolchains remain broadly similar across the family.

Who is the ESP32 for?

The ESP32 is a good choice for learners who are ready to move beyond basic microcontroller projects and want to explore networked systems. It is also well suited to educators teaching concepts such as IoT, remote monitoring, and device-to-device communication.

For hobbyists and professionals, the ESP32 offers enough performance and memory to support real products, while still being affordable and widely supported. It is particularly attractive when wireless connectivity is a core requirement rather than an optional extra.

ESP32 compared to Raspberry Pi Pico

While both the ESP32 and Raspberry Pi Pico are microcontrollers, they are designed with different priorities. The Pico focuses on simplicity, predictability, and low-level control, making it excellent for learning fundamentals and timing-sensitive tasks.

The ESP32, by contrast, prioritises connectivity and higher-level features. It includes built-in Wi-Fi and Bluetooth, more memory options, and support for multitasking. This makes it better suited to connected projects, but also slightly more complex to understand and configure.

In practice, the Pico is often chosen for straightforward control and teaching core concepts, while the ESP32 is chosen when projects need to communicate, interact with other devices, or scale in complexity.

Summary

The ESP32 is a powerful and flexible microcontroller platform that brings wireless connectivity, generous memory options, and strong performance into a small and affordable package. It complements boards like the Raspberry Pi Pico rather than replacing them, offering a clear step up when projects move into connected, interactive, or data-driven territory.

Tutorials

Topics

The Raspberry Pi Pico

Raspberry Pi Pico on a breadboard with sensors and jumper wires arranged neatly on a desk, ready for an electronics project.

Raspberry Pi Pico is an affordable, efficient microcontroller offering flexible GPIO, strong performance, and versatile hardware features for beginner electronics projects.