ESP32-S2-DevKitM-1
The ESP32-S2-DevKitM-1 is Espressif's single-core Xtensa LX7 board with native USB-OTG and 2MB PSRAM, but no Bluetooth. It occupies a narrow niche for USB-native projects that need WiFi but not BLE, largely superseded by the dual-core ESP32-S3 for most use cases.
Best for USB-only WiFi projects on a budget, skip if you need Bluetooth or dual-core performance.
Where to Buy
Pros
- USB-OTG 1.1 enables native USB HID, CDC, and MSC without a UART bridge
- 2MB PSRAM provides buffer space the original ESP32 lacks
- 43 GPIO pins — the highest count in the ESP32 family
- 20 ADC channels for extensive analog sensor arrays
Cons
- No Bluetooth at all — a dealbreaker for most IoT applications
- Single-core Xtensa LX7 limits multitasking capability
- Largely superseded by the dual-core ESP32-S3 which adds BLE 5.0
- 22uA deep sleep current is the highest among current ESP32 variants
Processing Power
The ESP32-S2 uses a single-core Xtensa LX7 at 240MHz. While the LX7 architecture is newer and more efficient per-clock than the LX6 in the original ESP32, the single-core design means WiFi stack handling and application logic compete for the same core. This can introduce latency in time-sensitive applications — WiFi event callbacks can stall application code for 10-50ms during connection management, which matters for real-time motor control or audio sampling.
For simple sensor-reading and data-forwarding tasks, the single core is adequate. Reading an I2C sensor, formatting JSON, and POSTing to an MQTT broker completes in under 20ms on the LX7, leaving plenty of headroom between transmissions. For anything requiring concurrent processing — web servers, real-time control, or data streaming — the dual-core ESP32-S3 at the same clock speed is a better fit. Benchmarks show the S2 achieving roughly 70-80% of the original dual-core ESP32's throughput in multi-tasking scenarios due to the improved LX7 instructions-per-clock offsetting the missing second core.
The 2MB PSRAM provides buffer space the original ESP32 entirely lacks, enabling applications like HTTPS with large TLS buffers (16KB per connection) or web servers with embedded assets. The PSRAM connects via quad-SPI at 80MHz, providing approximately 40MB/s bandwidth — adequate for data buffering but too slow for frame-buffer operations compared to the S3's octal-SPI PSRAM at 120MHz.
The USB-OTG Advantage
The ESP32-S2 was the first ESP32 variant with native USB-OTG 1.1, and this remains its strongest technical differentiator for specific use cases. The native USB controller supports Full Speed (12 Mbps) operation in both device and host modes. As a device, it can enumerate as a USB keyboard (HID), serial port (CDC), mass storage drive (MSC), or MIDI instrument without any external UART bridge chip. As a host, it can read USB flash drives, connect to USB serial devices, or interface with USB audio hardware.
CircuitPython's support for the ESP32-S2 is particularly strong because of this USB capability. When you plug the S2 into a computer, it appears as a USB drive where you can edit Python files directly — save the file and it runs immediately. This drag-and-drop development experience made the S2 the first ESP32 to gain official CircuitPython support, and the workflow is genuinely faster for sensor prototyping than the compile-flash-monitor cycle of Arduino or ESP-IDF.
However, the ESP32-S3 now offers the same USB-OTG 1.1 with a dual-core processor, BLE 5.0, and 8MB PSRAM. Unless you specifically need the S2's 43 GPIO pins or 20 ADC channels — both the highest in the ESP32 family — the S3 is the strictly superior USB-capable board at a similar price point.
The Missing Bluetooth
The most significant limitation of the ESP32-S2 is the complete absence of Bluetooth. No BLE, no Bluetooth Classic, nothing. In 2026, where BLE is used for device provisioning (Matter, HomeKit), beacons, proximity detection, wearable communication, and peripheral pairing, this is a major gap that eliminates entire categories of projects.
If your project is purely WiFi-based — a web-connected sensor, a WiFi access point, or a USB device that happens to also need WiFi — the S2 works fine. ESPHome supports the S2 for WiFi-only smart home sensors, and it performs identically to other ESP32 variants for MQTT telemetry and REST API interactions. But any requirement for BLE immediately disqualifies it. This includes Bluetooth-based provisioning flows used by Apple HomeKit and Google Home, BLE mesh sensor networks, and phone-to-device communication via BLE GATT services.
The 22uA deep sleep current is also the highest among current ESP32 variants, making it the worst choice for battery-powered deployments. The ESP32-C3 at 5uA and ESP32-S3 at 7uA both draw substantially less current while sleeping, and both include Bluetooth radios. The S2's deep sleep penalty comes from the always-on RTC domain being larger due to the additional GPIO and ADC hardware that defines the chip's niche.
Native USB: HID Keyboards and Mice
The ESP32-S2 was the first ESP32 variant to ship with native USB-OTG, and this capability unlocks an entire class of projects that no other ESP32 could touch at launch. The USB 1.1 Full Speed controller operates at 12 Mbps and can enumerate as a standard HID device — keyboard, mouse, gamepad, or composite device — without any external USB-to-UART bridge chip. Plug the S2 into a computer's USB port, and the operating system recognizes it as a native input device. No drivers, no serial adapters, no CH340G headaches.
This native HID support opens serious security applications. The S2 can function as a FIDO2/U2F hardware security key, implementing the WebAuthn protocol for passwordless authentication. Projects like SoloKeys and similar open-source security tokens have been prototyped on the S2's USB stack using TinyUSB. The chip's secure boot and flash encryption features add hardware-level tamper resistance — the AES-XTS 256-bit flash encryption prevents firmware extraction, and the RSA-3072 secure boot chain ensures only signed firmware runs. For hobbyist hardware token projects, the S2 provides a $4 platform with genuine security primitives.
Beyond security keys, the S2 excels at USB automation. Build a WiFi-controlled USB keyboard that types credentials or macros on command — useful for KVM setups, automated testing rigs, or accessibility devices. The TinyUSB library supports composite devices, so a single S2 can simultaneously present as a keyboard and mouse. Custom gamepad controllers with analog joysticks, buttons, and force feedback are straightforward with the HID gamepad class.
Despite these strengths, the ESP32-S3 has largely replaced the S2 for new USB projects. The S3 offers the same USB-OTG 1.1 controller with identical HID capabilities, but adds a second Xtensa LX7 core at 240MHz, BLE 5.0, and 8MB PSRAM. The S2's remaining advantage is cost — at roughly $4 for the bare module versus $6 for the S3 — which matters in production runs of 100+ units for single-purpose USB devices like macro pads or sensor dongles. For one-off prototypes, the S3 is the better starting point unless you specifically need the S2's 43 GPIO pins or 20 ADC channels.
Full Specifications
Processor
| Specification | Value |
|---|---|
| Architecture | Xtensa LX7 [1] |
| CPU Cores | 1 [1] |
| Clock Speed | 240 MHz [1] |
Memory
| Specification | Value |
|---|---|
| Flash | 4 MB [1] |
| SRAM | 320 KB [1] |
| PSRAM | 2 MB [1] |
Connectivity
| Specification | Value |
|---|---|
| WiFi | 802.11 b/g/n [1] |
I/O & Interfaces
| Specification | Value |
|---|---|
| GPIO Pins | 43 [2] |
| ADC Channels | 20 [2] |
| SPI | 4 [2] |
| I2C | 2 [2] |
| UART | 2 [2] |
| USB | USB-OTG 1.1 [2] |
Power
| Specification | Value |
|---|---|
| Input Voltage | 5 V [1] |
| Deep Sleep Current | 22 uA [1] |
Physical
| Specification | Value |
|---|---|
| Dimensions | 56 x 25.4 mm [2] |
| Form Factor | Standard breadboard [2] |
Who Should Buy This
USB-OTG supports the FIDO2 protocol natively, but the ESP32-S3 offers the same USB-OTG with dual-core and BLE as a bonus.
Better alternative: ESP32-S3-DevKitC-1
43 GPIO pins and 20 ADC channels are the highest in the ESP32 family. If you need 15+ analog inputs and WiFi but not BLE, this is the board.
The ESP32-S2 has no Bluetooth radio at all. Use the ESP32-C3 for budget BLE or ESP32-S3 for BLE 5.0 with USB.
Better alternative: ESP32-C3-DevKitM-1
Ecosystem & Community
The ESP32-S2 was the first ESP32 with CircuitPython support and native USB — a niche but well-supported platform for USB HID and WiFi-only projects.
Compatible Software
What to Build First
Program the ESP32-S2 to act as a native USB keyboard or mouse using TinyUSB. Send keystrokes, automate repetitive inputs, or build a custom macro pad — all without a UART bridge chip.
View tutorial →Must-Have Accessories
Tutorials & Resources
- CircuitPython HID Keyboard and MouseStep-by-step guide to building USB HID devices with CircuitPython on ESP32-S2tutorial
- ESP32-S2 CircuitPython SetupOfficial CircuitPython firmware downloads and setup instructions for the ESP32-S2-DevKitMdocs
- TinyUSBOpen-source USB stack that powers native USB HID, CDC, and MSC on the ESP32-S2github
Frequently Asked Questions
Why would I choose the ESP32-S2 over the ESP32-S3?
The S2 has more GPIO pins (43 vs 45 usable but with fewer restrictions) and 20 ADC channels vs the S3's 20. In practice, the S3 is better for most projects because it adds dual-core processing and BLE 5.0 at a similar price point.
Can the ESP32-S2 do Bluetooth?
No. The ESP32-S2 has no Bluetooth hardware at all — no BLE, no Bluetooth Classic. This is the primary reason it has been largely superseded by the ESP32-S3.
Is the ESP32-S2 good for battery-powered projects?
Not ideal. Its 22uA deep sleep current is the highest among current ESP32 variants. The ESP32-C3 achieves 5uA and the ESP32-S3 hits 7uA, making them better choices for battery operation.
Does the ESP32-S2 support CircuitPython?
Yes. The ESP32-S2 was the first ESP32 variant with official CircuitPython support, thanks to its native USB-OTG. CircuitPython support is strong and well-maintained.
Should I buy the ESP32-S2 in 2026?
Only if you specifically need its 43 GPIO pins or 20 ADC channels without Bluetooth. For most new projects, the ESP32-S3 is a strictly better choice with dual-core, BLE 5.0, and the same USB-OTG capability.