TinySkiff ESP32-S3 Lab · Day 29 of 30

Put the board
on the network

No wiring today — the radio is already inside the ESP32-S3. You hand the board your Wi-Fi name and password, watch it join your network, and read back the address your router assigns it. That address is the board's berth number, and Day 30 dials it.

About 25 minutesArduino firstMicroPython optionalNo wiring today
Agent assist code TSK-DAY29-WIFI

Hand this to an agent so it can pull the lesson packet and coach you step by step.

01 First, know the pieces

What you need

Three things on the bench, plus one you already own: the name and password of your 2.4 GHz Wi-Fi network. Have both written down before you start. Tap Define on anything unfamiliar — the answer opens as a field note you can read and dismiss without losing your place.

Official manual photo of the ESP32-S3 development board.
Manual photo

ESP32-S3 board

The brain of the build — with a Wi-Fi radio already aboard.

Official manual screenshot of the Arduino IDE interface.
Manual screenshot

Arduino IDE

Uploads the sketch and opens Serial Monitor.

Official manual page showing the WiFi Station sketch and its Serial Monitor output.
Manual sketch

Official sketch

Sketch_23.1_WiFi_Station.ino

02 One action at a time

Build it

The whole day is edit two lines, upload, and read the monitor. Tap each step as you go to keep your place — you can finish without opening a single field note.

0 / 7 done
  1. Plug the ESP32-S3 into your computer with a data-capable USB cable.

  2. Open Sketch_23.1_WiFi_Station.ino in Arduino IDE.

  3. Replace both "********" strings with your own Wi-Fi name and password — keep the double quotes, and use your 2.4 GHz network.

  4. Select your ESP32-S3 board and its port, then press Upload.

  5. Open Serial Monitor and set the baud rate to 115200.

  6. Watch Setup start, then dots while the board negotiates, then the IP address your router assigns.

  7. Write that address in your logbook — Day 30 dials it.

You're aboard the network.

Your ESP32-S3 holds an address on your Wi-Fi. Head to Test & debug to confirm each line of the monitor.

03 Read just enough code

Read the code

The sketch is short enough to read whole. Two lines near the top hold the placeholders you replace with your own credentials; setup() does all the work and loop() stays empty. Switch to MicroPython if you'd rather see the same idea in Python.

Sketch_23.1_WiFi_Station.ino
#include <WiFi.h>

const char *ssid_Router     = "********"; //Enter the router name
const char *password_Router = "********"; //Enter the router password

void setup(){
  Serial.begin(115200);
  delay(2000);
  Serial.println("Setup start");
  WiFi.begin(ssid_Router, password_Router);
  Serial.println(String("Connecting to ")+ssid_Router);
  while (WiFi.status() != WL_CONNECTED){
    delay(500);
    Serial.print(".");
  }
  Serial.println("\nConnected, IP address: ");
  Serial.println(WiFi.localIP());
  Serial.println("Setup End");
}

void loop() {
}
WiFi.begin(ssid_Router, password_Router)Asks to join your router by name — station mode — using the credentials you typed into the two strings above.
while (WiFi.status() != WL_CONNECTED)Waits for the router to accept the board, printing a dot every half second — and it will wait forever, so endless dots mean wrong credentials.
Serial.println(WiFi.localIP())Prints the IP address your router assigned — the board's berth number, and the number Day 30 dials.

04 Understand, don't memorise

One radio, two roles

Chapter 23 of the manual gives the radio three working modes. Today's upload is station mode — the board joins your network the way your phone does. The challenge flips it to access-point mode, where the board hosts a network of its own.

Ask to join

WiFi.begin

The board calls your router by name and offers the password.

Handshake

Router checks

The router verifies the password and accepts the board onto the network.

Get an address

DHCP assigns

The router hands the board an IP address of its own — its berth number.

Report

localIP prints

The sketch prints that address so you can write it down for Day 30.

The two modes station = join a network · access point = be the network

Where the address comes from

Your router runs a small harbourmaster service called DHCP. Every device that joins gets assigned a free berth — an IP address — which is why the one your board prints will differ from the one in this lesson.

Both roles at once

The third mode, AP+Station (Sketch_23.3_AP_Station), runs both at the same time — the board stays joined to your router while hosting its own network.

05 Know it worked

Test & debug

Success and recovery sit side by side, so you never have to go hunting when something looks off.

What you should see
Serial Monitor115200 baud
Setup startConnecting to YourNetworkName......Connected, IP address: 192.168.1.23Setup End

Your network name and the address itself will differ — the IP is whatever your router assigns. A handful of dots is normal; they should stop within a few seconds.

If it doesn't
  • Dots marching forever? The network name or password is wrong. Fix both strings in the sketch, re-upload, and press reset — the loop has no timeout.
  • Your network never connects at all? The board speaks 2.4 GHz Wi-Fi only. Check that your router broadcasts a 2.4 GHz band.
  • Blank monitor? Confirm 115200 baud, then the board and port.
  • AP name missing from your phone's list? The access-point password must be at least 8 characters. Re-upload Sketch_23.2 and rescan.

06 Make the idea yours

Try this: be the network

Same board, opposite role. The second official sketch turns the ESP32-S3 into an access point — a network your phone can see and join. It fits inside today's 25 minutes.

Host your own network

Upload Sketch_23.2_WiFi_AP — the line WiFi.softAP(ssid_AP, password_AP) turns the board into an access point, and the monitor prints Soft-AP IP address = …. Your phone's Wi-Fi list now shows WiFi_Name; join it with the password 12345678.

Fly your own name

Change ssid_AP to your boat's name, pick a new password of 8 or more characters, and re-upload. Rescan on your phone and there it is.

Find the board on the chart

Back in station mode, open your router's device list and find your board there — the same IP address the monitor printed.

Logbook

07 Learn it with a hand on the tiller

Coach me through it

Every lesson ships with a code and a machine-readable packet, so an agent can guide you with full context.

Lesson code

TSK-DAY29-WIFI

How the agent should behave: keep credentials private — the learner edits them into the sketch locally, never into chat — and check the 2.4 GHz band, both placeholder strings, and baud rate before changing code.

Field note

Shortcut

Prompt copied