ESP32 vs ESP32-S3
The ESP32-S3 keeps two cores at up to 240 MHz but moves to Xtensa LX7 with vector instructions, adds native USB OTG, 45 GPIO, up to 20 ADC channels, 14 touch pins and optional PSRAM, and drops Bluetooth Classic and the DAC (ESP32-S3 datasheet v2.2, pp. 3 to 5). The original ESP32 on the DevKit V1 has Bluetooth v4.2 Classic and LE, two 8-bit DACs and 520 KB of SRAM (ESP32 datasheet v5.3, pp. 3, 4). Pick the S3 for new projects, USB devices, cameras and displays; keep the ESP32 for BluetoothSerial, A2DP audio or existing ESP32 code.
Side by side
| ESP32 | ESP32-S3 | |
|---|---|---|
| CPUESP32-WROOM-32 datasheet v3.8, pp. 2, 3; Espressif ESP32-S3 datasheet v2.2, p. 3 | Dual-core Xtensa LX6, up to 240 MHz | Dual-core Xtensa LX7, up to 240 MHz, vector instructions |
| SRAMEspressif ESP32 datasheet v5.3, p. 4; ESP32-S3 datasheet v2.2, p. 4; DevKitC-1 v1.1 user guide | 520 KB | 512 KB; PSRAM 2, 8 or 16 MB on R2, R8 and R16 versions |
| Flash on the boardESP32-WROOM-32 datasheet v3.8, p. 2; ESP32-S3-DevKitC-1 v1.1 user guide | 4 MB | 8 MB (N8 versions) or 32 MB (N32R16V) |
| BluetoothESP32 datasheet v5.3, p. 3; ESP32-S3 datasheet v2.2, pp. 1, 3 | Bluetooth v4.2 BR/EDR (Classic) and LE | Bluetooth 5 (LE) only, no Classic |
| USBESP32 DevKit V1 board design; ESP32-S3-DevKitC-1 v1.1 user guide | Micro-USB through a USB-to-UART bridge | Two micro-USB ports: USB-to-UART bridge and the chip's own USB OTG |
| GPIOESP32 DevKit V1 pinout; ESP32-S3 datasheet v2.2, p. 4; DevKitC-1 v1.1 user guide | 25 on the 30-pin header | 45 programmable on the chip; two 22-pin headers |
| ADCESP32 DevKit V1 pinout; ESP32-S3 datasheet v2.2, pp. 5, 59 | 15 pins on the header (6 on ADC1) | Two 12-bit SAR ADCs, up to 20 channels (ADC1 on GPIO1 to GPIO10) |
| DACESP32 datasheet v5.3, p. 4; ESP32-S3 datasheet v2.2 | Two 8-bit channels on GPIO25 and GPIO26 | None |
| On-board LEDESP32 DevKit V1 board design; ESP32-S3-DevKitC-1 v1.1 user guide | Plain LED on GPIO2 on most boards | Addressable RGB LED on GPIO38 (v1.1) or GPIO48 (v1.0) |
Which one to pick
- Bluetooth Classic: BluetoothSerial links and A2DP audio need the original ESP32's BR/EDR radio (ESP32 datasheet v5.3, p. 3).
- True analog output from the two 8-bit DAC channels on GPIO25 and GPIO26 (p. 4).
- Existing ESP32 projects, shields and tutorials built around the DevKit V1's 30-pin layout.
- USB devices: the S3's own USB OTG port can act as a keyboard, mouse or USB serial device and supports JTAG debugging (DevKitC-1 v1.1 user guide).
- Cameras, large displays and machine learning, using up to 16 MB of PSRAM and the LX7's vector instructions (ESP32-S3 datasheet v2.2, p. 3; user guide).
- Projects that need more pins, touch inputs or analog channels: 45 GPIO, 14 touch pins and up to 20 ADC channels (datasheet, pp. 4, 5).
Swapping one for the other
What changes in the wiring and the code.
- Both are 3.3 V and not 5 V tolerant (ESP32-WROOM-32 datasheet v3.8, p. 26; ESP32-S3 datasheet v2.2, pp. 64, 65), and both use the arduino-esp32 core, so Wi-Fi code carries over. Select ESP32S3 Dev Module and set its flash and PSRAM options to your board's version.
- Pin numbers differ: the S3 has no GPIO22 to GPIO25, so remap every pin. arduino-esp32's default I2C pins are GPIO8 (SDA) and GPIO9 (SCL) on the S3, against GPIO21 and GPIO22 on the DevKit V1.
- The LED changes kind: GPIO2 is a plain LED on the DevKit V1, while the S3's LED is addressable; drive it with rgbLedWrite() (neopixelWrite() on 2.x cores) on GPIO38 (v1.1) or GPIO48 (v1.0).
- Remove dacWrite() and Bluetooth Classic code (BluetoothSerial, A2DP) when moving to the S3; use PWM or an I2S DAC, and BLE.
- On N8R8 and N32R16V boards, GPIO35 to GPIO37 belong to the octal PSRAM and must stay free (DevKitC-1 v1.1 user guide). Use the USB-to-UART port for Serial and flashing.
ESP32 or ESP32-S3: questions
Is the ESP32-S3 better than the ESP32?
For most new projects, yes: LX7 cores with vector instructions, native USB OTG, 45 GPIO, 14 touch pins and PSRAM options (ESP32-S3 datasheet v2.2, pp. 3 to 5). The original ESP32 still wins on Bluetooth Classic and its two DAC channels (ESP32 datasheet v5.3, pp. 3, 4).
Does the ESP32-S3 support Bluetooth Classic?
No. The ESP32-S3 has Bluetooth 5 (LE) only (ESP32-S3 datasheet v2.2, p. 3), so BluetoothSerial and A2DP audio do not work. The original ESP32 has Bluetooth v4.2 BR/EDR and LE (ESP32 datasheet v5.3, p. 3).
Will my ESP32 sketch run on the ESP32-S3?
Wi-Fi, web server and most sensor code compiles once you select an S3 board. Change the pin numbers, since the S3 has no GPIO22 to GPIO25, and replace dacWrite() and any Bluetooth Classic code.
Why does the ESP32-S3-DevKitC-1 have two USB ports?
One goes through a USB-to-UART bridge for flashing and the Serial console; the other is the ESP32-S3's own full-speed USB OTG port, which can act as a keyboard, mouse or USB serial device and supports JTAG debugging (DevKitC-1 v1.1 user guide). The DevKit V1 has only the bridge.
Which board has more memory?
The ESP32 has 520 KB of SRAM and the S3 512 KB (ESP32 datasheet v5.3, p. 4; ESP32-S3 datasheet v2.2, p. 4), but S3 boards come with 8 MB of flash or more and up to 16 MB of PSRAM (DevKitC-1 v1.1 user guide), against 4 MB of flash and no PSRAM on the DevKit V1's WROOM-32.
The two references
Checked on 2026-10-29 against 4 sources, the makers’ datasheets first.
This comparison as plain Markdown. /compare/esp32-devkit-v1-vs-esp32-s3-devkitc-1.md

