ESP32 Tutorial

The ESP32 is a small, inexpensive microcontroller chip made by Espressif Systems with Wi-Fi and Bluetooth built directly into the chip - which is exactly why it became the default choice for DIY IoT projects: no separate wireless module needed, and it costs only a few dollars. This 10-lesson track covers it end to end: full specifications, the complete GPIO pin restrictions (ESP32 has far more "special-purpose" pins than a Raspberry Pi, and getting this wrong is the single most common way people damage a board), connecting to Wi-Fi, Bluetooth and BLE, reading analog sensors, your first LED project, and real project ideas.

Read this before buying anything: unlike the Raspberry Pi, "ESP32" refers to the chip itself, not one single official board. Espressif and dozens of third-party manufacturers sell many different ESP32 development boards (ESP32-WROOM-32 DevKitC, NodeMCU-32S, and many unbranded clones), and they do not all break the same pins out to the same physical header position. The chip-level rules in this track (which pins are input-only, which are reserved, which share hardware with Wi-Fi) apply to every ESP32 board - but always check your specific board's own silkscreen labels or documentation before wiring, rather than assuming a pin position from a photo of a different board.

ESP32 at a Glance

SpecValue
CPUDual-core Xtensa LX6, up to 240MHz
RAM520KB internal SRAM
FlashExternal SPI flash, commonly 4MB on WROOM-32 modules (varies by module)
Wi-Fi802.11 b/g/n, 2.4GHz, up to 150Mbps
BluetoothBluetooth v4.2 BR/EDR (Classic) + Bluetooth LE, dual-mode
Logic voltage3.3V (GPIO pins are NOT 5V tolerant)
Analog18 ADC channels, 2 DAC channels, 10 capacitive touch pins

Full breakdown and every other spec in the Specifications lesson.

Why It's Different From the Raspberry Pi

The Raspberry Pi Zero W (covered elsewhere in this Electronics section) runs a full Linux operating system and is, for most purposes, a tiny computer. The ESP32 is a microcontroller, not a computer - there's no operating system by default, just your own program running in a loop (or, with the more advanced ESP-IDF toolchain, a set of FreeRTOS tasks). That means the ESP32 boots almost instantly, draws far less power, and is genuinely built for "always-on" sensor and wireless-control projects - but it also means far less RAM, no filesystem in the way you'd expect from Linux, and no SSH session to log into.

Note: This page's code and wiring instructions are a preview, not something you can run right on this website - this server runs PHP, not the ESP32's own firmware. Every example in this track is real code meant to be compiled and uploaded to your own ESP32 board.

What You'll Learn In This Track

AreaCovered in
FoundationsWhat the ESP32 is, full specifications, and development environment choices
Hardware referenceThe complete GPIO restrictions - input-only pins, flash-reserved pins, strapping pins, ADC/DAC/touch pins
Your first projectWiring and coding your first GPIO project - blinking an LED
WirelessConnecting to Wi-Fi, and using Bluetooth Classic + BLE
Sensors & going furtherReading analog sensors with the ADC, common real-world projects, and a best-practices wrap-up
Next steps: Head to Introduction for the history and context before diving into specs and wiring.