First Light: Blinking an LED on the ESP32-S3
📅 June 17, 2026 · 🔌 ESP32-S3
Bill of materials
| Part | Qty |
|---|---|
| ESP32-S3 DevKitC | 1 |
| 5mm LED | 1 |
| 220Ω resistor | 1 |
| Breadboard + jumper wires | 1 |
The full build-log for this one lives at dankbuild.com. What follows here is the short summary: the parts, the wiring, and the blink sketch.
Why I started this
I build web things for a living, but lately I’ve been pulled toward hardware — microcontrollers, sensors, and the satisfying moment when code makes something in the physical world move. The build-logs are my notebook: what I built, the bill of materials, the wiring, the code, and the gotchas.
The classic “hello world”: blink
Every embedded journey starts with blinking an LED. Here it is on an ESP32-S3 using the Arduino core:
#define LED_PIN 2
void setup() {
pinMode(LED_PIN, OUTPUT);
}
void loop() {
digitalWrite(LED_PIN, HIGH);
delay(500);
digitalWrite(LED_PIN, LOW);
delay(500);
}
Wire the LED to GPIO2 through a 220Ω resistor to ground, flash, and you’ve got first light.
The mistakes are written up on the canonical copy rather than here: see Flashing it, and what goes wrong the first time.
The hardware build-logs have their own home at dankbuild.com — that copy of this post is the canonical one, and new ESP32 write-ups land there, not here. There’s no newsletter and nothing to sign up for: they show up in the RSS 2.0 feed at dankbuild.com/feed.xml, which you can paste into any feed reader.