ESP32. ESP32 is a series of low-cost, low-power system-on-chip microcontrollers with integrated Wi-Fi and dual-mode Bluetooth. The ESP32 series employs either a Tensilica Xtensa LX6 microprocessor in both dual-core and single-core variations, an Xtensa LX7 dual-core microprocessor, or a single-core RISC-V microprocessor and includes built-in antenna switches, RF balun, power amplifier, low-noise receive amplifier, filters, and power-management modules. It is commonly found either on device-specific PCBs or on a range of development boards with GPIO pins and various connectors depending on the model and manufacturer of the board. 

ESP32 is created and developed by Espressif Systems, a Chinese company based in Shanghai, and is manufactured by TSMC using their 40 nm process. It is a successor to the ESP8266 microcontroller.

Features 

Features of the ESP32 include the following:
 Processors:
 CPU: Xtensa dual-core (or single-core) 32-bit LX6 microprocessor, operating at 160 or 240 MHz and performing at up to 600 DMIPS
 Ultra-low-power (ULP) co-processor
 Memory: 520 KiB RAM, 448 KiB ROM
 Wireless connectivity:
 Wi-Fi: 802.11 b/g/n
 Bluetooth: v4.2 BR/EDR and BLE (shares the radio with Wi-Fi)
 Peripheral interfaces:
 34 programmable GPIOs
 10 × touch sensors (capacitive sensing GPIOs)
 2 × 12-bit SAR ADCs, up to 18 channels, with four levels of attenuation
 2 × 8-bit DAC (except on ESP32-C3 and ESP32-S3)
 Delta-sigma modulated binary output (up to 8 channels)
 Motor PWM
 LED PWM (up to 16 channels)
 Infrared remote controller (TX/RX, up to 8 channels)
 Pulse counter (capable of full quadrature decoding)
 Standard communication interfaces:
 4 × SPI
 2 × I²S interfaces
 2 × I²C interfaces
 3 × UART
 SD/SDIO/CE-ATA/MMC/eMMC host controller
 SDIO/SPI slave controller
 Ethernet MAC interface with dedicated DMA and planned IEEE 1588 Precision Time Protocol support
 CAN bus 2.0
 Security:
 IEEE 802.11 standard security features all supported, including WPA, WPA2, WPA3 (depending on version) and WLAN Authentication and Privacy Infrastructure (WAPI)
 Secure boot
 Flash encryption
 1024-bit OTP, up to 768-bit for customers
 Cryptographic hardware acceleration: AES, SHA-2, RSA, elliptic curve cryptography (ECC), random number generator (RNG)
 Power management:
 Internal low-dropout regulator
 Individual power domain for RTC
 5 μA deep sleep current 
 Wake up from GPIO interrupt, timer, ADC measurements, capacitive touch sensor interrupt

ESP32-xx family 
Since the release of the original ESP32, a number of variants have been introduced and announced. They form the ESP32 family of microcontrollers. These chips have different CPUs and capabilities, but all share the same SDK and are largely code-compatible. Additionally, the original ESP32 was revised (see ESP32 ECO V3, for example).

ESP32 
 Xtensa single-/dual-core 32-bit LX6 microprocessor(s)
 Supports single-precision Floating Point Unit (FPU) 
 Wi-Fi: 802.11 b/g/n
 Bluetooth: v4.2 BR/EDR and BLE (shares the radio with Wi-Fi)
 34 GPIOs
 2 × 12-bit SAR ADCs, up to 18 channels
 2 × 8-bit DAC

ESP32-S2 
 Single-core Xtensa LX7 CPU, up to 240 MHz (With ULP Co-Processor Running at 20Mhz)
 NO Floating Point Unit (no FPU)
 320 KiB SRAM, 128 KiB ROM, and 16 KiB RTC SRAM
 Wi-Fi 2.4 GHz (IEEE 802.11b/g/n)
 No Bluetooth
 43 GPIOs
  2 × 13-bit SAR ADCs, up to 20 channels
  2 × 8-bit DAC
 USB OTG

ESP32-S3 
 Dual-core Xtensa LX7 CPU, up to 240 MHz, and supporting single-precision FPU
 Added instructions to accelerate machine learning applications
 512 KiB SRAM, 384 KiB ROM, and 16 KiB RTC SRAM
 Capable of connecting to external PSRAM and Flash via Quad SPI or Octal SPI, and share the same 32 MiB address space
 Ultra-low-power RISC-V (RV32IMC) coprocessor clocked at 17.5 MHz approximately
 Ultra-low-power FSM coprocessor similar to previous ESP32 and ESP32-S2
 Wi-Fi 2.4 GHz (IEEE 802.11 b/g/n)
 Bluetooth 5 (LE)
 45 GPIOs
 No integrated Ethernet MAC
 2 × 12-bit SAR ADCs, up to 20 channels
 USB OTG

ESP32-C2 
 32-bit RISC-V single-core processor that operates at up to 120 MHz, implementing RV32IMC ISA 
 State-of-the-art power and RF performance
 576 KB ROM, 272 KB SRAM (16 KB for cache) on the chip
 14 GPIOs
 SPI, UART, I2C, LED PWM controller, General DMA controller (GDMA), SAR ADC, Temperature sensor

ESP32-C3 

 Single-core 32-bit RISC-V CPU, up to 160 MHz
 400 KiB SRAM, 384 KiB ROM, and 8 KiB RTC SRAM
 Wi-Fi 2.4 GHz (IEEE 802.11b/g/n)
 Bluetooth 5 (LE)
 22 / 16 GPIOs
 2 × 12-bit SAR ADC
 Pin compatible with ESP8266

ESP32-C6 
 High performance 32-bit RISC-V CPU, up to 160 MHz, implementing RV32IMAC
 Low-power 32-bit RISC-V CPU, up to 20 MHz, implementing RV32IMAC
 512 KiB SRAM and 320 KiB ROM
 IEEE 802.11ax (Wi-Fi 6) on 2.4 GHz, supporting 20 MHz bandwidth in 11ax mode, 20 or 40 MHz bandwidth in 11b/g/n mode
 IEEE 802.15.4 (Thread + Zigbee)
 Bluetooth 5.3 (LE)
 30 (QFN40) or 22 (QFN32) GPIOs

ESP32-H2 
 Single-core 32-bit RISC-V CPU, up to 96 MHz
 256 KB SRAM
 IEEE 802.15.4 (Thread + Zigbee)
 Bluetooth 5.3 (LE)
 No Wi-Fi support.
 19 GPIOs

Announced

ESP32-C5 
 Single-core 32-bit RISC-V CPU, up to 240 MHz
 384 KB SRAM and 320 KB ROM
 IEEE 802.11ax (Wi-Fi 6) on 2.4 and 5 GHz, supporting 20 MHz bandwidth in 11ax mode, 20 or 40 MHz bandwidth in 11b/g/n mode
 IEEE 802.15.4 (Thread + Zigbee)
 Bluetooth 5 (LE)
 Over 20 GPIOs

ESP32-P4 
 High performance dual-core 32-bit RISC-V CPU, up to 400 MHz
 Implementing RV32IMAFC_Zicsr_Zifencei and custom AI/vector instructions.
 Supports single-precision Floating Point Unit (FPU).
 Low performance single-core 32-bit RISC-V CPU, up to 40 MHz
 Implementing RV32IMAC_Zicsr_Zifencei ISA extensions.
 768 KiB SRAM on high-performance core system.
 8 KiB TCM on high-performance core system.
 32 KiB SRAM on low-power subsystem.
 Support PSRAM.
 Integrated hardware accelerators for various media encoding protocols, including H.264.
 Wi-Fi and Bluetooth are not implemented.
 If a wireless connection is required, it can be easily connected to the ESP32-C/S/H series.
 Over 50 GPIOs

QFN packaged chip and module 
ESP32 is housed in quad-flat no-leads (QFN) packages of varying sizes with 49 pads. Specifically, 48 connection pads along the sides and one large thermal pad (connected to ground) on the bottom.

Chips 
The ESP32 system on a chip integrated circuit is packaged in both 6 mm × 6 mm and 5 mm × 5 mm sized QFN packages.

In 2020, chips ESP32-D0WDQ6 and ESP32-D0WD also got a V3 version (ESP32 ECO V3), which fixes some of the bugs and introduces improvements over the previous versions.

Modules 

The ESP32 PICO system in package modules combine an ESP32 silicon chip, crystal oscillator, flash memory chip, filter capacitors, and RF matching links into a single 7 mm × 7 mm sized QFN package.

The first released PICO was the ESP32-PICO-D4 with 2 CPUs at 240MHz, 4MiB internal flash, a 40MHz oscillator and 34 GPIOs.

Later, in 2020, the ESP32-PICO-V3 and ESP32-PICO-V3-02 modules were introduced both based on the ESP32 ECO V3 wafer. 

In 2022 the ESP32-S3-PICO-1 module was introduced with USB OTG and internal PSRAM.

Printed circuit boards

Surface-mount module boards 
ESP32 based surface-mount printed circuit board modules directly contain the ESP32 SoC and are designed to be easily integrated onto other circuit boards. Meandered inverted-F antenna designs are used for the PCB trace antennas on the modules listed below. In addition to flash memory, some modules include pseudostatic RAM (pSRAM).

Development and other boards 

Development and break-out boards extend wiring and may add functionality, often building upon ESP32 module boards and making them easier to use for development purposes, especially with breadboards.

† ESP32 SoC incorporated directly onto development board; no module board used.

Programming 
Programming languages, frameworks, platforms, and environments used for ESP32 programming:

 ESP-IDF – Espressif’s official IoT Development Framework for the ESP32, ESP32-S, ESP32-C and ESP32-H series of SoCs. 
 Arduino-ESP32 – Arduino core for the ESP32, ESP32-S2, ESP32-S3 and ESP32-C3.
 Espruino – JavaScript SDK and firmware closely emulating Node.js
 MicroPython (and CircuitPython) – lean implementation of Python 3 for microcontrollers
 Mongoose OS – an operating system for connected products on microcontrollers; programmable with JavaScript or C. A recommended platform by Espressif Systems, AWS IoT, and Google Cloud IoT.
 mruby for the ESP32
 NodeMCU – Lua-based firmware
 Rust
 Swift
 Visual Studio Code with the officially supported Espressif Integrated Development Framework (ESP-IDF) Extension
 Zerynth – Python for IoT and microcontrollers, including the ESP32
 Matlab Simulink

Reception and use 

Commercial, industrial and academic uses of ESP32:

Use in commercial devices 
 Alibaba Group's IoT LED wristband, used by participants at the group's 2017 annual gathering. Each wristband operated as a "pixel", receiving commands for coordinated LED light control, allowing formation of a "live and wireless" screen.
 DingTalk's M1, a biometric attendance-tracking system.
 LIFX Mini, a series of remotely controllable, LED based light bulbs.
 Pium, a home fragrance and aromatherapy device.
 HardKernel's Odroid Go, an ESP32 based handheld gaming device kit made to commemorate Odroid's 10th anniversary.
 Playdate, a handheld video game console jointly developed by Panic Inc. and Teenage Engineering.
 Octopus Energy Mini, an ESP32-C6 based real-time energy monitor.

Use in industrial devices 
 TECHBASE's Moduino X series X1 and X2 modules are ESP32-WROVER / ESP32-WROVER-B based computers for industrial automation and monitoring, supporting digital inputs/outputs, analog inputs, and various computer networking interfaces.
 NORVI IIOT Industrial Devices with ESP32-WROVER / ESP32-WROVER-B SOC for industrial automation and monitoring with digital inputs, analog inputs, relay outputs and multiple communications interfaces. Supports LoRa and Nb-IoT as expansion modules.

Academic uses 
 ESP32 devices are utilized in educational settings  and academic research projects. For example, these devices have been used to develop a smart home system designed to monitor and control the charging of electric vehicles, considering the current consumption of other electrical appliances and the contracted power capacity.

See also 
 Internet of things

References

External links 
 Espressif ESP32 Overview
 Espressif ESP32 Resources
 Espressif ESP-IDF Programming Guide
 Espressif ESP32 Forums
 https://gist.github.com/sekcompsci/2bf39e715d5fe47579fa184fa819f421 

Microcontrollers
Microprocessors made in China