Cheatsheet: ESP32 BLE Gadget: Build a Two-Way Phone Device
One-page lookup card for the whole course: board basics, toolchain, BLE two-way communication, and hardening.
Module 1: Set Up and Flash Your First Sketch
1.1 Meet the ESP32 Dev Board
Three meanings of "ESP32"
| Term | Meaning |
|---|---|
| Chip | The bare Espressif SoC (e.g. ESP32-D0WD) |
| Module | Chip + flash + antenna (e.g. ESP32-WROOM-32) |
| Dev board | Module + USB, regulator, buttons (e.g. DevKitC) |
Board parts and pin safety
| Item | What to know |
|---|---|
| Logic level | 3.3 V only. Never feed 5 V into a GPIO |
| Power | USB (5 V) or 3.3 V pin; board regulator handles the rest |
| Safe GPIOs | Most general pins; check your board's pinout |
| Avoid | GPIO 6 to 11 (wired to internal flash) |
| Strapping pins | GPIO 0, 2, 12, 15 affect boot mode; use with care |
| Input-only | GPIO 34 to 39 (no output, no pull-up) |
| Boot / Reset | Hold BOOT, tap EN to enter flash mode if upload stalls |
[!WARNING] 5 V on a 3.3 V GPIO destroys the pin or the chip. Double-check wiring before powering.
1.2 Install PlatformIO and Flash a Blink Sketch
Install chain
1. Install VS Code.
2. Install the PlatformIO IDE extension.
3. Open PlatformIO Home, then New Project.
4. Name the project, pick your board (e.g. `Espressif ESP32 Dev Module`), pick the Arduino framework.
5. Write code in `src/main.cpp`, then Build and Upload.
Project layout
my-gadget/
platformio.ini
src/
main.cpp
lib/
test/
platformio.ini essentials
[env:esp32dev]
platform = espressif32
board = esp32dev
framework = arduino
monitor_speed = 115200
Blink sketch
#include <Arduino.h>
void setup() {
pinMode(LED_BUILTIN, OUTPUT);
}
void loop() {
digitalWrite(LED_BUILTIN, HIGH);
delay(500);
digitalWrite(LED_BUILTIN, LOW);
delay(500);
}
This cheatsheet is part of the paid section. Sign in and purchase the course to view the full content. Sign in