XIAO ESP32S3: Beginner guide

Draft. Untested on hardware. Read with an adult nearby. This page is written for a beginner reader; it does not certify the product for any age.

View or save the portrait PDF (opens a new tab)

You can give this small board a program and make its own light blink. A program is a list of instructions. An LED is a tiny electric light. No extra light or wires are needed.

A small instruction follower

A microcontroller is a small computer that follows your program. The board holds it and its connections. Flash memory saves your program after you unplug it. S2 S4

This board also has Wi-Fi and Bluetooth LE. These are ways to send information without wires. An antenna helps those signals travel. We will not use them for this blink. S1

Find the socket and buttons

Plain XIAO ESP32S3 parts Original conceptual component-side board, USB up. RESET and charge LED are left of USB; BOOT and user LED right. Shield central; antenna socket and expansion connector below it. Separate underside detail names battery pads, eight round pads and the thermal pad. Round-pad identities follow the maker drawing, with no schematic TP positions inferred. Not to scale. Plain XIAO · component side USB-C RESET BOOT Charge LED User LED Metalshield Edge pads Antenna socket Expansion connector Underside detail · USB up MTDO GND MTCK D+ MTDI EN MTMS D− BAT− BAT+ Battery pads Thermal pad Eight round pads · no TP positions Conceptual · not to scale Positions Source 1 Source 2 · nets Source 3

USB-C is the socket for the cable. RESET restarts the board. BOOT helps send a program when the usual method fails. The user LED is the light you will control. S1 S3

The other light is the charge LED. It belongs to the battery charger. Battery pads are the small metal battery connections underneath. Leave them alone today. S3

Leave other connections alone

The metal shield is a cover over the computer parts. Edge pads are flat metal connections around the sides. You do not need them today. Do not solder anything: solder is melted metal used to join parts. S1 S3

GPIO means a connection a program can use to send or read a signal. A signal carries information. These signals use 3.3 V. V means volts, a measure of electrical push. Never put a 5 V signal on a GPIO: it can damage the board. The USB power socket is a different connection. S4

Give it a safe place

Unplug before touching connections. Hold the board by its edges. Put it on a clean, dry wooden or plastic surface. Keep metal objects away from the contacts. Keep small loose parts away from mouths and younger children.

Leave batteries out of this activity. A wrongly connected lithium battery can heat or burn. Stop if anything gets unusually hot, smells odd or smokes. Ask the adult to disconnect power safely. Do not touch a hot part to investigate.

The antenna can wait

Blinking needs no antenna. If the adult fits one later, hook one edge of its connector onto the socket first. Then gently press the other edge down. Never pull it off by its wire. S1

Gather what you need

You need this board, an adult and a USB-C data cable. A data cable carries instructions and power. A charging-only cable cannot send a program.

You also need a Windows, macOS or Linux computer, internet and room for a large software download. You can read here on a tablet or phone, but these steps use the computer. S6

Make the light blink

  1. Ask the adult to install Arduino IDE using the official instructions below. IDE is the computer app where you write and send programs. The board package is the extra software that teaches it about this board. Install Espressif's ESP32 package version 3.3.2 and select XIAO_ESP32S3. Espressif makes the board's computer chip. S9 S6 S5
  2. Plug in the data cable. With no battery, the maker says the red charge light comes on, then goes out after about 30 seconds. That does not mean it broke. Its factory program can light the orange user LED when pins are touched; do not touch pins to test this. We have not checked the program on your board. S1
  3. Choose the port: the computer's named connection to this board. Upload means send a program. Hardware means physical computer parts. CDC names a USB communication method. Ask the adult to set USB CDC On Boot: Enabled and Upload Mode: UART0 / Hardware CDC where shown. These are menu names for sending through USB; UART0 names another communication route. S7
  4. Open a new sketch, Arduino's name for a program. Type this example. LED_BUILTIN selects the user light. Here LOW turns it on and HIGH turns it off. S1 S5 S8
void setup() {
  pinMode(LED_BUILTIN, OUTPUT);
  digitalWrite(LED_BUILTIN, HIGH);
}

void loop() {
  digitalWrite(LED_BUILTIN, LOW);
  delay(300);
  digitalWrite(LED_BUILTIN, HIGH);
  delay(700);
}

setup runs once at the start. pinMode makes the light's connection an output. digitalWrite changes it. loop repeats the blinking instructions. delay pauses. A millisecond is a thousandth of a second. Our numbers choose the pauses; they are not board limits. S8

  1. Press Verify to check the program. Press Upload to send it to the board. Expected result: a short flash, then a longer dark pause, repeating. This draft has not observed that on hardware.

If sending fails

Ask the adult to hold BOOT, press and release RESET, then release BOOT. Select the new port and try Upload again. After the first upload in this mode, press RESET once afterwards. Do not add wires to fix an upload. S7

Identity for the adult

Plain Seeed Studio XIAO ESP32S3, part 113991114. The maker's datasheet describes the part; a schematic shows its electrical connections. We used the September 2026 datasheet and schematic v1.1. A revision is a version; our stock's physical revision is uninspected. Sense and Plus are different boards. S2 S3

Our product page

Original documents

Sources read 2026-10-11. S1 Seeed instructions; S2 plain-board datasheet, updated 2026-09-20; S3 schematic v1.1; S4 chip datasheet v2.2; S5 board aliases, core 3.3.2; S6 package installation; S7 USB recovery; S8 GPIO functions; S9 IDE installation.