ESP32-S2-SOLO-2
SOLO module · based on ESP32-S2 · Active
- Xtensa LX7
- 1× @ 240 MHz
- Wi-Fi 4
- 4 / 8 / 16 MB flash
- 2 MB PSRAM
- 36 GPIO
- PCB antenna
As an affiliate we may earn from qualifying purchases. Prices and availability are set by AliExpress.
Every figure here is checked against Espressif’s official datasheets. We’ve taken every care to keep it accurate — but datasheets are dense and mistakes happen, so if something looks off, please report it.
The ESP32-S2-SOLO-2 is a cost-optimised single-core Espressif module built on the ESP32-S2 single-core Xtensa LX7 SoC clocked up to 240 MHz. It pairs 2.4 GHz Wi-Fi 4 with up to 16 MB flash and up to 2 MB PSRAM, routes the radio to a PCB antenna, and breaks out 36 GPIO; the module measures 18 × 25.5 × 3.1 mm.
The extra PSRAM gives headroom for framebuffers, audio buffers and richer touch GUIs. Secure boot and flash encryption are available for production security. Espressif lists target uses including Smart Home, Smart Agriculture, Industrial Automation, POS Machines and Health Care.
Pinout
⚑ flag an error| # | Name | Type | Functions | |
|---|---|---|---|---|
| 1 | GND | P | Ground | ⚑ |
| 2 | 3V3 | P | Power supply | ⚑ |
| 3 | EN | I | Chip enable | ⚑ |
| 4 | IO4 | I/O/T | RTC_GPIO4, GPIO4, TOUCH4, ADC1_CH3 | ⚑ |
| 5 | IO5 | I/O/T | RTC_GPIO5, GPIO5, TOUCH5, ADC1_CH4 | ⚑ |
| 6 | IO6 | I/O/T | RTC_GPIO6, GPIO6, TOUCH6, ADC1_CH5 | ⚑ |
| 7 | IO7 | I/O/T | RTC_GPIO7, GPIO7, TOUCH7, ADC1_CH6 | ⚑ |
| 8 | IO15 | I/O/T | RTC_GPIO15, GPIO15, U0RTS, ADC2_CH4, XTAL_32K_P | ⚑ |
| 9 | IO16 | I/O/T | RTC_GPIO16, GPIO16, U0CTS, ADC2_CH5, XTAL_32K_N | ⚑ |
| 10 | IO17 | I/O/T | RTC_GPIO17, GPIO17, U1TXD, ADC2_CH6, DAC_1 | ⚑ |
| 11 | IO18 | I/O/T | RTC_GPIO18, GPIO18, U1RXD, ADC2_CH7, DAC_2, CLK_OUT3 | ⚑ |
| 12 | IO8 | I/O/T | RTC_GPIO8, GPIO8, TOUCH8, ADC1_CH7 | ⚑ |
| 13 | IO19 | I/O/T | RTC_GPIO19, GPIO19, U1RTS, ADC2_CH8, CLK_OUT2, USB_D- | ⚑ |
| 14 | IO20 | I/O/T | RTC_GPIO20, GPIO20, U1CTS, ADC2_CH9, CLK_OUT1, USB_D+ | ⚑ |
| 15 | IO3 | I/O/T | RTC_GPIO3, GPIO3, TOUCH3, ADC1_CH2 | ⚑ |
| 16 | IO46 | I | GPIO46 | ⚑ |
| 17 | IO9 | I/O/T | RTC_GPIO9, GPIO9, TOUCH9, ADC1_CH8, FSPIHD | ⚑ |
| 18 | IO10 | I/O/T | RTC_GPIO10, GPIO10, TOUCH10, ADC1_CH9, FSPICS0, FSPIIO4 | ⚑ |
| 19 | IO11 | I/O/T | RTC_GPIO11, GPIO11, TOUCH11, ADC2_CH0, FSPID, FSPIIO5 | ⚑ |
| 20 | IO12 | I/O/T | RTC_GPIO12, GPIO12, TOUCH12, ADC2_CH1, FSPICLK, FSPIIO6 | ⚑ |
| 21 | IO13 | I/O/T | RTC_GPIO13, GPIO13, TOUCH13, ADC2_CH2, FSPIQ, FSPIIO7 | ⚑ |
| 22 | IO14 | I/O/T | RTC_GPIO14, GPIO14, TOUCH14, ADC2_CH3, FSPIWP, FSPIDQS | ⚑ |
| 23 | IO21 | I/O/T | RTC_GPIO21, GPIO21 | ⚑ |
| 24 | IO33 | I/O/T | SPIIO4, GPIO33, FSPIHD | ⚑ |
| 25 | IO34 | I/O/T | SPIIO5, GPIO34, FSPICS0 | ⚑ |
| 26 | IO45 | I/O/T | GPIO45 | ⚑ |
| 27 | IO0 | I/O/T | RTC_GPIO0, GPIO0 | ⚑ |
| 28 | IO35 | I/O/T | SPIIO6, GPIO35, FSPID | ⚑ |
| 29 | IO36 | I/O/T | SPIIO7, GPIO36, FSPICLK | ⚑ |
| 30 | IO37 | I/O/T | SPIDQS, GPIO37, FSPIQ | ⚑ |
| 31 | IO38 | I/O/T | GPIO38, FSPIWP | ⚑ |
| 32 | IO39 | I/O/T | MTCK, GPIO39, CLK_OUT3 | ⚑ |
| 33 | IO40 | I/O/T | MTDO, GPIO40, CLK_OUT2 | ⚑ |
| 34 | IO41 | I/O/T | MTDI, GPIO41, CLK_OUT1 | ⚑ |
| 35 | IO42 | I/O/T | MTMS, GPIO42 | ⚑ |
| 36 | RXD0 | I/O/T | U0RXD, GPIO44, CLK_OUT2 | ⚑ |
| 37 | TXD0 | I/O/T | U0TXD, GPIO43, CLK_OUT1 | ⚑ |
| 38 | IO2 | I/O/T | RTC_GPIO2, GPIO2, TOUCH2, ADC1_CH1 | ⚑ |
| 39 | IO1 | I/O/T | RTC_GPIO1, GPIO1, TOUCH1, ADC1_CH0 | ⚑ |
| 40 | GND | P | Ground | ⚑ |
| 41 | EPAD | P | Ground | ⚑ |
Official datasheet pin-layout figure
Find a pin by function
Pick a capability to see which GPIOs provide it on the ESP32-S2.
Freely usable, no special role.
! Usable for general IO, but one function has a condition (e.g. ADC2 can’t be read while Wi-Fi is on) — see the note.
UART, I²C, SPI (master), I²S, PWM/LEDC and most digital peripherals route through the GPIO matrix — assign them to any pin from “Safe GPIO”. The categories above are the pins tied to a fixed function (analog, USB, crystal…) or that need care.
Strapping pins
⚑ flag an errorGPIOs sampled at reset — avoid driving these at power-up.
| Pin | Default | Bit | Function |
|---|---|---|---|
GPIO0 | pull-up | 1 | boot_mode |
GPIO45 | pull-down | 0 | flash_voltage |
GPIO46 | pull-down | 0 | boot |
GPIO pin warnings
⚑ flag an errorOn the ESP32-S2, almost any peripheral can be routed to almost any GPIO through the IO MUX, so most pins are free to use. These are the exceptions — pins with a fixed role or a boot-time behaviour to design around.
| Pin | Why it needs care |
|---|---|
GPIO0 | strapping pin (affects boot) |
GPIO19 | native USB D± |
GPIO20 | native USB D± |
GPIO39 | JTAG |
GPIO40 | JTAG |
GPIO41 | JTAG |
GPIO42 | JTAG |
GPIO43 | UART0 console (boot log) |
GPIO44 | UART0 console (boot log) |
GPIO45 | strapping pin (affects boot) |
GPIO46 | strapping pin (affects boot); input-only (no output/pull-up) |
- The ADC2 channels share hardware with the Wi-Fi radio, so ADC2 readings are unavailable while Wi-Fi is active — but those GPIOs are still free for any digital function. Use the ADC1 channels for analog input alongside Wi-Fi.
Compute & memory
⚑ flag an error| CPU | Xtensa LX7, 1-core |
|---|---|
| Max clock | 240 MHz |
| SRAM | 320 KB |
| ROM | 128 KB |
| Flash options | 4 / 8 / 16 MB |
| PSRAM | 2 MB (quad) |
| Co-processor | ULP-RISC-V |
Wireless
⚑ flag an error| Wi-Fi | Wi-Fi 4 |
|---|---|
| Wi-Fi bands | 2.4GHz |
| Bluetooth | — |
| 802.15.4 (Thread/Zigbee) | No |
| Antenna | PCB |
Peripherals & I/O
⚑ flag an error| Usable GPIO | 36 |
|---|---|
| ADC | 20× 12-bit |
| USB | USB-OTG |
| UART / SPI / I²C / I²S | 2 / 2 / 2 / 1 |
| TWAI (CAN) | Yes |
| SD/MMC | No |
| Ethernet MAC | No |
| Touch | 14 |
Power
⚑ flag an error| Operating voltage | 3.0-3.6 V |
|---|---|
| Deep sleep | — µA |
Physical
⚑ flag an error| Dimensions | 18 × 25.5 × 3.1 mm |
|---|---|
| Pin count | 41 |
| Temp range | -40 to 85 °C |
| Mounting | SMD castellated |
| Lifecycle | Active |
Security
⚑ flag an error| Secure boot | Yes |
|---|---|
| Flash encryption | Yes |
| Crypto | AES, SHA, RSA, HMAC, RNG |
| Digital signature | Yes |
| TRNG | Yes |
Ordering codes
⚑ flag an errorThe orderable part numbers and what each ships with — decoded from the suffix. Confirm against the latest datasheet before ordering.
| Part number | Flash | PSRAM | Temp |
|---|---|---|---|
ESP32-S2-SOLO-2-N4 | 4 MB | — | −40 to 85 °C |
ESP32-S2-SOLO-2-H4 | 4 MB | — | −40 to 105 °C |
ESP32-S2-SOLO-2-N4R2 | 4 MB | 2 MB (quad) | −40 to 85 °C |
ESP32-S2-SOLO-2-N8 | 8 MB | — | −40 to 85 °C |
ESP32-S2-SOLO-2-N16 | 16 MB | — | −40 to 85 °C |
Schematics
Mechanical & CAD
Getting started
Frameworks: Arduino-ESP32 core — fully supported · ESP-IDF 4.2+ (Espressif's official SDK) · MicroPython · Matter.
ESP-IDF target: idf.py set-target esp32s2.
The SoC has native USB-OTG, so it can flash over USB and act as a USB device or host.
Open-source projects using this module
Public GitHub projects whose KiCad design files reference the ESP32-S2-SOLO-2.
- CasualCodersProjects/Really-Nice-Digital-Clock ★ 6
Nice Clock. Mine's Bigger.
- hdsjulian/sparkles-old ★ 2
Autonomous blinky devices that triangulate via soundd
- Longhorn-Rocketry-Electronics/Polaris ★ 0
Model rocketry flight computer schematics and code for dual deploy and logging
- hdsjulian/sparkles ★ 0
- tdevince/Chris-Controller ★ 0
Project to create a remote control system for oxygen concentrators
Frequently asked questions
Does the ESP32-S2-SOLO-2 have Wi-Fi and Bluetooth?
It provides 2.4 GHz Wi-Fi 4.
How much memory does the ESP32-S2-SOLO-2 have?
It comes with 4, 8, 16 MB flash options, up to 2 MB of PSRAM, and the ESP32-S2 has 320 KB of on-chip SRAM.
How many GPIO pins does the ESP32-S2-SOLO-2 have?
The module breaks out 36 GPIO, with up to 20 12-bit ADC channels. See the full pinout above.
Can I use the ESP32-S2-SOLO-2 with the Arduino IDE?
Yes — install the Arduino-ESP32 core and pick an ESP32-S2-based board. You can also use ESP-IDF 4.2 or MicroPython.
How do I flash the ESP32-S2-SOLO-2?
The SoC has native USB-OTG, so it can flash over USB and act as a USB device or host.
Is the ESP32-S2-SOLO-2 5 V tolerant?
No. It runs at 3.0-3.6 V and its GPIO are not 5 V tolerant — level-shift any 5 V signals.
Can I use an external antenna with the ESP32-S2-SOLO-2?
Most Espressif modules are also offered in a "-U" / "-1U" variant that swaps the on-board PCB antenna for a U.FL/IPEX connector for an external antenna — otherwise identical. Check this part's datasheet for the exact variant name.