ESP32 DevKit V1 Pinout Reference — Strapping Pins, SPI/I²C/UART & Input-Only GPIOs

30-Pin / 38-Pin Dual-In-Line 0.1" Header (3.3 V CMOS Logic!) · Serial, MIDI & Modern I/O

Interactive Connector Diagram

Click or tap any pin in the diagram below to inspect its signal assignment, electrical specification, and wire colour standard.

Click any pin to view its signal assignment, electrical spec, and wire colour.

Supported Systems / Found On — Retro Machine Hubs

This connector is used on the following retro computer systems. Click any colour-coded badge below to open its full board-level repair, diagnostic, and schematic Machine Hub:

Connector Specifications

Logic Level 3.3 V CMOS (Use 74LVC245 or bi-directional MOSFET shifters when interfacing with 5 V TTL!)
Strapping Pins GPIO0 (Must be High for normal boot), GPIO2 (Low for flash), GPIO12 (MUST be Low at boot!), GPIO15
Input-Only Pins GPIO34, GPIO35, GPIO36 (VP), GPIO39 (VN) — No internal pull-ups or output drivers!
Forbidden Pins GPIO6 to GPIO11 are hardwired to the internal SPI Flash chip — never connect!

Full Pin Assignment & Wiring Reference

Pin Signal Name Direction Electrical Spec / Role Wire Colour / SCART / Adapter Target
GPIO0 BOOT / STRAPPING I/O Strapping Pin (Internal Pull-Up: High = Run Flash; Low = Serial Bootloader) BOOT Button
GPIO1 & GPIO3 UART0 TX (1) & RX (3) I/O USB-Serial Console TX0 (GPIO1) and RX0 (GPIO3) USB UART0
GPIO2 ONBOARD LED / STRAP I/O Onboard Blue LED (Must be Low or Floating during serial flashing) Blue LED
GPIO4, 16, 17 UART2 RX (16) & TX (17) I/O Safe General Purpose I/O & Hardware UART2 (Ideal for Zimodem / SIO!) Safe GP I/O
GPIO5, 18, 19, 23 VSPI (SD Card Bus!) I/O Default VSPI for MicroSD Cards: CS=GPIO5, SCK=GPIO18, MISO=GPIO19, MOSI=GPIO23 SD Card SPI
GPIO12 (MTDI) VDD_SDIO STRAP TRAP! I/O WARNING: Must be LOW (0 V) at boot! Pulling High selects 1.8V Flash and crashes! Keep Low at Boot
GPIO13, 14, 15 HSPI / JTAG PINS I/O Secondary HSPI bus (SCK=14, MISO=12, MOSI=13, CS=15) HSPI
GPIO21 & 22 I²C SDA (21) & SCL (22) I/O Default I²C Bus (for SSD1306 OLED displays on FujiNet / Tapuino) OLED I²C
GPIO25, 26, 27, 32, 33 SAFE GP I/O + DAC I/O Safe General Purpose I/O + 8-Bit Analog DACs (GPIO25 & GPIO26) + ADC1 (32/33) Safe GP I/O
GPIO34, 35, 36, 39 INPUT ONLY (No Pullup) In INPUT-ONLY Pins (Great for reading buttons/status; require external pull-up resistors!) Input Only
VIN, 3V3, GND 5V IN / 3.3V OUT / GND Pwr VIN = +5 V Input (to AMS1117-3.3); 3V3 = Regulated +3.3 V Out; GND = 0 V Power Rails

Best Practices When Connecting an ESP32 to 5V Retro Computers

The ESP32-WROOM-32 DevKit V1 is the powerhouse behind modern retro wireless and storage interfaces (FujiNet for Atari/Apple/Coleco, BlueRetro Bluetooth joystick adapters for Amiga/C64/Atari, Zimodem User Port/RS-232 Wi-Fi modems, and TRS-IO for the TRS-80). Knowing which pins are safe general-purpose I/O versus boot-strapping or input-only pins avoids hours of debugging.

  • Always Use UART2 (GPIO16 RX2 & GPIO17 TX2) for Retro Serial Links: Leave GPIO1/GPIO3 (UART0) free for USB debugging and firmware updates, and remap your retro serial bus (Atari SIO, C64 User Port, or MAX3232 RS-232) to GPIO16 and GPIO17 in hardware!
  • Why ADC2 Pins Cannot Read Analog Joysticks When Wi-Fi Is Active: On the ESP32, the internal ADC2 controller (GPIO0, 2, 4, 12–15, 25–27) is shared with the Wi-Fi radio! Always use **ADC1 pins (GPIO32, 33, 34, 35, 36, 39)** for reading analog paddles or voltages while Wi-Fi/Bluetooth is running.

Related Connectors & Ports

Theme Palette

Default Dark
High-contrast dark
Amber Terminal
Monochrome amber
Matrix CRT
Phosphor green
Workbench Light
Clean light mode

Audio & Display

Relay Click Sounds Web Audio API — soft mechanical clicks
CRT Scanline & Flicker Pure CSS overlay effect

System Info

Customization Panel Theme preference, audio FX, and CRT overlay settings are saved to your browser's localStorage and persist between visits. No cookies or server-side storage is used.
Keyboard Shortcuts Press Esc to close this panel. Use the header moon/sun icon to cycle themes.