ESP32 DevKit V1

A breadboard-friendly ESP32-WROOM-32 development board with dual-core 240 MHz processing, Wi-Fi, and Bluetooth on a 30-pin layout.

ESP32 DevKit V1: DOIT · 30-pin

What is the ESP32 DevKit V1?

The DOIT ESP32 DevKit V1 is a compact development board built around the Espressif ESP32-WROOM-32 module. That module carries a dual-core Xtensa LX6 processor clocked up to 240 MHz, 4 MB of SPI flash, and 520 KB of on-chip SRAM, with integrated Wi-Fi 802.11 b/g/n and Bluetooth 4.2 (Classic BR/EDR plus BLE) on a single chip. This combination of processing power and wireless connectivity is what makes the ESP32 a default choice for connected projects.

The 30-pin board is designed for prototyping. Its dual-row header spacing drops onto a breadboard, and an onboard USB-to-UART bridge (CP2102 on genuine DOIT boards) plus auto-reset circuitry let you program and monitor over the Micro-USB connector without external hardware. Broken out to the pins are 25 usable GPIO, 15 channels of 12-bit ADC, two DAC outputs, 16 PWM-capable channels, and hardware SPI, I2C, and two UARTs. A built-in LED sits on GPIO2, and BOOT and EN buttons handle flashing and reset.

Makers use the DevKit V1 for IoT sensor nodes, Wi-Fi web servers and home-automation controllers, BLE peripherals and beacons, MQTT clients, and ESP-NOW device-to-device links. It is programmable through the Arduino IDE, Espressif's ESP-IDF, and MicroPython, so the same board suits both beginner sketches and lower-level firmware.

ESP32 DevKit V1 pin reference

PinFunctionType
VIN VINPowerPower in
GND_L GNDPowerPower in
IO13 D13 (IO13)PWM · DigitalBidirectional (GPIO)
IO12 D12 (IO12)PWM · Digital · Strapping selects flash voltage at boot (LOW=3.3V default, HIGH=1.8V can brick board)Bidirectional (GPIO)
IO14 D14 (IO14)PWM · DigitalBidirectional (GPIO)
IO27 D27 (IO27)DigitalBidirectional (GPIO)
IO26 D26 (DAC2)Analog DAC_2 · DigitalBidirectional (GPIO)
IO25 D25 (DAC1)Analog DAC_1 · DigitalBidirectional (GPIO)
IO33 D33 (IO33)Analog ADC1_CH5 · DigitalBidirectional (GPIO)
IO32 D32 (IO32)Analog ADC1_CH4 · DigitalBidirectional (GPIO)
IO35 D35 (IO35)Analog ADC1_CH7 · DigitalDigital input
IO34 D34 (IO34)Analog ADC1_CH6 · DigitalDigital input
VN VN (IO39)Analog ADC1_CH3 · DigitalDigital input
VP VP (IO36)Analog ADC1_CH0 · DigitalDigital input
EN ENDigitalDigital input
3V3 3V3PowerPower out
GND_R GNDPowerPower in
IO15 D15 (IO15)Digital · Strapping controls boot debug log on UART0 (HIGH=enabled, LOW=silent)Bidirectional (GPIO)
IO2 D2 (LED)PWM · Digital · Strapping must be LOW or floating at boot — built-in LED pulls it down via RBidirectional (GPIO)
IO4 D4 (IO4)PWM · DigitalBidirectional (GPIO)
RX2 RX2 (IO16)UART RX · PWM · DigitalBidirectional (GPIO)
TX2 TX2 (IO17)UART TX · PWM · DigitalBidirectional (GPIO)
IO5 D5 (CS)SPI CS · PWM · Digital · Strapping controls SDIO slave timing at boot (default HIGH via internal pull-up)Bidirectional (GPIO)
IO18 D18 (SCK)SPI SCK · DigitalBidirectional (GPIO)
IO19 D19 (CIPO)SPI MISO · DigitalBidirectional (GPIO)
IO21 D21 (SDA)I²C SDA · DigitalBidirectional (GPIO)
RX0 RX0 (IO3)UART RX · DigitalBidirectional (GPIO)
TX0 TX0 (IO1)UART TX · DigitalBidirectional (GPIO)
IO22 D22 (SCL)I²C SCL · DigitalBidirectional (GPIO)
IO23 D23 (COPI)SPI MOSI · DigitalBidirectional (GPIO)

Specifications

Operating voltage
3.3 V
Clock speed
240 MHz
Flash
4 MB
RAM
520 KB
GPIO pins
25
ADC
15 channels · 12-bit
PWM channels
16
Dimensions
51.4 × 28.5 × 15 mm

Verified from the Tinkered component library · DOIT.

Circuit requirements

  • The ESP32 runs on 3.3V logic and is NOT 5V tolerant. Connecting 5V sensor or logic outputs directly to a GPIO can damage the chip; use a level shifter or voltage divider for 5V signals.
  • Power the board one of three ways: the Micro-USB port (5V), the VIN pin (roughly 5V, which passes through the onboard AMS1117 regulator), or the 3V3 pin (already-regulated 3.3V that bypasses the regulator). Do not feed 5V into the 3V3 pin.
  • The 3V3 pin is a regulated output for peripherals, not a second input. Powering from VIN and USB at the same time is generally fine, but never drive VIN and 3V3 externally at once.
  • GPIO34, GPIO35, GPIO36 (VP), and GPIO39 (VN) are input-only. They cannot drive outputs and have no internal pull-up or pull-down resistors, so add an external resistor when you need a defined idle level.
  • ADC2 channels cannot be read while Wi-Fi is active. For analog reads in a connected project, use ADC1 pins (GPIO32-36 and GPIO39).

Simulate the ESP32 DevKit V1 in your browser

The ESP32 DevKit V1 is fully simulated in Tinkered. Wire it into a circuit, write your firmware, and read real values back with no physical hardware. Test your logic before you touch a breadboard.

Open it in the simulator

Common ESP32 DevKit V1 mistakes

Wiring 5V logic straight to a GPIO

Unlike a 5V Arduino, the ESP32's pins are 3.3V. Feeding a 5V sensor output, relay board signal, or 5V pull-up into a GPIO can stress or destroy the pin. Level-shift anything above 3.3V.

Using GPIO34-39 as outputs or with internal pull-ups

These four pins are input-only and have no internal pull resistors. A common surprise is a button on GPIO34 that never reads reliably, or a digitalWrite that silently does nothing. Reserve them for inputs and add external resistors.

Reading an ADC2 pin while Wi-Fi is running

The ADC2 block is shared with the Wi-Fi radio. Analog reads on ADC2 pins return errors or garbage once Wi-Fi is connected. Move analog sensors to ADC1 pins for any networked project.

Hanging peripherals on strapping pins

GPIO0, GPIO2, GPIO5, GPIO12, and GPIO15 are sampled at boot to set flash voltage and boot mode. Pulling GPIO12 high can select 1.8V flash and brick booting; a device that holds GPIO0 low can force download mode. Keep these pins free of strong external pulls during reset.

Assuming it fits one breadboard cleanly

The 30-pin DOIT board is wide. On a standard breadboard it covers the center channel and leaves only one free row per side, or none. Many builders straddle two breadboards or use jumper leads out to a second board.

ESP32 DevKit V1 datasheet

Official ESP32 DevKit V1 datasheetDOIT

Popular ESP32 DevKit V1 projects

Wi-Fi sensor node to the cloud

Read a temperature, humidity, or light sensor and push readings over Wi-Fi to an MQTT broker, ThingSpeak, or a home dashboard.

ESP32 web server for home automation

Host a small web page on the board to switch relays, lights, or fans from any phone on the network, no cloud account required.

BLE peripheral or beacon

Advertise sensor data over Bluetooth Low Energy or act as a BLE beacon for presence detection and phone-to-board control.

ESP-NOW device-to-device link

Use Espressif's ESP-NOW protocol to send data directly between ESP32 boards without a router, ideal for low-latency remote sensors.

MQTT-connected IoT controller

Subscribe and publish over MQTT to tie the board into Home Assistant, Node-RED, or a custom automation pipeline.

Bluetooth game controller or input device

Combine buttons and a joystick with the board's Bluetooth stack to build a wireless gamepad or macro pad.

Build with the ESP32 DevKit V1.

Drop the ESP32 DevKit V1 into a circuit, write firmware, and simulate it in your browser, then deploy to real hardware. All in one editable Tinkered project.