Board pinout
ESP32 DevKit V1 (DOIT, 30-pin) Pinout
Wi-Fi and Bluetooth, dual-core, and plenty of GPIO. The default choice for IoT, at 3.3V logic. It runs at 3.3V logic with 25 usable GPIO pins. Every value below is verified against the pin map Banana Board uses to check real designs.
Interfaces
Watch out for
Input-only: GPIO36, GPIO39, GPIO34, GPIO35. These read signals but cannot drive an output and have no internal pull-up.
Strapping: GPIO12, GPIO5, GPIO2, GPIO15. These set the boot mode at reset, so pulling them the wrong way can stop the board from booting.
3.3V logic: pins are not 5V tolerant, so level-shift or divide any 5V signal into an input.
Pins by capability
A quick map of which pins do what. Colours match the pin table below.
Starter circuits to learn with
Beginner projects for the ESP32 DevKit V1 (DOIT, 30-pin). The pins below come straight from its real pin map, so they are safe to wire as shown.
Blink an LED
GPIO32Drive an LED (through a ~220Ω resistor) from GPIO32 and toggle it in loop(). The classic first sketch.
digitalWrite()
Fade an LED (PWM)
GPIO32Use GPIO32 with analogWrite() to smoothly ramp an LED from off to full brightness.
analogWrite()
Read a potentiometer
GPIO36Wire a potentiometer's wiper to GPIO36 and read its position with analogRead().
analogRead()
Read a button
GPIO33Connect a push button between GPIO33 and GND, set the pin to INPUT_PULLUP, and skip the external resistor.
digitalRead() + INPUT_PULLUP
Try it without the hardware
Describe one of these circuits in the Studio and Banana Board wires it to these exact ESP32 DevKit V1 (DOIT, 30-pin) pins, validates it, and lets you simulate before you build.
Build & simulate in the StudioFull ESP32 DevKit V1 (DOIT, 30-pin) pin map
| Pin | GPIO | Capabilities | Voltage | Notes |
|---|---|---|---|---|
| ENRST | — | — | Chip enable / reset (active-low). Not a usable I/O pin. | |
| 3V33.3V | — | Power | 3.3V | Regulated 3.3V output rail. |
| VIN5V | — | Power | 5V | 5V supply input (USB rail). |
| GNDGND2 | — | GND | — | Ground (2 physical GND pins on the header). |
| GPIO36D36 36 VPinput-only | 36 | Digital inADC | ADC1_CH0 | Input-only; no internal pull-up/down. |
| GPIO39D39 39 VNinput-only | 39 | Digital inADC | ADC1_CH3 | Input-only; no internal pull-up/down. |
| GPIO34D34 34input-only | 34 | Digital inADC | ADC1_CH6 | Input-only; no internal pull-up/down. |
| GPIO35D35 35input-only | 35 | Digital inADC | ADC1_CH7 | Input-only; no internal pull-up/down. |
| GPIO32D32 32 | 32 | DigitalPWMI2CSPIADCTouch | ADC1_CH4 | Safe general-purpose pin. |
| GPIO33D33 33 | 33 | DigitalPWMI2CSPIADCTouch | ADC1_CH5 | Safe general-purpose pin. |
| GPIO25D25 25 | 25 | DigitalPWMI2CSPIADCDAC | ADC2_CH8 | 8-bit DAC output (DAC1). ADC2 unusable with Wi-Fi. |
| GPIO26D26 26 | 26 | DigitalPWMI2CSPIADCDAC | ADC2_CH9 | 8-bit DAC output (DAC2). ADC2 unusable with Wi-Fi. |
| GPIO27D27 27 | 27 | DigitalPWMI2CSPIADCTouch | ADC2_CH7 | Safe pin. ADC2 unusable with Wi-Fi. |
| GPIO14D14 14 | 14 | DigitalPWMI2CSPIADCTouch | ADC2_CH6 | HSPI CLK; outputs PWM at boot. ADC2 unusable with Wi-Fi. |
| GPIO12D12 12strapping | 12 | DigitalPWMI2CSPIADCTouch | ADC2_CH5 | Strapping (MTDI): boot FAILS if pulled HIGH. HSPI MISO. |
| GPIO13D13 13 | 13 | DigitalPWMI2CSPIADCTouch | ADC2_CH4 | HSPI MOSI. ADC2 unusable with Wi-Fi. |
| GPIO23D23 23 | 23 | mosiDigitalPWMI2C | — | Default VSPI MOSI. |
| GPIO22D22 22 SCL | 22 | sclDigitalPWMSPI | — | Default I2C SCL. |
| GPIO1D1 1 TX0 | 1 | U0TXDDigitalPWMI2CSPI | — | UART0 TX — USB serial/upload; avoid repurposing. |
| GPIO3D3 3 RX0 | 3 | U0RXDDigitalPWMI2CSPI | — | UART0 RX — USB serial/upload; avoid repurposing. |
| GPIO21D21 21 SDA | 21 | sdaDigitalPWMSPI | — | Default I2C SDA. |
| GPIO19D19 19 | 19 | misoDigitalPWMI2C | — | Default VSPI MISO. |
| GPIO18D18 18 | 18 | sckDigitalPWMI2C | — | Default VSPI SCK. |
| GPIO5D5 5strapping | 5 | csDigitalPWMI2C | — | Default VSPI CS; strapping (outputs PWM at boot). No ADC/touch. |
| GPIO17D17 17 TX2 | 17 | U2TXDDigitalPWMI2CSPI | — | UART2 TX. |
| GPIO16D16 16 RX2 | 16 | U2RXDDigitalPWMI2CSPI | — | UART2 RX. |
| GPIO4D4 4 | 4 | DigitalPWMI2CSPIADCTouch | ADC2_CH0 | Safe pin. ADC2 unusable with Wi-Fi. |
| GPIO2D2 2strapping | 2 | DigitalPWMI2CSPIADCTouch | ADC2_CH2 | Onboard LED; strapping (float/LOW to flash). ADC2 unusable with Wi-Fi. |
| GPIO15D15 15strapping | 15 | DigitalPWMI2CSPIADCTouch | ADC2_CH3 | HSPI CS; strapping (outputs debug at boot); has internal pull-up. |
29 of 29 pins shown. Data verified against the board pin map Banana Board uses to check every design.
Design an ESP32 DevKit V1 (DOIT, 30-pin) PCB from a sentence
Describe your ESP32 DevKit V1 (DOIT, 30-pin) project and Banana Board wires it to these exact pins, validates it, then places and routes a fab-ready 2-layer board.
Frequently asked questions
Is the ESP32 DevKit V1 (DOIT, 30-pin) 3.3V or 5V logic?
The ESP32 DevKit V1 (DOIT, 30-pin) runs at 3.3V logic. Its GPIO pins are not 5V tolerant, so use a level shifter or divider when connecting 5V signals to an input.
How many GPIO pins does the ESP32 DevKit V1 (DOIT, 30-pin) have?
The ESP32 DevKit V1 (DOIT, 30-pin) exposes 25 usable GPIO pins, plus 2 power and 1 ground pins.
Which pins are PWM-capable on the ESP32 DevKit V1 (DOIT, 30-pin)?
Most GPIO pins on the ESP32 DevKit V1 (DOIT, 30-pin) can output PWM (21 pins in total).
How many analog (ADC) inputs does the ESP32 DevKit V1 (DOIT, 30-pin) have?
The ESP32 DevKit V1 (DOIT, 30-pin) has 15 ADC-capable pins: 15 pins (GPIO36, GPIO39, GPIO34, GPIO35, GPIO32, GPIO33, GPIO25, GPIO26, GPIO27, GPIO14, GPIO12, GPIO13, GPIO4, GPIO2, and more).
Which pins on the ESP32 DevKit V1 (DOIT, 30-pin) are input-only?
GPIO36, GPIO39, GPIO34, GPIO35 are input-only. They can read digital or analog signals but cannot drive an output and have no internal pull-up or pull-down.
Which pins on the ESP32 DevKit V1 (DOIT, 30-pin) are strapping pins to avoid?
GPIO12, GPIO5, GPIO2, GPIO15 are strapping pins that set the boot mode at reset. Using them for peripherals can stop the board from booting, so prefer other GPIOs or make sure your circuit does not pull them the wrong way at power-up.
Does the ESP32 DevKit V1 (DOIT, 30-pin) have a true analog output (DAC)?
Yes. GPIO25, GPIO26 provide a real digital-to-analog output, unlike PWM pins which only approximate an analog voltage.
Build it, do not just look it up
Describe your circuit in one sentence and Banana Board wires it to these exact pins, validates it, and lays out a fab-ready PCB.