The ESP32-S2 is the odd sibling. It arrived in 2019 with a very clear idea: native USB, lots of pins and Wi-Fi… but no Bluetooth. That single decision splits opinion: for some it is perfect, for others it is a paperweight.
Let’s see what it is actually good for.
What it is (and how it differs from the classic)
The S2 uses a single Xtensa LX7 core at 240 MHz (the classic has two). That sounds like a downgrade, but in exchange it ships USB OTG, which is a more interesting peripheral than it looks.
| Thing | Value |
|---|---|
| Core | 1 × Xtensa LX7 @ 240 MHz |
| SRAM | 320 KB |
| Wi-Fi | 802.11 b/g/n (2.4 GHz) |
| Bluetooth | none |
| GPIOs | 43 |
| ADC | 20 channels, 12-bit |
| DAC | 2 channels, 8-bit (GPIO17 and GPIO18) |
| Touch | 14 channels |
| USB | native OTG |
The good part: USB OTG
This is not “USB for the serial port”. It is a full USB controller, and that lets you do things the classic needs an extra chip for:
- HID: emulate a keyboard, mouse or gamepad.
- CDC: your own serial port, with your own VID/PID.
- MSC: make the computer see the ESP32 as a USB drive.
- Host: read a flash drive, a USB keyboard or a reader.
And because it is native, forget the CH340 and its drivers. One cable and done.
The bad part: no Bluetooth
Here is the toll. If your project needs to send data to a phone over BLE, or talk to a speaker over classic Bluetooth, the S2 is not for you. Period. It is not a firmware issue: the radio simply is not there.
Espressif left it out to cut cost and complexity. It made sense at the time… but today it means that, when in doubt, you almost always want a C3 or an S3 instead.
Pinout: the pins that matter
There is no official S2 pinout on Commons, so here are the things you will actually look up (for the rest, see the Espressif datasheet):
| Pin(s) | What for |
|---|---|
| GPIO19 / GPIO20 | USB D− / D+ (do not reuse them if you use USB) |
| GPIO1–10 | ADC1 |
| GPIO11–20 | ADC2 |
| GPIO17 / GPIO18 | DAC 1 and DAC 2 |
| GPIO1–14 | Touch |
| GPIO0, 45, 46 | Strapping (boot) |
| GPIO26–32 | Internal flash (do not use) |
Two warnings that carry over from the classic:
- ADC2 does not work while Wi-Fi is on. Use ADC1.
- The strapping pins (especially GPIO45 and GPIO46) are best left alone.
Boards and modules
What you will find:
- ESP32-S2-WROOM / WROOM-1 — the standard module.
- ESP32-S2-MINI-1 — the small one, ideal for your own PCB.
- ESP32-S2-Saola-1 — the DevKitC-style development board.
- ESP32-S2-Kaluga-1 — kit with a display and camera.
- ESP32-S2-DevKitM-1 — the reduced version.
When to pick it (and when not to)
Yes, pick the S2 if…
- You need real USB: HID, CDC, storage, host.
- You want lots of GPIOs (43) and do not care about Bluetooth.
- You are going to use DAC or touch and want native USB as a bonus.
- You are building a USB device you want to emulate.
Do not pick it if…
- You need BLE (very common): go for a C3 or S3.
- You want the cheapest option: the C3 is more modern and usually costs the same or less.
- You need two cores: the S2 has one.
Typical mistakes
- Buying it assuming it has BLE because “all ESP32s do”.
- Using GPIO19/20 for something else and then wondering why USB never shows up.
- Reading a sensor on ADC2 with Wi-Fi on.
- Forgetting that GPIO45/46 are boot pins and that holding them
LOWcan block boot.
Summary
- 1 × LX7 core, 320 KB SRAM, USB OTG and 43 GPIOs.
- No Bluetooth: its biggest limitation.
- It has DAC and touch, like the classic.
- It is the clear choice when USB is the star of the project.
- If you are torn between S2 and C3, the C3 almost always wins.
Next step: the ESP32-S3 — same USB, but with two cores, Bluetooth and AI acceleration. Or go back to the series hub for the full index.