Skip to content
microcontrollers / esp32.md

ESP32 Dev Board (30-pin)

Dual-core Tensilica Xtensa LX6 @ 240 MHz with WiFi + Bluetooth Classic + BLE. The Circuitrocks variant uses the CH9102 USB-serial bridge with micro-USB.

In stock Espressif 2 files · 1.0 MB

Specs

Spec Value
SoC ESP32 (Xtensa LX6 dual-core, 240 MHz)
Flash 4 MB (typical)
SRAM 520 KB
WiFi 802.11 b/g/n (2.4 GHz)
Bluetooth Classic + BLE 4.2
GPIO 25 usable (30-pin board)
ADC 12-bit, 18 channels (use ADC1 if WiFi is on)
DAC 2× 8-bit
Operating voltage 3.3 V (5 V tolerant on USB only)
USB-serial CH9102

Pinout summary (30-pin)

Group Pins
Power 3V3, GND, VIN (5 V)
Strapping (boot mode) GPIO0, GPIO2, GPIO5, GPIO12, GPIO15
Input-only GPIO34, 35, 36, 39
Default I²C SDA = GPIO21, SCL = GPIO22
Default SPI (VSPI) MISO 19, MOSI 23, SCK 18, CS 5
Default UART (UART0) RX 3, TX 1 (also USB)
Touch T0–T9 (GPIO 0, 2, 4, 12–15, 27, 32, 33)

Strapping pins

GPIO0 must be HIGH at boot (it pulls low for download mode). Avoid loads on GPIO12 at boot — it sets flash voltage.

Wiring example — WiFi scan

#include <WiFi.h>

void setup() {
  Serial.begin(115200);
  WiFi.mode(WIFI_STA);
  WiFi.disconnect();
}

void loop() {
  int n = WiFi.scanNetworks();
  for (int i = 0; i < n; i++) {
    Serial.printf("%2d  %4d dBm  %s\n", i, WiFi.RSSI(i), WiFi.SSID(i).c_str());
  }
  Serial.println("---");
  delay(5000);
}

Board: ESP32 Dev Module in Arduino IDE.

Driver install

The CH9102 needs its driver on Windows and older macOS. Download from wch-ic.com/products/CH9102.html. Linux works out of the box (kernel ≥ 5.4).

Schematic

Open ESP32-DevKitC schematic (PDF)

The DevKitC schematic matches the 30-pin board's MCU side. USB-serial section differs (CH9102 vs CP2102N) but the ESP32 pinout is identical.

Last updated: 2026-05-13 · Source on GitHub