ESP32 and ESP32-S3 are two popular microcontrollers that are commonly used for Internet of Things (IoT) applications. Both microcontroller boards have some similarities and differences that set them apart from each other. This article covers the differences between the ESP32 board and the latest ESP32-S3.
What is the Difference between ESP32 and ESP32-S3
The ESP32-S3 is an enhanced variant of the ESP32 microchip that comes with additional input/output, onboard USB, and an upgraded version of the two Tensilica cores. It also includes Bluetooth version 5 and a built-in transceiver, along with a full-speed USB OTG interface. Moreover, the ESP32-S3 features a smaller chip size compared to both ESP32 and ESP32-S2.
Overview of ESP32 and ESP32-S3
The ESP32 is a system-on-chip (SoC) microcontroller that was initially released in 2016 and is known for its low-cost and low-power characteristics. It is designed for IoT applications and features a dual-core processor, Wi-Fi, and Bluetooth. ESP32 is based on the Xtensa LX6 microarchitecture, which is a configurable, 32-bit microprocessor core developed by Tensilica.
On the other hand, ESP32-S3 is a dual-core XTensa LX7 MCU, capable of running at 240 MHz. Apart from its 512 KB of internal SRAM, it also comes with integrated 2.4 GHz, 802.11 b/g/n Wi-Fi, and Bluetooth 5 (LE) connectivity, providing long-range support. It has 45 programmable GPIOs and supports a rich set of peripherals. Compared with ESP32, it supports larger, high-speed octal SPI flash, and PSRAM with configurable data and instruction cache.
Let’s now examine the difference between ESP32 and ESP32-S3 in detail.
Processor
The ESP32 has an Xtensa dual-/single core 32-bit LX6 processor while the ESP32-S3 has an Xtensa dual-core 32-bit LX7 processor. The ESP32-S3 has a SRAM of 512 KB compared to the ESP32’s 520 KB.
ESP32 cannot be categorized as a single chip because it includes a series of chips designed for different boards. ESP32 chip mainly features Xtensa single-/dual-core 32-bit LX6 microprocessor(s). Following is the CoreMark score for both cores:
- 1 core at 240 MHz: 504.85 CoreMark; 2.10 CoreMark/MHz
- 2 cores at 240 MHz: 994.26 CoreMark; 4.14 CoreMark/MHz
ESP32-S3 on the other hand is a low-power MCU-based system on a chip (SoC) with integrated 2.4 GHz Wi-Fi and Bluetooth Low Energy (Bluetooth LE). It consists of a high-performance dual-core microprocessor (Xtensa 32-bit LX7), a low-power coprocessor, a Wi-Fi baseband, a Bluetooth LE baseband, an RF module, and numerous peripherals.
Architecture
The ESP32 series uses different processor architectures:
- Tensilica Xtensa LX6 microprocessor in both dual-core and single-core [ESP32]
- Tensilica Xtensa LX7 microprocessor in both single-core and dual-core [ESP32-S2 (single-core), ESP32-S3(dual-core)]
- RISC-V single-core [ESP32-C3]
The ESP32-S3 microcontroller includes two ULP (Ultra-Low Power) coprocessors: ULP-RISC-V and ULP-FSM. Here are the key features of each coprocessor:
ULP-RISC-V has the following features:
- Supports the RV32IMC instruction set, which includes a wide range of instructions for efficient computation.
- Includes thirty-two 32-bit general-purpose registers for storing data during operations.
- Incorporates a 32-bit multiplier and divider for performing multiplication and division operations.
- Supports interrupts, allowing it to respond to specific events or triggers.
- Can be initiated by the CPU (main processor), its dedicated timer, or RTC GPIO (Real-Time Clock General Purpose Input/Output).
ULP-FSM has the following features:
- Supports standard instructions such as arithmetic operations, jumps, and program control instructions for executing specific tasks.
- Includes specialized instructions for onboard sensor measurements, facilitating sensor data acquisition.
- Can be activated by the CPU, its dedicated timer, or RTC GPIO.
Both coprocessors utilize the internal fast RC oscillator as their clock source, enabling them to operate with minimal power consumption.
Wi-Fi
Both ESP32 and ESP32-S3 support Wi-Fi connectivity. However, both these boards have some differences in their Wi-Fi capabilities.
ESP32 supports Wi-Fi protocols (802.11 b/g/n), 2.4 GHz, and features an integrated high-performance antenna. While ESP32-S3 supports 2.4 GHz Wi-Fi (802.11 b/g/n) with HT20/40; up to 150 Mbps.
Bluetooth
Both ESP32 and ESP32-S3 support Bluetooth connectivity. However, both these have slight differences in Bluetooth connectivity.
ESP32 features Bluetooth 4.2, which is an older version of Bluetooth technology. It also features Bluetooth Low Energy (BLE), which is a low-power version of Bluetooth that is designed for IoT applications.
ESP32-S3, on the other hand, features Bluetooth 5.0, which is a newer and more advanced version of the Bluetooth standard. It also features BLE, making it a good choice for battery-powered IoT applications.
Peripheral Devices
Both ESP32 and ESP32-S3 feature a wide range of peripheral devices, including GPIO, UART, I2C, SPI, and more. However, there are some differences in the peripheral devices supported by the two microcontrollers.
ESP32 features a total of 34 GPIO pins, two UART ports, two I2C ports, two SPI ports, and more. It also features a built-in analog-to-digital converter (ADC), which allows it to read analog signals from sensors and other devices.
ESP32-S3, on the other hand, features a total of 26 GPIO pins, one UART port, one I2C port, one SPI port, and more. It also features a built-in ADC, but it is not as advanced as the ADC in ESP32.
Price
Another factor to consider when comparing ESP32 and ESP32-S3 is the price. ESP32 is generally considered to be a low-cost microcontroller, with prices ranging from around $3 to $10 per unit.
ESP32-S3, on the other hand, is a newer and more advanced microcontroller, and as such, it is generally more expensive than ESP32. Prices for ESP32-S3 can range from around $5 to $15 per unit, depending on the specific model and features.
Applications
Both ESP32 and ESP32-S3 are versatile microcontrollers that can be used in a wide range of applications. But there are certain applications where one leads the other.
ESP32 is a good choice for applications that require high processing power, dual-band Wi-Fi, and advanced Bluetooth capabilities. It is best for applications where we need many GPIO pins, UART ports, I2C ports, and SPI ports.
ESP32-S3, on the other hand, is a good choice for applications that require low power consumption, single-band Wi-Fi, and advanced Bluetooth capabilities. It is also a good choice for applications that require a smaller number of GPIO pins, UART ports, I2C ports, and SPI ports.
Comparison of Different ESP32 Models
Feature | ESP32 Series | ESP32-S2 Series | ESP32-C3 Series | ESP32-S3 Series |
Launch Year | 2016 | 2020 | 2020 | 2020 |
Core | Xtensa® single/dual core 32-bit LX6 | Xtensa® single-core 32-bit LX7 | 32-bit single-core RISC-V | Xtensa® dual-core 32-bit LX7 |
Wi-Fi protocols | 802.11 b/g/n, 2.4 GHz | 802.11 b/g/n, 2.4 GHz | 802.11 b/g/n, 2.4 GHz | 802.11 b/g/n, 2.4 GHz |
Bluetooth® | Bluetooth v4.2 BR/EDR and Bluetooth Low Energy | No | Bluetooth 5.0 | Bluetooth 5.0 |
Typical frequency | 240 MHz (160 MHz for ESP32-S0WD) | 240 MHz | 160 MHz | 240 MHz |
SRAM | 520 KB | 320 KB | 400 KB | 512 KB |
ROM | 448 KB for booting and core functions | 128 KB for booting and core functions | 384 KB for booting and core functions | 384 KB for booting and core functions |
Embedded flash | 2 MB, 4 MB, or none, depending on the variants | 2 MB, 4 MB, or none, depending on the variants | 4 MB or none, depending on the variants | 8 MB or none, depending on the variants |
External flash | Up to 16 MB device, address 11 MB + 248 KB each time | Up to 1 GB device, address 11.5 MB each time | Up to 16 MB device, address 8 MB each time | Up to 1 GB device, address 32 MB each time |
External RAM | Up to 8 MB device, address 4 MB each time | Up to 1 GB device, address 11.5 MB each time | No | Up to 1 GB device, address 32 MB each time |
ADC | Two 12-bit, 18 channels | Two 12-bit, 20 channels | Two 12-bit SAR ADCs, at most 6 channels | Two 12-bit SAR ADCs, 20 channels |
DAC | Two 8-bit channels | Two 8-bit channels | No | No |
Temperature sensor | No | 1 | 1 | 1 |
Touch sensor | 10 | 14 | No | 14 |
Hall sensor | 1 | No | No | No |
GPIO | 34 | 43 | 22 | 45 |
SPI | 4 | 4 | 3 | 4 |
LCD interface | 1 | 1 | No | 1 |
UART | 3 | 2 | 2 | 3 |
I2C | 2 | 2 | 1 | 2 |
I2S | 2 | 1 | 1 | 2 |
Conclusion
ESP32 and ESP32-S3 are popular microcontrollers with some similarities but also several key differences. The most significant differences between the two are the processor, architecture, Wi-Fi and Bluetooth capabilities, peripheral devices, price, and applications. ESP32 is designed for high power and processing applications while ESP32-S3 is best for low-power applications that require advanced Wi-Fi and Bluetooth capabilities.