Specifications

This lesson covers the specifications of the original/classic ESP32 - the chip found in modules like the ESP32-WROOM-32, which is what the rest of this track assumes. Espressif has since released newer variants (ESP32-S2, ESP32-S3, ESP32-C3, and others) which are different chips with their own differences in pinout and peripherals - they are not covered by this track.

This page's code and wiring instructions are a preview, not something you can run right on this website - this server runs PHP, not the ESP32's own firmware.

Full Specification Table

SpecValue
CPUDual-core Tensilica Xtensa LX6, up to 240MHz
RAM520KB internal SRAM
Flash storageExternal SPI flash chip, commonly 4MB on the popular ESP32-WROOM-32 module - exact size varies by module SKU (2MB/4MB/8MB/16MB variants all exist)
Wi-Fi802.11 b/g/n, 2.4GHz band only (no 5GHz), up to 150Mbps, supports 20MHz and 40MHz channel bandwidth
BluetoothBluetooth v4.2 BR/EDR (Classic Bluetooth) and Bluetooth LE (BLE), dual-mode
Supply voltageRecommended 2.3V-3.6V; 3.3V is the typical/standard operating voltage
GPIO logic level3.3V logic - NOT 5V tolerant
ADCADC1: 8 channels, ADC2: 10 channels (18 total)
DAC2 channels (GPIO25, GPIO26), 8-bit resolution
Capacitive touch pins10 pins total

What These Specs Actually Mean For You

Dual-core @ up to 240MHz - a single-core microcontroller running your loop has to interleave every task on the same core: reading a sensor, updating an LED, and (if it has wireless at all) servicing the radio all compete for the same cycles. The ESP32's second core changes that picture in practice - it is common for one core to be occupied largely with Wi-Fi/BLE radio-stack housekeeping while your own application logic runs on the other core, so your loop is less likely to stall just because the radio is busy. You do not have to manage this manually to get the benefit; it is simply more headroom than a single-core chip has.

520KB SRAM - generous for a microcontroller (far more than a classic 8-bit Arduino), but still tiny compared to a computer. It is enough for networking buffers, a reasonable number of variables and small data structures, and modest string handling - not for loading large files into memory or running anything resembling desktop software.

External flash - this is where your compiled program (and, in MicroPython's case, your script files) actually lives between power cycles, since SRAM is cleared on every reboot. A larger flash chip (8MB/16MB variants) matters mainly if your program itself is large, or if you plan to store a filesystem of assets on it - a basic blink-an-LED sketch will fit comfortably even on the smallest common size.

Wi-Fi at 2.4GHz only - the ESP32 will connect happily to a 2.4GHz Wi-Fi network but cannot see or join a 5GHz-only network. Many home routers broadcast both bands under the same or different network names - if your ESP32 cannot find your Wi-Fi network at all, check whether you are looking at the 5GHz band.

Bluetooth: Two Stacks, One Radio

The ESP32 supports both Classic Bluetooth (BR/EDR) and Bluetooth LE (BLE) - both stacks are genuinely available on the chip, which is unusual for a low-cost microcontroller. That said, they share the same underlying radio hardware, and running heavy Wi-Fi activity at the same time as Bluetooth at full power needs careful coexistence handling in your firmware - it is not something to assume "just works" flawlessly with zero tuning in every scenario. This track's Bluetooth & BLE lesson goes into when to reach for Classic Bluetooth versus BLE.

Voltage warning: the ESP32's GPIO pins are 3.3V logic and are not 5V tolerant. Connecting a 5V signal to a GPIO pin can damage the chip. Many dev boards accept 5V power via USB or a VIN pin because the board has an onboard voltage regulator that steps it down to 3.3V for the chip itself - but that only covers the board's power input, not signals you wire directly into a GPIO pin. The GPIO Pinout & Restrictions lesson covers this in full.
Recap: Dual-core up to 240MHz, 520KB SRAM, external flash (commonly 4MB), 2.4GHz-only Wi-Fi up to 150Mbps, dual-mode Bluetooth (Classic + BLE), 3.3V logic that is not 5V tolerant, and 18 ADC channels plus 2 DAC channels plus 10 touch pins.
Next steps: Head to GPIO Pinout & Restrictions - the most safety-critical lesson in this track.