From the datasheet and Espressif pin notes for this module, here are the pin groups you asked for:
Bootstrap / strapping pins
These are sampled at reset, then can act as normal IO afterward:
- IO0 / GPIO0 — pin 3
- Boot mode strap
- Default internal pull-up
- IO45 / GPIO45 — pin 39
- VDD_SPI voltage strap
- Default internal pull-down
- IO46 / GPIO46 — pin 40
- Boot mode strap
- ROM message printing strap
- Default internal pull-down
Boot-mode detail:
- SPI boot: GPIO0 = 1, GPIO46 = any
- Download boot: GPIO0 = 0, GPIO46 = 0
- Avoid: GPIO0 = 0, GPIO46 = 1
Input-only pins
GPIO input-only
- IO46 / GPIO46 — pin 40
- Explicitly listed as input only
Dedicated input pin
- EN — pin 41
- Chip enable input
- Not a general-purpose GPIO
- Must not be left floating
Pins connected to internal memory
These are the exposed module pins tied to the internal flash/PSRAM interface, so they should be treated as reserved rather than general-purpose IO:
- IO26 / GPIO26 — pin 25
- Connected to PSRAM CS
- Datasheet says it cannot be used for other functions
- IO33 / GPIO33 — pin 27
- IO34 / GPIO34 — pin 28
- IO35 / GPIO35 — pin 29
- IO36 / GPIO36 — pin 30
- IO37 / GPIO37 — pin 31
- IO38 / GPIO38 — pin 32
Practical takeaway:
- Definitely reserved: IO26
- Also normally reserved / use with caution: IO33 to IO38
- Espressif also notes the SPI0/1 memory bus pins are usually not recommended for other use.
USB pins
Yes, USB is present:
- IO19 / GPIO19 — pin 22 — USB_D-
- IO20 / GPIO20 — pin 23 — USB_D+
If you want, I can turn this into a pin classification table for the whole module next, including:
- power pins
- ground pins
- strap pins
- reserved memory pins
- USB/UART/JTAG pins
- safe general-purpose IO pins