PinLab › Components › ESP32 DevKit V1
ESP32-WROOM-32 ENVIN D233V3 USB

ESP32 DevKit V1

microcontroller with WiFi and Bluetooth

The brain of every project. The ESP32 is a dual-core 240 MHz microcontroller with built-in WiFi and Bluetooth, 520 kB RAM and 4 MB flash. The development board (DevKit V1) adds a USB port for programming, a 5 V → 3.3 V regulator and two buttons.

Open the course →

How it works

You write a program in the Arduino IDE, upload it over USB, and the ESP32 runs it in an endless loop (loop()). Through the GPIO pins it reads signals from sensors (input) or drives LEDs, relays and motors (output). Every pin works at 3.3 V — that is the most important thing to remember.

Pins and wiring

PinWhat it isWhere it connects / why
3V33.3 V output from the regulatorPower for sensors and modules that run on 3.3 V (DHT22, OLED, potentiometer). About 500 mA total maximum.
VIN / 5V5 V input/outputWith USB connected there is ~5 V here. Powers modules that need 5 V (HC-SR04, servo, relay, PIR).
GNDGround (0 V), two pinsThe common reference point. Every component needs a path to GND.
GPIO (D0…D33)Digital input/output pinsCan be an input (reads 0/1) or an output (gives 0 or 3.3 V). Most also support PWM.
GPIO 34, 35, 36 (VP), 39 (VN)Input onlyNo output stage and no internal pull-up/pull-down resistor. Excellent for analog reading (ADC1).
ADC1 (GPIO 32–39) / ADC2Analog-to-digital converter, 12-bit (0–4095)For potentiometer, LDR, analog sensors. ADC2 (GPIO 0, 2, 4, 12–15, 25–27) does not work while WiFi is on — use ADC1.
DAC (GPIO 25, 26)Digital-to-analog output, 8-bitCan output a true analog voltage 0–3.3 V (e.g. for audio).
TOUCH (T0–T9)Capacitive touch sensorsGPIO 4, 0, 2, 15, 13, 12, 14, 27, 33, 32 — react to a finger touch without extra components.
TX0 / RX0 (GPIO 1, 3)UART0 — serial link to the computerUsed by USB for the Serial Monitor. Do not use for anything else while debugging.
TX2 / RX2 (GPIO 17, 16)UART2 — free serial portFor GPS, Bluetooth modules and other UART devices.
SDA (GPIO 21) / SCL (GPIO 22)I2C bus (default pins)For OLED display, RTC, BMP280 and all I2C devices. Several devices on one bus, each with its own address.
MOSI 23 / MISO 19 / SCK 18 / CS 5SPI bus (VSPI)Fast communication for SD cards, TFT displays, nRF24.
ENReset (active low)Connect to GND and the board resets. The EN button does the same.
GPIO 0 (BOOT)Strapping pin — programming modeThe BOOT button pulls it to GND. If you use it, make sure it is not at GND at power-up.
GPIO 2Built-in LED (blue) on DevKit V1Use it for a test without anything external. Also a strapping pin.

Specifications

ProcessorXtensa LX6, 2 cores, 240 MHz
RAM520 kB SRAM
Flash4 MB
Logic voltage3.3 V (pins do NOT tolerate 5 V)
Max current per pin~12 mA recommended, 40 mA absolute max
WiFi802.11 b/g/n, 2.4 GHz
Bluetoothv4.2 + BLE
GPIO25 usable on DevKit V1
ADC18 channels, 12-bit
PWM16 channels (LEDC)

Tips and typical mistakes

Used in projects