XIAO ESP32S3: Reference guide

Draft. Untested on hardware. Includes untested identification/antenna fitting, USB/IDE setup, both LED sketches, BOOT/RESET recovery, USB restart, external regulated power and battery/charging investigation. Battery work is deferred, not a validated exercise.

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

Identity Scope
Maker / part Seeed Studio / 113991114 S2
Documents Plain product PDF updated 2026-09-20; schematic v1.1, revision log 2023-03-27 S2 S3
Physical stock revision Not inspected; document revision is not proof of stock revision
Software aliases Arduino-ESP32 3.3.2, variant XIAO_ESP32S3 S5
Product Plain XIAO

Edge map

Component side, USB above the board, starting at the upper left and upper right. ADC and touch capabilities below are chip capabilities on the corresponding nets; configuration and analog input range still require chip documentation. All signal pins use the chip's logic domain. Physical positions follow the maker's board overview, not the schematic or software aliases. S1 S3 S4

Plain XIAO ESP32S3 edge pin map Component side, USB up. Seven contacts on each side. Conceptual drawing, not to scale. Left top D0 through D6; right top power then D10 through D7. Component side · USB up USB-C D0 / GPIO1 5V / VBUS D1 / GPIO2 GND D2 / GPIO3 3V3 D3 / GPIO4 D10 / GPIO9 D4 / GPIO5 D9 / GPIO8 D5 / GPIO6 D8 / GPIO7 D6 / GPIO43 D7 / GPIO44 Conceptual · not to scale Positions Source 1 · nets Source 3 Source 5

Left edge, top down Chip / function
D0 GPIO1; ADC1_CH0; TOUCH1 S3 S4 S5
D1 GPIO2; ADC1_CH1; TOUCH2 S3 S4 S5
D2 GPIO3; ADC1_CH2; TOUCH3; JTAG selection strap S3 S4 S5
D3 GPIO4; ADC1_CH3; TOUCH4 S3 S4 S5
D4 GPIO5; ADC1_CH4; TOUCH5; default I2C SDA S3 S4 S5
D5 GPIO6; ADC1_CH5; TOUCH6; default I2C SCL S3 S4 S5
D6 GPIO43; default UART TX; no ADC S3 S4 S5
Right edge, top down Chip / function
5V / VBUS USB power rail; not a GPIO S3
GND Circuit return S3
3V3 Regulated output rail S3
D10 GPIO9; ADC1_CH8; TOUCH9; default SPI MOSI S3 S4 S5
D9 GPIO8; ADC1_CH7; TOUCH8; default SPI MISO S3 S4 S5
D8 GPIO7; ADC1_CH6; TOUCH7; default SPI SCK S3 S4 S5
D7 GPIO44; default UART RX; no ADC; core default SS also GPIO44 S3 S4 S5

Other connections and visible parts

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

Label Function
USB-C VBUS, GND, native USB D− GPIO19 and D+ GPIO20 S3 S4
Metal shield Covers the chip area; not a user connection S1
Edge pads Connections listed above S3
RESET Switch pulls CHIP_PU low S3
BOOT Switch pulls GPIO0 low for download boot at reset S3 S4
User LED GPIO21; active low S1 S3 S5
Charge LED Charger status; no GPIO alias S3
Antenna socket U.FL connection to RF network/LNA_IN S3
Battery pads BAT+ / BAT− underneath; polarity must be checked on the physical board S2 S3
Underside D+ / D− USB GPIO20 / GPIO19 respectively S2 S3
Underside EN CHIP_PU reset net S2 S3
Underside MTDO / MTDI GPIO40 / GPIO41 respectively, JTAG S2 S3 S4
Underside MTCK / MTMS GPIO39 / GPIO42 respectively, JTAG S2 S3 S4
Underside GND Circuit return S2 S3
Thermal pad Maker labels it as thermal pad; not a signal connection in this guide S2
Expansion connector Fine-pitch add-on connector on component side; not extra edge pads S2 S3

Expansion and test nets in schematic v1.1

Connector numbering is schematic numbering, not a photograph orientation. These net names were read from schematic v1.1 and compared with the currently linked schematic; neither proves the connector revision of stock. Do not hand-wire the fine-pitch connector from this table. Camera/microphone nets belong to add-on use and can be occupied on Sense. S3

Connector contact Net
1 GND S3 S10
2 D2/A2 S3 S10
3 D8/A8/SCK S3 S10
4 D9/A9/MISO S3 S10
5 D10/A10/MOSI S3 S10
6 IO10/MCLK S3 S10
7 IO11/DVP_Y8 S3 S10
8 IO12/DVP_Y7 S3 S10
9 IO13/DVP_PCLK S3 S10
10 IO14/DVP_Y6 S3 S10
11 IO15/DVP_Y2 S3 S10
12 IO16/DVP_Y5 S3 S10
13 IO17/DVP_Y3 S3 S10
14 IO18/DVP_Y4 S3 S10
15 VIN S3 S10
16 IO21/USER_LED S3 S10
17 GND S3 S10
18 VCC_3V3 S3 S10
19 VCC_3V3 S3 S10
20 Not connected S3 S10
21 IO48/DVP_Y9 S3 S10
22 IO47/DVP_HREF S3 S10
23 IO38/DVP_VSYNC S3 S10
24 MTCK/IO39/CAM_SCL S3 S10
25 MTDO/IO40/CAM_SDA S3 S10
26 MTDI/IO41/PDM_DATA S3 S10
27 MTMS/IO42/PDM_CLK S3 S10
28 GND S3 S10
29 GND S3 S10
30 VIN S3 S10
31 GND S3 S10
32 Not connected S3 S10
33 GND S3 S10
34 GND S3 S10

IO means the corresponding GPIO number. J3 is DF40C-30DP-0.4V(51); contacts 31, 33 and 34 are grounded mounting contacts, but 32 is not connected. VIN is the shared battery/USB feed, not a GPIO. S3 S10

Test net Connection in schematic
TP1 GND S3 S10
TP2 MTMS/IO42/PDM_CLK S3 S10
TP3 MTDI/IO41/PDM_DATA S3 S10
TP4 MTDO/IO40/CAM_SDA S3 S10
TP5 MTCK/IO39/CAM_SCL S3 S10
TP6 EN (CHIP_PU) S3 S10
TP7 ESP_USB_D− (GPIO19) S3 S10
TP8 ESP_USB_D+ (GPIO20) S3 S10

These are schematic test-point identities, not physical positions on the board. GPIO38 and GPIO0 are on no test point in these drawings. TP7 and TP8 are USB data lines: never bridge them to enter download mode. Use the BOOT and RESET buttons. S3 S10 S7

Electrical boundaries

Parameter Documented value / interpretation
Nominal board inputs USB 5 V; BAT 3.7 V typical, not a full battery-input range S2
Logic / chip supply 3.3 V nominal; chip recommended supply 3.0–3.6 V S4 (§5.2)
Digital input high range Minimum 0.75 × VDD; maximum VDD + 0.3 V, DC-characteristics table; not permission to drive a GPIO from 5 V S4 (§5.4)
Digital input low range −0.3 to 0.25 × VDD, DC-characteristics table S4 (§5.4)
Absolute maximum chip power-pin voltage −0.3 to 3.6 V, a stress limit rather than an operating target S4 (§5.1)
External-load budget No validated stock-board budget here; regulator headline is not spare current
Charging current Plain PDF: 50 mA fast / 3.8 mA trickle; schematics: ICharge = 24000 / 220K = 110 mA. Unresolved for stock S2 S3 S10
Regulator capacity Wiki calls 3V3 output 700 mA; both schematics mark Imax 600 mA. Unresolved, and neither is a promised external-load allowance S1 S3 S10
GPIO source/sink current Typical 40 mA source at VOH ≥ 2.64 V; 28 mA sink at VOL = 0.495 V; VDD = 3.3 V, PAD_DRIVER = 3, 25 °C. Characterization points, not a safe board-load budget or recommended per-pin draw S4 (Table 5-4)
ADC calibrated effective range ATTEN0: 0–850 mV; ATTEN1: 0–1100 mV; ATTEN2: 0–1600 mV; ATTEN3: 0–2900 mV. Choose attenuation and calibration; not 5 V tolerance S4 (Table 5-6)
Board operating temperature Wiki −20 to 65 °C; plain product PDF −40 to 65 °C. Unresolved for stock; chip grade limits do not resolve board limits S1 S2
Power-up GPIO glitch GPIO1–9 (D0–D5, D8–D10) may produce a typical 60 µs low-level glitch at power-up. A motor/relay needs hardware protection from unintended activation S4 (Table 2-2)
Battery complete permitted input range Not stated by the maker in the plain product PDF; no inferred range S2
BAT voltage ADC No direct BAT-to-ADC net in older schematic; never connect BAT directly to GPIO for a reading S3 S4

Specific hazards: a higher-voltage GPIO signal can damage the chip; reversed battery leads or an unsuitable lithium cell can heat or burn; a shared VBUS rail can back-feed another supply. Unplug before soldering or wiring, keep small loose parts away from mouths, and stop on unexpected heat. USB-only is the pilot activity. Battery assembly/charging needs qualified adult review of the actual revision and cell. S1 S2 S4

Processor, memory, radio and boot

Topic Plain board
Processor ESP32-S3R8, dual-core Xtensa LX7, up to 240 MHz S2
Memory 8 MB PSRAM and 8 MB flash; flash is external in schematic, despite PDF grouping as on-chip memory S2 S3
Radio 2.4 GHz Wi-Fi; Bluetooth LE, not Bluetooth Classic S2 S4
USB Native chip USB on GPIO19/20; CDC upload depends on firmware/settings S3 S7
Boot messages Default ROM messages go to UART0 (TX = GPIO43 = D6) and USB Serial/JTAG; configuration/eFuses may suppress them. The D6 schematic path includes a 499 Ω series resistor S4 (§3.3) S3 S5
Arduino analog aliases A0–A5 map to GPIO1–6; A8–A10 map to GPIO7–9. No A6/A7 alias in this variant S5
Normal boot Flash boot when BOOT is not held; GPIO0 low with GPIO46 low selects joint download mode S4 (§3.1)
Manual recovery, untested Hold BOOT; press/release RESET; release BOOT; select newly appearing port. Initial flash may need reset afterward S7
Drag-and-drop disk Not assumed on factory firmware; wiki UF2 procedure installs a separate bootloader S1
Factory sketch Wiki describes touch-driven LED demo, not verified on stock; our blink overwrites existing sketch S1

Variant separation

Variant Memory Important difference
Plain, this guide 8 MB PSRAM / 8 MB flash S2 No Sense camera/microphone add-on S1
Sense 8 MB PSRAM / 8 MB flash S1 Camera, microphone, SD add-on; older OV2640 and current OV3660 camera references coexist S1
Plus 8 MB PSRAM / 16 MB flash S1 More exposed pads; do not reuse this edge drawing S1

Source conflicts and omissions

  • The combined wiki pin table labels GPIO41/42 as analog, while its warning and the chip datasheet exclude ADC there. They are not plain-board edge pins; the pinned core defines no D11/D12 aliases. S1 S4 S5
  • Plus overview says eighteen GPIOs but its pin table lists D0–D19. This guide does not resolve the usable count for Plus. S1
  • The wiki's current schematic URL says v1.4, its title block says V1.3 and Sense, and its internal filename says V1.5. It is not treated as proof of this plain board's stock revision. S10
  • Active board-current claims disagree: wiki Wi-Fi/BLE 100/85 mA, plain PDF 220/217 mA. Conditions are not reconciled; neither is a stock measurement or design budget. S1 S2
  • Box contents disagree: wiki says no headers by default, plain PDF lists two seven-pin headers. Do not promise loose headers without inspecting stock. S1 S2
  • User LED colour disagrees: wiki orange, schematic yellow. Its GPIO21 active-low net is consistent; inspect the actual board for colour. S1 S3
  • Charger/regulator conflicts are listed above. Neither software nor document comparison checks which parts arrived in our stock. S1 S2 S3
  • Actual flash identification, usable heap, antenna fitted, supply behaviour, LED colour/location and sample markings: not checked. Do not infer a certification, maximum radio range or child suitability from this pilot.

Maker's originals

All read 2026-10-11. These are ordinary links, not embedded documents.

ID Original / version
S1 Seeed combined wiki, updated 2026-05-14
S2 Plain-board datasheet, updated 2026-09-20
S3 Plain schematic, v1.1, 2023-03-27
S4 Chip datasheet, v2.2
S5 Core pin aliases, tag 3.3.2
S6 Core installation, living documentation
S7 USB CDC / DFU, living documentation
S8 GPIO API, living documentation
S9 Arduino IDE installation, living documentation
S10 Currently linked schematic, ambiguous revision/title