Describe what the ESP32 is and what it has on board that an Arduino Uno does not.
Find your way around the DEVKIT V1: the USB port, the regulator, the EN and BOOT buttons, and the two rows of headers.
Read the pinout and pick a GPIO with confidence, knowing which are safe, which are input-only, and which will stop the board booting.
Explain the difference between digital and analog pins, and which pins can do which.
Install ESP32 support in the Arduino IDE and upload your first sketch.
Use the BOOT-button trick when an upload refuses to connect.
Power a breadboard safely from the board, and know the difference between 3V3 and VIN.
Still no wiring. This is the tour before the work starts.
1 · What is the ESP32?
The ESP32 is a low‑cost, low‑power System‑on‑a‑Chip (SoC) from Espressif. A single chip packs:
A dual‑core 32‑bit processor (Xtensa LX6) up to 240 MHz
Wi‑Fi (2.4 GHz) and Bluetooth (Classic + BLE)
520 KB SRAM and typically 4 MB flash
ADC, DAC, PWM, I²C, SPI, UART, and capacitive‑touch peripherals
Its built‑in wireless makes it ideal for IoT: several later projects host a web server right on the board.
"ESP32" means two things: the bare chip and the development board around it. We use the DEVKIT V1 board, which adds USB, a regulator, buttons, and header pins so the chip is easy to program.
2 · What's in the kit
The full kit: ESP32 board, breadboard, OLED, sensors, potentiometer, buzzers, relay, LEDs, resistors, buttons, USB cable, and jumper wires.
3 · Board tour
Major parts of the ESP32 DEVKIT V1.
Part
What it does
Micro‑USB port
Uploads code and powers the board. Use a data cable, not charge‑only.
CP2102 (USB‑to‑UART)
Bridges USB and the ESP32's serial port. Needs the CP210x driver (§8). Some boards use CH340 instead.
Voltage regulator
Drops 5 V (USB/VIN) to the 3.3 V the chip runs on.
EN / RESET
Restarts the board and runs the current sketch.
BOOT
Puts the chip into flashing mode (§9).
ESP‑WROOM‑32
The metal module holding the chip, flash, and PCB antenna.
On‑board LEDs
Red = power; blue = wired to GPIO 2 for debugging.
4 · Specifications
Feature
Value
Feature
Value
Cores
2 (dual)
SRAM
520 KB
Clock
up to 240 MHz
Flash
4 MB (typical)
Wi‑Fi
2.4 GHz, 150 Mbps
GPIO header pins
30
Bluetooth
BLE + Classic
Logic level
3.3 V
USB‑UART
CP2102
Max current / pin
40 mA (keep ≤ 12 mA)
5 · The pinout
ESP32 DEVKIT V1 pin functions. Most pins are multiplexed: you pick their role in code.
I²C: SDA = GPIO 21, SCL = GPIO 22
SPI (VSPI): MOSI 23, MISO 19, CLK 18, CS 5
UART0 (USB serial): TX0 = GPIO 1, RX0 = GPIO 3
DAC (true analog out): GPIO 25, GPIO 26
Power:3V3 (regulated out), VIN (5 V from USB), GND
6 · Digital vs. analog: the key idea
DIGITAL: pin is either HIGH (≈3.3 V) or LOW (0 V). LEDs, buttons, relays, buzzers. digitalRead() / digitalWrite().
ANALOG IN: measures a range of voltage (0–3.3 V) → a number 0–4095 (12‑bit). analogRead(). Potentiometer, photoresistor.
ANALOG OUT: two true DAC pins (25, 26); for LEDs/motors we usually fake it with PWM (rapidly pulsing a digital pin).
Two ADC banks:
ADC1: GPIO 32, 33, 34, 35, 36, 39: always usable.
ADC2: GPIO 0, 2, 4, 12, 13, 14, 15, 25, 26, 27: cannot be read while Wi‑Fi is on (prefer ADC1 in Wi‑Fi projects).
ADC is non‑linear near 0 V and 3.3 V: readings flatten at the extremes, so you can't tell 3.2 V from 3.3 V. Keep that in mind for sensor projects.
Tools → Board → Boards Manager…, search esp32, install "esp32 by Espressif Systems": take version 3.0.0 or newer, since Projects 3 and 6 use the Core 3.x PWM functions.
Tools → Board → select "DOIT ESP32 DEVKIT V1".
If no port appears, install the CP210x driver (repo folder Install CP2101 drivers Windows).
The BOOT button: hold it if an upload can't connect.
Click Upload, wait for "Done uploading.", then open Serial Monitor at 115200 baud (all our sketches use this).
If you see "Failed to connect to ESP32: … Connecting…":
Press and hold BOOT.
Click Upload.
When "Connecting…" appears, release BOOT.
After "Done uploading", press EN/RESET to run the sketch.
10 · Breadboard & power basics
The outer rails (+ / −, red / blue) run the board's length and carry power. The inner rows connect in groups of 5, split by the center gap.
Feed logic power from 3V3 → + rail, and GND → − rail.
3.3 V vs 5 V: ESP32 GPIOs are 3.3 V: never put 5 V on a GPIO. The PIR sensor and relay modules need 5 V; power those from VIN, but still drive their signal pins with 3.3 V logic.
Reading resistor color bands (this kit ships 5‑band ±1%)
Resistor
Bands
Used for
220 Ω
Red Red Black Black Brown
LED current limiting
10 kΩ
Brown Black Black Red Brown
Pull‑down / pull‑up
1 kΩ
Brown Black Black Brown Brown
General purpose
Read with the tolerance band (Brown, ±1%) on the right. The first band gives it away: Red starts the 220 Ω; Brown starts the 10 kΩ and 1 kΩ.
11 · Wrapping Up: What You've Learned
You now know the board well enough to stop treating it as a black box. The key takeaways:
The ESP32 is a System-on-a-Chip: processor, Wi-Fi, Bluetooth, and peripherals in one part. The Wi-Fi being on the chip is what makes every project from 5 onward possible.
The board is not the chip. The DEVKIT V1 adds USB, a 3.3 V regulator, and headers so the chip is easy to program.
Not every pin is equal. Some are input-only, some are strapping pins that decide how the board boots, and some are wired to internal flash and must never be touched.
3V3 powers logic, VIN gives you the USB 5 V. GPIOs stay at 3.3 V, always.
Digital pins read two states; ADC pins read a range (0–4095). Only some pins have an ADC, and ADC2 stops working while Wi-Fi is on, which is a trap worth remembering now.
Uploading has a ritual. The IDE resets the board into its bootloader automatically. When that fails, holding BOOT while it says Connecting... does it by hand.
115200 baud, every time. Garbage in the Serial Monitor is nearly always the wrong rate.
Keep the GPIO Reference open in a tab. You will use it in every project that follows.