
ESP32-S3 board
The board — and the small onboard LED you'll blink.
TinySkiff ESP32-S3 Lab · Day 3 of 30
No wiring today. You upload five short lines and the board's own tiny LED starts blinking — the smallest possible proof that everything from your keyboard to the chip is connected and listening.
TSK-DAY03-BLINK
Hand this to an agent so it can pull the lesson packet and coach you step by step.
01 First, know the pieces
Almost nothing today — the LED you'll blink is already on the board. Tap Define on anything unfamiliar; the answer opens as a field note.

The board — and the small onboard LED you'll blink.

Opens the sketch, uploads it, and reports "Done uploading."

Sketch_01.1_Blink.ino
02 One action at a time
The whole day is upload-and-watch. Tap each step as you go to keep your place — you can finish without opening a single field note.
Plug the ESP32-S3 into your computer with a data-capable USB-C cable.
In Arduino IDE, select your ESP32-S3 board and the port it appears on.
Open Sketch_01.1_Blink.ino.
Press Upload and wait for the IDE to say Done uploading.
Watch the small onboard LED near the chip start to blink.
03 Read just enough code
Five short lines. Two of them run once to get ready; three of them repeat forever. That's the shape of nearly every Arduino sketch.
#define LED_BUILTIN 2
void setup() {
pinMode(LED_BUILTIN, OUTPUT);
}
void loop() {
digitalWrite(LED_BUILTIN, HIGH); // on
delay(1000); // wait 1 second
digitalWrite(LED_BUILTIN, LOW); // off
delay(1000); // wait 1 second
}
#define LED_BUILTIN 2Names the onboard LED's pin so the rest of the sketch reads plainly. pinMode(LED_BUILTIN, OUTPUT)Runs once in setup() to say this pin will push signal out. digitalWrite(LED_BUILTIN, HIGH)Turns the LED on; LOW turns it off. delay(1000)Holds that state for one second before the next line. 04 Understand, don't memorise
There's no magic here — just two functions the board runs in a fixed order, over and over.
The board prepares the pin as an output.
Everything inside runs again and again without stopping.
Voltage on the pin lights the LED; delay holds it there.
Voltage off; delay holds the dark before it repeats.
one blink = 1 s on + 1 s off = a 2-second cycle
setup() gets things ready a single time; loop() is the part that keeps running.
05 Know it worked
Nothing prints to the screen today — the proof is on the board itself.
The larger LED that stays lit is the power light — look for the smaller one that blinks.
06 Make the idea yours
Same sketch, one small change: the two delay numbers. Timing is what gives a blink its character.
Set both delay(1000) lines to delay(200) and upload. Notice how different 200 feels.
Adjust the two numbers until the blink feels like a resting pulse. Write down what you landed on.
Logbook
07 Learn it with a hand on the tiller
Every lesson ships with a code and a machine-readable packet, so an agent can guide you with full context.
TSK-DAY03-BLINK
How the agent should behave: keep it to upload-and-watch, check board and port and cable before touching code, and explain setup()/loop() and the delay numbers on request.