Power the board for the first time (carefully, rails first) and prove each one before you trust the next.
Bring-up is where the board either comes alive or teaches you something. Do it in order, no shorts, then the rail, then the chip, and let your multimeter, not optimism, tell you each step is safe.
LED2 · ALIVE
Prove the board is safe to power before you ever plug in.
The safest power-on is the one you've already de-risked with a meter.
With no power applied, run a check between and GND, it must NOT beep, and confirm the grounds are tied together. Probe with the meter in continuity mode (the beep symbol): the red lead on the VBUS point (U2's input pad, or its input cap), the black on TP2. A solder bridge found with a meter costs you a minute; the same bridge found by plugging in costs you the board.
Power it and measure: trust the rail only after the meter agrees.
Trust the 3.3 V rail only after you've measured it.
Power the board over USB and, with your meter set to DC volts, measure the rail at the test points: 3.3 V at TP1 (red), ground at TP2 (black). Confirm it reads 3.3 V (3.2–3.4 V is fine) before assuming anything downstream is alive. The red power LED (LED1, fed through R5) should light. If you have a USB power meter inline, glance at the input current too: a healthy idle board draws modestly, while a sudden spike means a fault you should chase before going any further.
| Ref | Part | Role |
|---|---|---|
| TP1 | Red test point | Probe the 3.3 V rail here |
| TP2 | Black test point | Ground reference for your meter |
Make the S3 talk, then flash it and watch for the blink.
Now make the S3 talk.
Plug USB into a host: the native-USB S3 should show up (enumerate) as a device. To load firmware, use the : hold BOOT, tap EN to reset, then release BOOT to drop into USB download mode and flash. A blink on LED2 afterward proves the , your toolchain, and the whole chain end to end. If it powers and the rail's good but the host never sees it, swap to a known-good data USB cable (charge-only cables are the usual culprit), then recheck the USB-data joints (D+/D− to IO20/IO19).
Check yourself
The board powers fine but won't enter flash mode. The button move?
| Symptom | Likely cause | What to do |
|---|---|---|
| Powers, rail good, host never sees it | Charge-only USB cable | Swap to a known-good data cable first |
| Still invisible on a good cable | USB data joints: D+/D− between J1 and the S3 | Inspect and reflow the USB-side joints |
| Enumerates but won't flash | Didn't enter download mode | Redo the dance: hold BOOT, tap EN, release BOOT |
Five proofs, in order, that the board is alive.
Before you log it, confirm all five. All five and it's alive.
No VBUS to GND short.
TP1 reads about 3.3 V (3.2 to 3.4).
LED1 is lit.
The board enumerates on your host.
LED2 blinks after flashing.
8/8
Capture the bring-up measurements and log, then mark each board BROUGHT_UP (or QUARANTINED). That closes the build.
Check yourself
Why check VBUS-to-GND continuity before plugging in USB?
That continuity check proved there's no short between VBUS and GND.
It says nothing about the data lines. If a stray bridge tied VBUS to D+ or D-, the check stays silent, but plugging into your computer would push 5 V straight into the host's USB data pins (they expect 3.3 V) and can kill the port. So for the very first power-up, use a cheap USB wall charger or a hub you don't care about, not your laptop. If the 3.3 V rail and the power LED come up clean on the sacrificial source, then move to the computer to enumerate and flash. Power first, data second.
✓ steady 3.30 V, the rail is good
Check yourself
The board powers but TP1 reads 4.9 V, not 3.3. What failed?
The number on the meter at TP1 tells you where the fault is. A healthy ~3.3 V means the is regulating: move on. 4.9 V (basically the USB input) means the regulator isn't regulating at all and is passing its input straight through: it's mis-oriented, mis-soldered, or its enable pin isn't pulled high, and you must NOT connect 3.3 V parts to that rail. 0 V means either no power is reaching it (a broken joint upstream) or something is dragging it down (a short). Around 3.3 V but LED1 stays dark points at the LED or its resistor, not the rail. The regulator also needs its input to sit comfortably above 3.3 V plus its , so a sagging USB cable can starve it: measure the input too whenever the output looks low.
| TP1 reads… | Likely cause | What to do |
|---|---|---|
| ~3.3 V | The LDO is regulating | Healthy: move on to USB enumeration |
| ~4.9 V | LDO passing its input straight through (backwards, mis-soldered, or EN not high) | Stop: don't connect 3.3 V parts; recheck U2 |
| 0 V | No power reaching it, or a short dragging it down | Check the USB power chain, then hunt for a short |
| ~3.3 V, LED1 dark | The LED or its resistor, not the rail | Check LED1's polarity and R5 |
A few pins do double duty: at the instant the chip comes out of reset it samples its to decide how to start, and then they go back to being ordinary . On the ESP32-S3, GPIO0 is the one that matters here: sampled HIGH (its resting default) the chip boots your firmware; sampled LOW it drops into USB download mode, ready to be flashed. That's the entire button dance: hold BOOT to force GPIO0 low, tap EN to reset the chip so it re-reads the strap, then release BOOT. Because the level is only read at that one instant, you can let go right after. It's also why you don't hang a heavy load on GPIO0: pull it the wrong way at power-up and the board boots into the wrong mode all on its own.
Checkpoint
Quick check: bring-up