CNAP

ESP32 DevKit V1 Reference

A dual-core WiFi/Bluetooth-capable microcontroller board. Unlike the AVR-based Arduino boards, all GPIOs run at 3.3V logic — do not drive them from 5V sources.

Pin names

Left header

Pin IDLabelSignalNotes
ENENEnable / reset
VPVP (A0)AnalogInput-only, ADC1
VNVN (A1)AnalogInput-only, ADC1
D34 / D35D34, D35AnalogInput-only pins
D32 / D33D32, D33PWM
D25 / D26 / D27D25, D26, D27PWM
D14 / D12 / D13D14, D12, D13PWM
GND.2GNDPowerGround
VINVINPower5V input (via onboard regulator)

Right header

Pin IDLabelSignalNotes
D23D23Digital
D22D22 / SCLI²CI²C clock
TX0 / RX0TX0, RX0USARTSerial 0 (shared with USB)
D21D21 / SDAI²CI²C data
D19 / D18 / D5D19, D18, D5PWM
TX2 / RX2TX2, RX2USARTSerial 2
D4 / D2 / D15D4, D2, D15PWM
GND.1GNDPowerGround
3V33.3VPower3.3 V output

Quick reference

CapabilityPins
Digital I/O~25 usable GPIOs
Analog inputVP/VN, D32–D35 (ADC1, input-only pins recommended when WiFi is active)
PWM outputAny GPIO via the LEDC peripheral (software-driven, not a fixed set of pins)
I²CD21 (SDA), D22 (SCL) — remappable in software
USARTSerial 0 (TX0/RX0), Serial 2 (TX2/RX2)
Operating voltage3.3 V logic (VIN accepts 5V through onboard regulator)
Clock speed240 MHz dual-core
WirelessWiFi (802.11 b/g/n), Bluetooth Classic + BLE

Usage

#include <WiFi.h>

void setup() {
  pinMode(2, OUTPUT);
  Serial.begin(115200);

  WiFi.begin("your-ssid", "your-password");
  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }
  Serial.println("\nConnected: " + WiFi.localIP().toString());
}

void loop() {
  digitalWrite(2, HIGH);
  delay(500);
  digitalWrite(2, LOW);
  delay(500);
}

All GPIOs are 3.3V — connecting a 5V signal directly (e.g. from a 5V sensor's output) can damage the board. Use a logic-level shifter or voltage divider for 5V peripherals.

See also