The ESP32 can operate as a standalone system or as a slave device to a host MCU, reducing communication stack overhead on the central application processor. It can interface with other systems to provide Wi-Fi and Bluetooth functionality via its SPI/SDIO or I²C/UART interfaces. The ESP32 / ESP8266 was designed by Espressif Systems and is manufactured by TSMC using their 40 nm process
The main differences are that the ESP32 has significantly more processing power (a dual-core CPU), more memory, and Bluetooth, while the ESP8266 is older, single-core, and Wi-Fi-only. The ESP32 is better suited to complex projects due to its improved performance and peripheral features, while the ESP8266 is a more affordable choice for simple IoT applications.
| Type of ESP32 | CPU | Max clock speed | Connectivity | RAM | GPIO | ADC | Security | Peripherials/Note |
|---|---|---|---|---|---|---|---|---|
| ESP8266 Cost-effective and highly integrated Wi-Fi MCU for IoT applications ESP8266MOD Lolin D1 Mini | Single-core L106 32-bit RISC | 160 MHz | Wi-Fi only | 160KB SRAM | 17 | 10-bit ADC | TLS encryption, validate certificates | SPI, I2C, and UART, no TWAI |
| ESP32 Integrated Wi-Fi and Bluetooth connectivity for a wide-range of applications | Dual-core LX6/LX7 | 240 MHz | Wi-Fi and Bluetooth (BLE) | 520KB | 34 | 12-bit ADC | Secure Boot, Flash Encryption, HMAC | Ethernet, USB, touch sensors, CAN, and hall sensor, 1 TWAI |
| ESP32-DOWD Wide variety of applications, ranging from low-power sensors networks ESP32-WROOM-32D | Dual-core LX6 | 240 MHz | Wi-Fi and Bluetooth (BLE) | 520KB | 32 | two 12-bit SAR ADC | Secure Boot, Flash Encryption | SD card, UART, SPI, SDIO, I2C, LED PWM, Motor PWM, I2S, IR, pulse counter, GPIO, capacitive touch sensor, ADC, DAC, TWAI® (compatible with ISO 11898-1, i.e., CAN Specification 2.0) |
| ESP32-C2 Small-sized, cost-effective SoC | Single-core RISC-V | 120 MHz | Wi-Fi 2.4 GHz, Bluetooth 5 (LE) | 272 KB SRAM 576 KB ROM | 20 | 12-bit ADC | Secure Boot, Flash Encryption | SPI, UART, I2C, LED PWM controller, General DMA controller (GDMA), SAR ADC, no TWAI |
| ESP32-C3 A cost-effective RISC-V MCU with Wi-Fi and Bluetooth 5 (LE) connectivity for secure IoT applications | Single-core RISC-V | 160 MHz | Wi-Fi 2.4 GHz, Bluetooth 5 (LE) | 400 KB SRAM 384 KB ROM | 22 | 12-bit ADC | Secure Boot, Flash Encryption | Cost-sensitive applications, Pin compatible with ESP8266, 1 TWAI |
| ESP32-C5 2.4 and 5 GHz dual-band Wi-Fi 6 MCU, along with Bluetooth 5 (LE) and 802.15.4 for secure and reliable connectivity | Single-core 32-bit RISC-V | 240 MHz | Wi-Fi 6 2.4/5 GHz, Bluetooth 5 (LE), Thread, Zigbee, Matter, HomeKit, MQTT | 384KB SRAM 320KB ROM | 29 | 12-bit ADC | Secure boot, flash, and PSRAM encryption, and cryptographic accelerators | ADC, SPI, UART, I2C, I2S, RMT, PWM, 2 TWAI |
| ESP32-C6 A low-power and cost-effective 2.4 GHz Wi-Fi 6 + Bluetooth 5 (LE) + Thread/Zigbee SoC | Single-core RISC-V | 160 MHz | Wi-Fi 6 2.4 GHz, Bluetooth 5.3 (LE), Thread, Zigbee, Matter | 512 KB SRAM 320 KB ROM | 30 (QFN40) or 22 (QFN32) | 12-bit ADC | RSA-3072 support | Matter Gateways, Thread Border Routers or Zigbee Matter Bridges, SPI, UART, I2C, I2S, RMT, TWAI, PWM, SDIO, Motor Control PWM, 2 TWAI |
| ESP32-C61 Delivering affordable Wi-Fi 6 connectivity | Single-core RISC-V | 160 MHz | Wi-Fi 6 2.4 GHz, Bluetooth 5.3 (LE) + Mesh 1.1, Matter | 320 KB SRAM 256 KB ROM | 30 (QFN40) or 22 (QFN32) | 12-bit ADC | secure boot, flash and PSRAM encryption | I2C, I2S, SPI, UART, LED PWM, 2 TWAI, ADC, GPIO, LP IO, Timers, and GDMA. Specialized peripherals include the Event Task Matrix (ETM) for automation-triggered tasks and the Analog Voltage Comparator for easy zero-crossing detection |
| ESP32-H2 Low power and secure connectivity | Single-core 32-bit RISC-V | 96 MHz | Wi-Fi 2.4 GHz, Bluetooth 5 (LE), Thread, Zigbee, Matter | 320KB SRAM 128KB ROM | 19 | 12-bit ADC | Secure Boot, Flash Encryption | ADC, SPI, UART, I2C, I2S, RMT, 1 TWAI, GDMA and LED PWM |
| ESP32-S2 Secure and Powerful Wi-Fi MCU with Numerous I/O Capabilities Wemos S2 mini | Single-core Xtensa LX7 | 240 MHz | Wi-Fi 2.4 GHz, USB OTG | 320KB SRAM 128KB ROM | 43 | 2 × 13-bit SAR ADC | RSA-3072 support | Camera Interface, fit for lower-power applications like secure IoT |
| ESP32-S3 Powerful AI acceleration Reliable security features ESP32-S3 Super Mini | Dual-core Xtensa LX7 | 240 MHz | Wi-Fi 2.4 GHz, Bluetooth 5 (LE), USB OTG | 512KB SRAM 384KB ROM | 45 | 2 × 12-bit SAR ADC | RSA-4096 support | Camera Interface, Accelerate machine learning applications |
| ESP32-P4 High-performing SoC offering extensive IO connectivity, HMI, and security | Dual-core RISC-V | 400 MHz | Wi-Fi 6, Bluetooth 5 (LE), USB OTG, ACK, AWS IoT ExpressLink, etc | 768KB SRAM | 55 | - | Secure Boot, Flash Encryption, cryptographic accelerators, and TRNG ensure | SPI, I2S, I2C, LED PWM, MCPWM, RMT, ADC, UART, 3 TWAI. Additionally, it supports USB OTG 2.0 HS, Ethernet, and SDIO Host 3.0. Parallel display and camera interfaces. |
A mini wifi board with 4MB flash based on ESP-8266EX / MOD
For most ESP32 boards, the UART pin assignment is as follows:
| UART Port | TX | RX | Remarks |
|---|---|---|---|
| UART0 | GPIO 1 | GPIO 3 | Used for Serial Monitor and uploading code; Can be assigned to other GPIOs |
| UART1 | GPIO 10 | GPIO 9 | Must be assigned to other GPIOs |
| UART2 | GPIO 17 | GPIO 16 | Can be assigned to other GPIOs |
About UART1 (GPIO 9 and GPIO 10) – these GPIOs are connected to the ESP32 SPI flash memory, so you can’t use them like that. To use UART1 to communicate with other devices, you must define different pins using the HardwareSerial library.
For most ESP32 boards, the UART pin assignment is as follows:
| UART Port | TX | RX | Remarks |
|---|---|---|---|
| UART0 | GPIO 1 | GPIO 3 | Used for Serial Monitor and uploading code; Can be assigned to other GPIOs |
| UART1 | GPIO 10 | GPIO 9 | Must be assigned to other GPIOs |
| UART2 | GPIO 17 | GPIO 16 | Can be assigned to other GPIOs |
About UART1 (GPIO 9 and GPIO 10) – these GPIOs are connected to the ESP32 SPI flash memory, so you can’t use them like that. To use UART1 to communicate with other devices, you must define different pins using the HardwareSerial library.
For most ESP32 boards, the UART pin configuration is as follows:
| UART Port | TX | RX | Remarks |
|---|---|---|---|
| UART0 | GPIO 1 | GPIO 3 | Used for Serial Monitor and uploading code; Can be assigned to other GPIOs |
| UART1 | GPIO 10 | GPIO 9 | Must be assigned to other GPIOs |
| UART2 | GPIO 17 | GPIO 16 | Can be assigned to other GPIOs |
About UART1 (GPIO 9 and GPIO 10) – these GPIOs are connected to the ESP32 SPI flash memory, so you can’t use them for other purposes. To use UART1 to communicate with other devices, you need to assign different pins using the HardwareSerial library.
Choose the board LOLIN S2 MINI or LOLIN S2 PICO.
Problem: When connecting the unit to Windows 10, the USB connection cycles on and off.
Solution: To fix a disconnected ESP32-C3 Super Mini on Windows 10, first try a manual boot mode: press and hold the boot button, then press and release the reset button, and finally release the boot button.
It includes both RST (reset) and BOOT buttons. The BOOT button puts the board into bootloader mode for uploading code, while the RST button resets the board—useful for restarting and running newly uploaded code.
Using an ESP32-S3, the UART assignment is completely different from other ESP modules. The following table shows the default RX and TX pins for UART0, UART1, and UART2 on the ESP32-S3:
| UART Port | TX | RX | Remarks |
|---|---|---|---|
| UART0 | GPIO 43 | GPIO 44 | Cannot be changed |
| UART1 | GPIO 17 | GPIO 18 | Can be assigned to other GPIOs |
| UART2 | - | - | Assign any pins of your choice |
https://www.espressif.com/en/products/
https://www.wemos.cc/en/latest/tutorials/s2/get_started_with_arduino_s2.html
https://documentation.espressif.com/esp32-s2_datasheet_en.pdf
https://documentation.espressif.com/esp32-wroom-32d_esp32-wroom-32u_datasheet_en.pdf
This page has been accessed for: Today: 4, Until now: 40