ESP32
ESP32 is a series of low-cost, low-power system on a chip microcontrollers with integrated Wi-Fi and dual-mode Bluetooth. The ESP32 series employs a Tensilica Xtensa LX6 microprocessor in both dual-core and single-core variations and includes built-in antenna switches, RF balun, power amplifier, low-noise receive amplifier, filters, and power-management modules. ESP32 is created and developed by Espressif Systems, a Shanghai-based Chinese company, 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 32-bit LX6 microprocessor, operating at 160 or 240 MHz and performing at up to 600 DMIPS
- * Ultra low power co-processor
- Memory: 520 KiB SRAM
- Wireless connectivity:
- * Wi-Fi: 802.11 b/g/n
- * Bluetooth: v4.2 BR/EDR and BLE
- Peripheral interfaces:
- * 12-bit SAR ADC up to 18 channels
- * 2 × 8-bit DACs
- * 10 × touch sensors
- * 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 IEEE 1588 Precision Time Protocol support
- * CAN bus 2.0
- * Infrared remote controller
- * Motor PWM
- * LED PWM
- * Hall effect sensor
- * Ultra low power analog pre-amplifier
- Security:
- * IEEE 802.11 standard security features all supported, including WFA, WPA/WPA2 and WAPI
- * Secure boot
- * Flash encryption
- * 1024-bit OTP, up to 768-bit for customers
- * Cryptographic hardware acceleration: AES, SHA-2, RSA, elliptic curve cryptography, random number generator
- 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
QFN packaged chip and module
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.Identifier | Processor cores | Embedded flash memory | Package size | Description |
ESP31B | 2 | 0 | 6 mm×6 mm | Pre-release SoC used for beta testing; no longer available. |
2 | 0 | 6 mm×6 mm | Initial production release chip of the ESP32 series. | |
ESP32-D0WD | 2 | 0 | 5 mm×5 mm | Smaller physical package variation similar to ESP32-D0WDQ6. |
ESP32‑D2WD | 2 | 2 | 5 mm×5 mm | 2 MiB embedded flash memory variation. |
ESP32-U4WDH | 1 | 4 | 5 mm×5 mm | Single-core processor and 4 MiB embedded flash memory variation. |
ESP32‑S0WD | 1 | 0 | 5 mm×5 mm | Single-core processor variation. |
Module
The ESP32-PICO-D4 system in package module combines 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.Identifier | Processor cores | Embedded flash memory | Package size | Description |
ESP32-PICO-D4 | 2 | 4 | 7 mm×7 mm | Includes ESP32 chip, crystal oscillator, flash memory, filter capacitors, and RF matching links. |
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.Vendor | Name | Antenna | Flash memory | pSRAM | Description |
Espressif | ESP-WROOM-03 | 4 | 0 | Discontinued. Limited distribution, pre-production module created by Espressif for beta testing purposes; this module used the ESP31B, the beta testing chip for the ESP32 series. FCC Part 15.247 tested . | |
Espressif | ESP32-WROOM-32 | PCB trace | 4 | 0 | First publicly available ESP32 module board created by Espressif. FCC Part 15.247 tested. Based on ESP32-D0WDQ6 chip. Originally named "ESP-WROOM-32". |
Espressif | ESP32-WROOM-32D | PCB trace | 4 | 0 | Revision of the ESP-WROOM-32 module which uses an ESP32-D0WD chip instead of an ESP32-D0WDQ6 chip. Originally named "ESP-WROOM-32D". |
Espressif | ESP32-SOLO-1 | PCB trace | 4 | 0 | Similar to the ESP32-WROOM-32D module, but uses the single-core ESP32-S0WD chip instead of the dual-core ESP32-D0WD. |
Espressif | U.FL socket | 4 | 0 | Alternative to the ESP-WROOM-32D module which has a U.FL connector for external antenna in lieu of a PCB trace antenna. | |
Espressif | PCB trace | 4 | 4 | ESP32 module board with 4 MiB pSRAM created by Espressif. FCC part 15.247 tested. Uses 40 MHz crystal oscillator. Does not include U.FL connector. Based on ESP32-D0WDQ6 chip. Since June 2018, new modules have been upgraded to 8 MiB pSRAM. | |
Espressif | U.FL socket, PCB trace | 4 | 4 | Variation of ESP32-WROVER module configured to use an on-board U.FL compatible connector. PCB trace antenna not connected by default. | |
Espressif | PCB trace | 4 | 8 | Revision of ESP32-WROVER module with 8 MiB pSRAM operating at 3.3V and ESP32-D0WD. FCC part 15.247 tested. Does not include U.FL connector. | |
Espressif | U.FL socket, PCB trace | 4 | 8 | Variation of ESP32-WROVER-B module configured to use an on-board U.FL compatible connector. PCB trace antenna not connected by default. | |
Ai-Thinker | ESP32-S | PCB trace | 4 | 0 | Ai-Thinker's equivalent to Espressif's ESP-WROOM-32 module. Previously branded as "ESP-32S" with the hyphen before "32S", the initial release of the ESP-32S module replaced the previously announced, but never released, ESP3212 module. |
Ai-Thinker | ESP32-A1S | U.FL socket, PCB trace | 4 | 4 | Ai-Thinker's equivalent to Espressif's ESP32-WROVER series module. |
AnalogLamb | ESP-32S-ALB | PCB trace | 4 | 0 | Clone of the ESP-32S module. Seen with a green solder mask coating. |
AnalogLamb | ALB-WROOM | PCB trace | 16 | 0 | Variation of ESP-32S-ALB with 16 MiB of flash memory. |
AnalogLamb | ALB32-WROVER | PCB trace | 4 | 4 | ESP32 module board with 4 MiB pSRAM with the same footprint as the ESP-WROOM-32 module. |
DFRobot | ESP-WROOM-32 | PCB trace | 4 | 0 | Module board similar to Espressif Systems's ESP-WROOM-32, but is not FCC certified, and uses 26 MHz or 32 kHz crystal oscillator. |
eBox & Widora | ESP32-Bit | Ceramic, U.FL socket | 4 | 0 | Module has a ceramic antenna and an U.FL antenna connector. This module has a different footprint than the ESP-WROOM-32/ESP-32S modules. |
Goouuu Tech | ESP-32F | PCB trace | 4 | 0 | Module board similar to Espressif Systems's ESP-WROOM-32. FCC certified. |
IntoRobot | W32 | PCB trace | 4 | 0 | Module similar in appearance to Espressif's ESP-WROOM-32, but footprint pinout differs. |
IntoRobot | W33 | Ceramic, U.FL socket | 4 | 0 | Differs from IntoRobot W32 module in its antenna configuration. |
ITEAD | PSH-C32 | PCB trace | 1 | 0 | Module has unusually small flash memory on board. Also, footprint is unique and differs from all other ESP32 modules. |
Pycom | W01 | 8 | 4 | OEM module version of the WiPy 2.0. Supports Wi-Fi and Bluetooth. FCC ID 2AJMTWIPY01R. | |
Pycom | L01 | 8 | 4 | OEM module version of the LoPy. Supports Wi-Fi, Bluetooth, and LoRa. FCC ID 2AJMTLOPY01R. | |
Pycom | L04 | 8 | 4 | OEM module version of the LoPy4. Supports Wi-Fi, Bluetooth, LoRa, and Sigfox. | |
Pycom | S01 | 8 | 4 | Discontinued. OEM module version of the SiPy. Supports Wi-Fi, Bluetooth, and Sigfox. | |
Pycom | G01 | 8 | 4 | OEM module version of the GPy. Supports Cellular LTE-CAT M1/NB1, Wi-Fi and Bluetooth. | |
u-blox | NINA-W131 | 2 | 0 | Belongs to the u-blox NINA-W13 series of Wi-Fi modules. | |
u-blox | NINA-W132 | PIFA | 2 | 0 | Belongs to the u-blox NINA-W13 series of Wi-Fi modules. On board planar inverted-F antenna is shaped metal, not a PCB trace. |
Development and other boards
Development & break-out boards extend wiring and may add functionality, often building upon ESP32 module boards and making them easier to use for development purposes.Vendor | Name | Surface-mount module used | Description |
Espressif | ESP_Module_Testboard | ESP-WROOM-03 | Break-out board included with ESP-WROOM-03 beta modules. |
Espressif | Development & demonstration board created by Espressif. | ||
Espressif | ESP32-DevKitC | ESP-WROOM-32 | Compact development board created by Espressif. Silkscreen labeling on PCB reads "Core Board". |
Espressif | ESP-WROVER-KIT | ESP-WROOM-32 or ESP32-WROVER | Large development board created by Espressif. Previously named ESP32-DevKitJ. |
Espressif | ESP32-PICO-KIT | ESP32-PICO-D4 | Small development board created by Espressif. FCC ID 2AC7Z-ESP32PICOKIT. |
Adafruit | HUZZAH32 | ESP-WROOM-32 | Also referred to as the "ESP32 Feather Board", the HUZZAH32 is a compact development board/module that is compatible with the Adafruit Feather family of products. |
Banana pi | BPI:bit | ESP-32S | a development for Webduino and arduino |
Banana pi | BPI-UNO32 | ESP32-S | a development board for arduino |
Ai-Thinker | NodeMCU-32S | ESP-32S | NodeMCU-like development board. |
Ai-Thinker | ESP32-CAM | ESP32-S | Compact development board with SD card slot and ribbon cable interface intended for camera connection. |
AnalogLamb | ESP32 Development Board | ESP-32S-ALB or ALB-WROOM | Development board similar to Espressif's ESP32-DevKitC with on board a CP2102 USB/serial bridge. 4 MiB variation uses ESP-32S-ALB; 16 MiB variation uses ALB-WROOM module. |
AnalogLamb | Maple ESP32 | ESP-32S-ALB | Development board with Arduino-style connections and CP2104 USB/serial interface. |
April Brother | ESPea32 | † | Development board with perfboard area that may be optionally cut-off. |
ArduCAM | ESP32 UNO | ESP-32S | Arduino Uno-like development board based on ESP32 IoT UNO framework with support for SPI ArduCAM, battery pins and uSD card slot. |
DoIT | ESPduino32 | ESP-WROOM-32 | Full-featured Arduino Uno-like development board compatible with Arduino Shields. It also adds additional SPI & IO pins. The board is a clone of WeMos D1 R32 with a USB Type B socket. |
EzSBC | ESP32-01 Breakout and Development Board | ESP-WROOM-32 | Full-featured development board with two tri-color LEDs and fits on a breadboard. |
Gravitech & MakerAsia | Nano32 | † | Development board that directly incorporates the ESP32 chip. |
HydraBus | HydraESP32 | ESP-WROOM-32 or ESP-32S | HydraESP32 HydraBus v1.1 Rev1 shield/breakout board for ESP-WROOM-32 or ESP-32S. This shield can be used with or without a HydraBus board. |
Noduino | Quantum | † | Arduino-style development board that directly incorporates the ESP32 chip. |
Pycom | WiPy | † | MicroPython programmable Wi-Fi & Bluetooth IoT development platform with a 1 km Wi-Fi range. WiPy versions 2.0 and 3.0 use ESP32. |
Pycom | LoPy | † | Triple network Pycom board featuring LoRa, Wi-Fi, and BLE. |
Pycom | LoPy4 | ? | Quadruple network Pycom board featuring LoRa, Sigfox, Wi-Fi, and BLE. |
Pycom | SiPy | † | Triple network Pycom board featuring Sigfox, Wi-Fi, and BLE. |
Pycom | GPy | † | Triple network Pycom board featuring LTE-M, Wi-Fi, and BLE. |
Pycom | FiPy | † | Quintuple network Pycom board featuring LTE-M, LoRa, Sigfox, Wi-Fi, and BLE. |
SparkFun | ESP32 Thing | † | Compact development board with FTDI FT231x USB/serial interface and LiPo charger built-in. |
SunDUINO | ESP32 MiniBoard | ESP-WROOM-32 | Breakout compatible with the Espressif ESP32-DevKitC. Lacks on-board USB-UART. |
SunDUINO | ESP32 MiniBoard v2 | ESP32-Wrover-B/IB | Breakout board with Silabs CP2102, battery charger. Compatible with Espressif DEVkit. |
SunDUINO | ESP32 SunDUINO | ESP-WROOM-32 or ESP-32S | Arduino-style development board. Lacks on-board USB-UART. |
SwitchDoc Labs | BC24 | ESP-WROOM-32 | ESP32 Breakout with 24 SK6812RGBW LEDs with Grove Connectors for easy prototyping. Comes with USB-UART and Feather compatible pinout. |
Watterott | ESP-WROOM32-Breakout | ESP-WROOM-32 | Breakout which is compatible with the Espressif ESP32-DevKitC. |
WEMOS | LOLIN32 | ESP-WROOM-32 | |
WEMOS | LOLIN32 Lite | † | ESP32-D0WDQ6 |
WEMOS | LOLIN32 Pro | ESP32-WROVER | MicroSD card slot |
WEMOS | LOLIN D32 | ESP-WROOM-32 | |
WEMOS | LOLIN D32 Pro | ESP32-WROVER | I2C port, TFT port and Micro SD Card slot |
Widora | Air | † | Compact ESP32 development board. |
† ESP32 SoC incorporated directly onto development board; no module board used.
Programming
Programming languages, frameworks, platforms, and environments used for ESP32 programming:- Arduino IDE with the ESP32 Arduino Core
- – official Espressif development framework for ESP32
- MicroPython A lean implementation of Python 3 for microcontrollers
- Espruino – JavaScript SDK and firmware closely emulating Node.js
- — includes JavaScript language and library support for the ESP32
- 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
- - Coding in.NET C#, deploy and debug from Visual Studio
- NodeMCU – Lua-based firmware
- – IDE designed for use with Pycom devices; handles firmware upgrades and includes MicroPython REPL console
- Zerynth – Python for IoT and microcontrollers, including the ESP32
-
Reception and use
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.
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.