Pin Classification Overview


I checked the Espressif datasheet for this module. Here are the pin groups you asked for:
Bootstrap / strapping pins
These pins are sampled at reset, then can be used as normal GPIO afterward.

Table


Module pinPin nameReset roleDefault strap
16IO46Boot mode select with IO0, ROM message printing controlWeak pull-down
26IO45VDD_SPI voltage selectWeak pull-down
27IO0Boot mode select with IO46Weak pull-up
Boot notes

Table


IO0IO46Result
1anySPI boot
00Joint download boot
01Invalid combination, avoid
Input-only pins

Table


Module pinPin nameNotes
16IO46Input-only pin, fixed pull-down, also a strapping pin
That is the only input-only GPIO called out here.
Pins connected to internal memory / reserved by flash interface
These are the ones you should treat as memory-related or restricted.
Strongly reserved / not recommended for other use
These correspond to the SPI0/1 interface used for in-package flash, or recommended for flash/PSRAM connection.

Table


Chip GPIOModule pin exposureModule pin name
GPIO26not exposed as GPIO26 label on modulenot broken out directly
GPIO27not exposed as GPIO27 label on modulenot broken out directly
GPIO28not exposed as GPIO28 label on modulenot broken out directly
GPIO29not exposed as GPIO29 label on modulenot broken out directly
GPIO30not exposed as GPIO30 label on modulenot broken out directly
GPIO31not exposed as GPIO31 label on modulenot broken out directly
GPIO32not exposed as GPIO32 label on modulenot broken out directly
Memory-bus related pins exposed on the module
These are associated with higher SPI flash/PSRAM data lines or DQS, so use caution.

Table


Module pinPin nameMemory-related function in datasheet
24IO33SPIIO4 / FSPIHD
25IO34SPIIO5 / FSPICS0
28IO35SPIIO6 / FSPID
29IO36SPIIO7 / FSPICLK
30IO37SPIDQS / FSPIQ
Practical summary
  • Definitely memory-reserved / avoid: GPIO26 to GPIO32
  • Memory-related / use with caution: IO33 to IO37
  • Normal GPIO from your requested categories: the rest, except the special-case pins above
USB pins

Table


Module pinPin nameUSB function
13IO19USB_D-
14IO20USB_D+
Short summary
  • Bootstrap pins: IO0, IO45, IO46
  • Input-only pins: IO46
  • Internal-memory / flash-related pins: GPIO26 to GPIO32 reserved, and IO33 to IO37 are memory-bus related / caution
  • USB pins: IO19 = USB_D-, IO20 = USB_D+
If you want, I can turn this into a pin classification table for all 41 pins next.
Use ESP32 datasheet
Flag restricted pins
Save pin notes

EPAD
IO38
IO21
IO19
IO11
IO35
EPAD
IO9
IO6
EPAD
GND
IO4
3V3
EPAD
IO45
IO40
RXD0
EPAD
IO13
IO12
EN
IO7
IO20
IO41
IO1
GND
TXD0
IO8
EPAD
EPAD
IO33
IO46
IO17
IO0
IO34
EPAD
IO15
IO2
IO3
IO37
IO14
IO42
IO5
IO36
EPAD
IO16
IO39
IO10
IO18
Name
Pin #
Type
Part Type
Pin Orientation
Section
Terminal Order
Terminal Type
GND
1
Unspecified
Terminal
Right
GND
10
powerIn
3V3
2
Unspecified
Terminal
Top
POWER
1
powerIn
EN
3
Unspecified
Terminal
Left
PROGRAMMING
2
INPUT
IO4
4
Unspecified
Terminal
Left
GPIO
6
bidi
IO5
5
Unspecified
Terminal
Left
GPIO
6
bidi
IO6
6
Unspecified
Terminal
Left
GPIO
6
bidi
IO7
7
Unspecified
Terminal
Left
GPIO
6
bidi
IO15
8
Unspecified
Terminal
Right
GPIO
6
bidi
IO16
9
Unspecified
Terminal
Right
GPIO
6
bidi
IO17
10
Unspecified
Terminal
Right
GPIO
6
bidi
IO18
11
Unspecified
Terminal
Right
GPIO
6
bidi
IO8
12
Unspecified
Terminal
Left
GPIO
6
bidi
IO19
13
Unspecified
Terminal
Left
USB
4
bidi
IO20
14
Unspecified
Terminal
Left
USB
4
bidi
IO3
15
Unspecified
Terminal
Left
GPIO
6
bidi
IO46
16
Unspecified
Terminal
Right
BOOTSTRAP
3
INPUT
IO9
17
Unspecified
Terminal
Left
GPIO
6
bidi
IO10
18
Unspecified
Terminal
Left
GPIO
6
bidi

ESP32-S2-SOLO-2

ESP32-S2-SOLO-2 thumbnail