esp32.diy

ESP32 Specs: Complete Reference Guide for Makers

Oct 19, 2026 · 6 min read · Beginner

ESP32 Specs: Complete Reference Guide for Makers
TL;DR The ESP32 runs at up to 240 MHz and delivers up to 600 DMIPS, with integrated Wi-Fi and Bluetooth including BLE support from spec 4.2 through emerging 6.x features via ESP-IDF. It typically relies on external SPI flash and includes a 12-bit ADC with a 0–4095 output range.
CPU SpeedUp to 240 MHz
PerformanceUp to 600 DMIPS
ADC Resolution12-bit (0–4095)
FlashExternal SPI flash, typically 4 MB on dev boards
WirelessIntegrated Wi-Fi + Bluetooth (Classic & BLE)
BLE CoverageBLE 4.2 through 6.x features via ESP-IDF

What are the ESP32's core processing specs?

The ESP32 operates at up to 240 MHz and delivers up to 600 DMIPS of processing performance. To put that in perspective, the STM32-F3 — a widely used microcontroller for control applications — runs at 72 MHz with 1.25 DMIPS/MHz, giving it roughly 90 DMIPS total. The ESP32 is substantially faster on paper.

Spec Value
Max clock speed 240 MHz
Max performance 600 DMIPS

Raw clock speed and DMIPS are useful first-pass comparisons, but they do not tell the whole story. Peripheral quality, scheduling overhead, flash access latency, and real-time constraints all affect whether a processor is the right fit for a specific job. A higher benchmark number does not automatically mean better suitability for every task.

An ESP32 development board exposing the module and GPIO breakout pins used for prototyping.\2

An ESP32 development board exposing the module and GPIO breakout pins used for prototyping. Image: Edwiyanto, CC BY-SA 4.0, via Wikimedia Commons

What wireless capabilities does the ESP32 have?

The ESP32 integrates both Wi-Fi and Bluetooth — including Classic Bluetooth and Bluetooth Low Energy — on a single chip. That combination is a major reason for its popularity in IoT, home automation, and connected sensor projects.

One important practical note: both Wi-Fi and BLE are session-oriented protocols that include automatic retransmission logic. When a packet is lost, the stack tries to resend it. For most IoT work that is exactly what you want. For applications that need ultra-low-latency, stateless radio links — such as live remote control of aircraft — this behaviour is a problem. A real-time control link should drop a stale command and send a fresh one, not queue retries. Purpose-built 2.4 GHz radio modules handle this better than Wi-Fi or BLE.

For the typical maker use case — sensor reporting, MQTT publishing, BLE beaconing, web dashboards — the integrated wireless is well-suited and saves significant board space and component count.

The ESP-WROOM-32 module integrates the ESP32 chip, external SPI flash, and RF components inside a single shielded package.\2

The ESP-WROOM-32 module integrates the ESP32 chip, external SPI flash, and RF components inside a single shielded package. Image: Brian Krent, CC BY-SA 4.0, via Wikimedia Commons

Which BLE spec versions and features are supported?

ESP-IDF ships with two Bluetooth host stacks: ESP-Bluedroid and ESP-NimBLE. Both cover an extensive range of BLE specification features. The table below summarises major feature support as documented in ESP-IDF.

BLE Spec Feature ESP-Bluedroid ESP-NimBLE
4.2 LE Data Packet Length Extension Supported Supported
4.2 LE Secure Connections Supported Supported
4.2 Link Layer Privacy Supported Supported
4.2 Link Layer Extended Filter Policies Supported Supported
5.0 2 Msym/s PHY Supported Supported
5.0 LE Long Range (Coded PHY S=2/S=8) Supported Supported
5.0 LE Advertising Extensions Supported Supported
5.0 LE Channel Selection Algorithm #2 Supported Supported
5.1 Angle of Arrival / Departure (AoA/AoD) Supported Supported
5.1 GATT Caching Experimental Experimental
5.1 Periodic Advertising Sync Transfer Supported Supported
5.2 LE Isochronous Channels (BIS/CIS) Experimental Experimental
5.2 Enhanced Attribute Protocol Not supported Experimental
5.2 LE Power Control Experimental Experimental
5.3 AdvDataInfo in Periodic Advertising Supported Supported
5.3 LE Enhanced Connection Update Experimental Experimental
5.3 LE Channel Classification Supported Supported
5.4 Advertising Coding Selection Experimental Supported
5.4 Encrypted Advertising Data Experimental Experimental
6.0 Channel Sounding Experimental Experimental

"Experimental" means the feature has been developed and is undergoing internal testing. It is usable for evaluation and prototyping but should not be considered stable for production firmware. Feature availability also varies by chip variant — the original ESP32 does not support all BLE 5.x features that newer variants like the ESP32-C3 or ESP32-S3 do. Always check the chip-specific table in the ESP-IDF documentation for the exact variant you are using.

What are the ESP32's flash and storage specs?

Unlike microcontrollers such as STM32 or AVR devices that include flash memory on the die, the ESP32 typically relies on an external SPI flash chip. This is a meaningful architectural difference with practical consequences.

Item Detail
Flash type External SPI flash (in most variants)
Common dev board size 4 MB (e.g., Huzzah32)

For custom PCB designers, the external flash chip is an additional component to source, place, and route — and one more potential failure point. Modules like the ESP-WROOM-32 bundle the flash alongside the chip inside a shielded package, which simplifies integration considerably.

For data logging context: at 10 Hz with two bytes per 12-bit ADC sample, 4 MB of flash holds roughly 55 hours of data — more than enough for a typical multi-hour experiment. Even at 20 Hz you get over 27 hours.

What are the ESP32's ADC specs?

The ESP32's analog-to-digital converter (ADC) produces integer readings from 0 to 4095, which corresponds to 12-bit resolution (2¹² = 4096 discrete steps).

ADC Spec Value
Resolution 12-bit
Output range 0 – 4095

For efficient data storage, note that two 12-bit samples can be packed into three bytes (24 bits total) rather than two separate 2-byte integers (32 bits). At high sampling rates that 25% space saving adds up. For example, moving from 2-byte to 3-byte-per-2-samples storage raises the sustainable logging rate from around 20 Hz to around 27 Hz on 4 MB of flash over a 14-hour window.

What peripheral interfaces does the ESP32 include?

The ESP32 provides hardware-backed I2C, SPI, and UART interfaces. Hardware implementations matter because they handle bus timing in dedicated circuitry, freeing the CPU for other work and avoiding the jitter that software bit-banged implementations produce on a busy processor.

Interface Typical Use
I2C Sensors, OLED displays, low-speed peripherals
SPI External flash, high-speed sensors, TFT displays
UART Debug output, serial communication

Having a UART available for debug output is particularly useful during development — it lets you monitor firmware behaviour without interfering with the main application bus.

Gotchas and safe usage notes

External flash is a real dependency. Because the ESP32 boots from external SPI flash in most configurations, that flash chip must be present, correctly wired, and reliable. On pre-built modules this is handled for you; on bare-chip designs it is your responsibility.

Wi-Fi and BLE are not suited for hard real-time radio control. Both protocols maintain connection state and retry lost packets. This is desirable for data integrity in IoT work, but it introduces unpredictable latency. If your application cannot tolerate delayed or retransmitted commands — remote-controlled vehicles are the clearest example — use a purpose-built radio module instead.

Radio documentation has gaps. The ESP32's lower-level radio APIs have historically had less documentation and community exploration than the high-level Wi-Fi and BLE APIs. If you need non-standard radio modes or raw packet access, plan extra research time.

High DMIPS does not guarantee hard real-time performance. At 240 MHz and 600 DMIPS the ESP32 benchmarks well above many competitors, but benchmark numbers do not account for Wi-Fi stack interrupt load, FreeRTOS scheduling jitter, or the latency introduced when the CPU stalls on external flash reads. For tight control loops, profile actual interrupt response times in your application rather than relying on headline specs.

Treat experimental BLE features carefully. Several BLE 5.2 and later features in ESP-IDF — including LE Isochronous Channels, LE Power Control, and Channel Sounding — are marked experimental. They are functional enough for evaluation but may behave unexpectedly in edge cases. Pin your ESP-IDF version and re-test when upgrading if you depend on any experimental feature.

Frequently asked questions

How fast is the ESP32 CPU?

The ESP32 runs at up to 240 MHz and achieves up to 600 DMIPS, which is significantly faster than common alternatives like the STM32-F3 at around 90 DMIPS.

What BLE version does the ESP32 support?

Via ESP-IDF with either the Bluedroid or NimBLE host stack, the ESP32 supports features from BLE 4.2 through BLE 6.0, though many 5.2 and later features are currently experimental.

Does the ESP32 have built-in flash memory?

Not typically. The ESP32 usually boots from an external SPI flash chip, unlike STM32 or AVR parts that include flash on the die. Dev board modules bundle this flash inside their shielded package.

What is the ESP32's ADC resolution?

The ESP32 ADC is 12-bit, producing readings from 0 to 4095.

Can I use the ESP32 for real-time remote control of a vehicle?

It is not a good choice for that. Wi-Fi and BLE both use session-based, retransmitting protocols that add latency — a problem for live vehicle control where you want stale commands dropped, not queued and retried.

Bottom line

The ESP32 delivers genuine processing muscle — 240 MHz and 600 DMIPS — alongside integrated Wi-Fi and Bluetooth with broad BLE spec coverage from 4.2 through emerging 6.x features. The reliance on external SPI flash and the session-oriented behaviour of its wireless radios are constraints worth planning around from the start, but for the wide range of IoT sensing, home automation, and data logging projects that define maker work, it remains a strong and well-supported choice.

Sources

github.comMajor Feature Support Status (esp-idf docs)github.com:orphan: (esp-idf docs)stackoverflow.comEfficient memory usage for writing files with digits on ESP32 using MicroPythonelectronics.stackexchange.comWhy isn't the ESP32 used for quadcopter flight control?

This guide summarises the public sources listed above in our own words. Check the original documentation before relying on exact figures.