
ESP32-S3 board
The board your computer will learn to see, then write programs onto.
ESP32-S3 Lab · Day 2 of 30
This is the one genuinely fiddly day — software and a driver. So while it installs, we spend the time well: by the end you'll know exactly what happens between pressing Upload and the board running your code. That understanding is what turns every future error from a wall into a checklist.
TSK-DAY02-SETUP
Hand this to an agent so it can pull the lesson packet and coach you step by step.
01 First, know the pieces
Everything today lives on your computer and the cable. Tap Define on anything unfamiliar.

The board your computer will learn to see, then write programs onto.

The free app that compiles your sketch and sends it down the cable into flash.
02 One action at a time
Follow these in order — this is the fiddliest setup of the course, and worth doing slowly once. If a step stalls, the Test & debug section below maps the common snags to the stage of the chain they belong to.
Download and install Arduino IDE 2, then open it.
Open Arduino IDE's settings. On macOS choose Arduino IDE → Settings… or press ⌘,. On Windows or Linux choose File → Preferences.
Scroll to Additional boards manager URLs near the bottom. Click directly in the long text field and paste https://espressif.github.io/arduino-esp32/package_esp32_index.json. Ignore the small button beside it; that is for managing multiple URLs. Click OK once.
Open Tools → Board → Boards Manager… (or click the board-shaped icon in the left sidebar). Search for esp32, find esp32 by Espressif Systems, click Install, and wait until the IDE says the platform is installed. Espressif's install guide describes the same package.
Plug the board directly into the computer with a data-capable USB-C cable. A charge-only cable can light the board up but cannot create a connection in Arduino IDE.
Identify the board's port instead of guessing. Open the board selector at the top of Arduino IDE and note the list. Unplug the ESP32-S3, wait a few seconds, then plug it back in. The item that disappears and returns is the board's port; on macOS its name usually contains usbserial or usbmodem. Ignore Bluetooth, headphones, and debug-console entries.
Select that returning port. If Arduino IDE calls it Unknown, choose Select other board and port…, select the returning port on the right, search for and select ESP32S3 Dev Module on the left, then click OK. The board choice tells the IDE what chip to compile for; the port tells it which connected device should receive the program.
If no item disappears and returns, do not guess from the list. First try another known data-capable USB cable and a different USB port. If the board is still absent, install the CH343 USB driver, restart the computer if its installer asks, and reconnect the board.
03 Understand, don't memorise
Upload feels like one button, but four distinct things happen in order. Knowing them is the difference between "it didn't work" and "it got past compile, so the problem is the connection, not my code."
Your readable C++ is translated into raw instructions built for the ESP32-S3. This is what the board package enabled.
The IDE pulses the board into the bootloader — the small program that listens for new code instead of running the old one.
The compiled bytes travel down USB and are written into flash, the board's permanent storage.
The board restarts, the bootloader hands over, and your fresh program runs — and keeps running with the power off and on.
compile → download mode → flash → run
The board's bootloader speaks old-fashioned serial; your computer speaks USB. A translator chip bridges them, which is why the board shows up as a port and why some systems need its driver first.
Board is a compile-time choice — which chip's instructions to build. Port is a delivery choice — which connected device to send them to. Both must be right, for different reasons.
04 Know it worked
There's no sketch to run yet. Success today is that your computer can see the board as a port — the physical end of that USB-to-serial bridge.
Seeing the port is the whole win today — that port is the serial bridge your code will travel across on Day 3.
05 Make the idea yours
The best way to make "port" real is to watch one blink into existence. This shows you, with your own eyes, that the board arrives as a serial device the moment it's connected — the thing the IDE is choosing in Tools → Port.
With the board unplugged, list serial devices. macOS/Linux terminal: ls /dev/tty. (or /dev/ttyACM, /dev/ttyUSB*). Windows: open Device Manager and expand Ports (COM & LPT). Note what's there.
Connect the board and run the same command. A new entry appears — that's your board arriving through the USB-to-serial bridge. Unplug it and it disappears. That entry is exactly what Tools → Port lists.
06 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-DAY02-SETUP
How the agent should behave: walk the install one step at a time, and use the wait to teach the four-stage upload chain so later troubleshooting is a diagnosis. When the board doesn't appear, locate the failure in the chain- driver, cable, board, port.
Keep your place
Mark it complete — it shows on your course map, and your place is saved on this device.