PROJECT 0 · FOUNDATION

Introduction, Board Tour & Setup

Kit: LAFVIN Basic Starter Kit for ESP32  ·  Board: ESP32 DEVKIT V1 (ESP‑WROOM‑32, 30‑pin)

The foundation for every other project: what the ESP32 is, how to read its pins, and how to upload your first sketch.

Brand new to electronics? Read Project 00 — Electronics & Communication Basics first.

1 · What is the ESP32?

The ESP32 is a low‑cost, low‑power System‑on‑a‑Chip (SoC) from Espressif. A single chip packs:

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

LAFVIN ESP32 Basic Starter Kit packing list
The full kit: ESP32 board, breadboard, OLED, sensors, potentiometer, buzzers, relay, LEDs, resistors, buttons, USB cable, and jumper wires.

3 · Board tour

ESP32 DEVKIT V1 board with major parts labeled
Major parts of the ESP32 DEVKIT V1.
PartWhat it does
Micro‑USB portUploads 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 regulatorDrops 5 V (USB/VIN) to the 3.3 V the chip runs on.
EN / RESETRestarts the board and runs the current sketch.
BOOTPuts the chip into flashing mode (§9).
ESP‑WROOM‑32The metal module holding the chip, flash, and PCB antenna.
On‑board LEDsRed = power; blue = wired to GPIO 2 for debugging.

4 · Specifications

FeatureValueFeatureValue
Cores2 (dual)SRAM520 KB
Clockup to 240 MHzFlash4 MB (typical)
Wi‑Fi2.4 GHz, 150 MbpsGPIO header pins30
BluetoothBLE + ClassicLogic level3.3 V
USB‑UARTCP2102Max current / pin40 mA (keep ≤ 12 mA)

5 · The pinout

ESP32 DEVKIT V1 pinout diagram
ESP32 DEVKIT V1 pin functions. Most pins are multiplexed — you pick their role in code.

6 · Digital vs. analog — the key idea

Two ADC banks:

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.

7 · Which GPIOs should you use?

CategoryPinsNotes
SAFE general‑purpose4, 13, 16, 17, 18, 19, 21, 22, 23, 25, 26, 27, 32, 33First choice for inputs and outputs.
STRAPPING0, 2, 5, 12, 15Read at boot. Usable, but a wrong level can block uploading — avoid for sensitive inputs.
BOOT HIGH/PWM1, 3, 5, 14, 15Pulse or go HIGH at reset — may glitch attached outputs.
INPUT‑ONLY34, 35, 36 (VP), 39 (VN)No output, and no internal pull‑up/down.
DO NOT USE6, 7, 8, 9, 10, 11Wired to the internal SPI flash.
Current limit: 40 mA absolute per pin, but keep each under ~12 mA. That's why every LED gets a 220 Ω series resistor.

8 · Install ESP32 support in Arduino IDE

  1. Install the Arduino IDE (1.8.x or 2.x).
  2. File → Preferences → Additional Boards Manager URLs, add:
    https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json
  3. Tools → Board → Boards Manager…, search esp32, install "esp32 by Espressif Systems".
  4. Tools → Board → select "DOIT ESP32 DEVKIT V1".
  5. If no port appears, install the CP210x driver (repo folder Install CP2101 drivers Windows).
  6. Tools → Port → choose the board's port.
Want the full picture‑by‑picture walkthrough with every dialog? See Project 0b — Arduino IDE Setup.

9 · Uploading & the BOOT‑button trick

Location of the BOOT button on the ESP32 board
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…":

  1. Press and hold BOOT.
  2. Click Upload.
  3. When "Connecting…" appears, release BOOT.
  4. After "Done uploading", press EN/RESET to run the sketch.

10 · Breadboard & power basics

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%)

ResistorBandsUsed for
220 ΩRed Red Black Black BrownLED current limiting
10 kΩBrown Black Black Red BrownPull‑down / pull‑up
1 kΩBrown Black Black Brown BrownGeneral 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 · Next

Next, set up your software in Project 0b — Arduino IDE Setup, then build Project 1 — Inputs & Outputs (button + LED) and work up through analog input, PWM, sensors, and the Wi‑Fi web‑server projects.