ElectronicZoologyfield notes from the garage
← Back
ESP32 WROOM-32 38-pin dev board
Microcontroller

ESP32 Dev Board

38-pin development board - SPI display pins for the GC9D01 guide

Official Espressif documentation:

ESP32-DevKitC V4 user guide →

The ESP32 is a dual-core 240MHz microcontroller with built-in WiFi and Bluetooth. The 38-pin dev board breaks all GPIO pins out on two rows of headers.

SPI displays use the ESP32's hardware SPI peripheral. GPIO18 and GPIO23 are the default hardware SPI clock and data pins - using these gives maximum SPI speed. DC, CS, and RST can be any available GPIO.

Pins used in this guide

ESP32 PinGC9D01 PinSignal
3.3VVCCPower (3.3V only - no 5V tolerance)
GNDGNDCommon ground
GPIO18SCLSPI clock (hardware SPI default)
GPIO23SDASPI data / MOSI (hardware SPI default)
GPIO27DCData / command select
GPIO5CSChip select
GPIO4RSTReset
3.3VBLBacklight - wire to 3.3V for always-on

Why not GPIO2 for DC?

GPIO2 is a boot strapping pin on the ESP32. The display holds DC low during SPI transfers, which at boot puts the ESP32 into download mode - upload failures every time. GPIO27 has no boot-strapping function and works correctly.

Key details

  • GPIO18 - SPI clock (SCL) → GC9D01 SCL
  • GPIO23 - SPI data (SDA/MOSI) → GC9D01 SDA
  • GPIO27 - Data/command select → GC9D01 DC
  • GPIO5 - Chip select → GC9D01 CS
  • GPIO4 - Reset → GC9D01 RST
  • 3.3V - Power and backlight (3.3V ONLY for this display)