LOLIN C3 mini vs Seeed XIAO ESP32C3 — two tiny ESP32-C3 boards, different USB and boot stories

Both carry the ESP32-C3 in a thumb-size footprint, but the C3 mini is a 34.3 x 25.4 mm D1-mini-shield board with a PCB antenna and a Button-9 + Reset download sequence, while the XIAO ESP32C3 is 21 x 17.8 mm, requires its bundled U.FL antenna and has strapping pads D0/D8/D9 plus the D6 boot-log quirk. USB and boot comparison with sources.

Related products: LOLIN C3 mini · Seeed Studio XIAO ESP32C3 · ESP32-C3

Question this page answers: "The LOLIN C3 mini and the Seeed XIAO ESP32C3 are both tiny ESP32-C3 boards — how do their USB wiring and boot/download behavior differ, and which fits my project?"

Same chip, two philosophies. What actually separates them day-to-day is the antenna, the pads you must be careful with, and how you get into download mode.

LOLIN C3 miniSeeed XIAO ESP32C3Source
Size34.3 x 25.4 mm21 x 17.8 mmboth vendor pages
Antennaon-board (PCB antenna area at the top of the board)U.FL connector — external antenna required, bundled per the wikiXIAO wiki overview; C3 mini board image
Edge pads16 positions, two columns (J2/J3): EN/3/2/1/0/4/5/3V3 and TX/RX/10/8/7/6/GND/VBUS — silkscreen uses bare GPIO numbers14 positions: left D0-D6, right 5V/GND/3V3/D10-D7both official pinout diagrams
I/O count12 I/O (matches the pad map exactly: bare-number pads 0-5 = GPIO0-5, TX/RX = GPIO21/20, plus GPIO10/8/7/6 — no A0-A5 silkscreen on this board)D0-D10 = 11 numbered pads, A0 aliases D0 = GPIO2both vendor pages
Download modeHold Button 9, press Reset, release Button 9 (official tutorial); no USB-UART bridge documentedBoot button (GPIO9, same pad as D9) + Reset button; D8 (GPIO8) is a strapping pad that needs a pull-up for download bootC3 mini tutorial; XIAO wiki usage notes
Boot traps on padsstrapping pads GPIO2 (left column) and GPIO8 (right column) are exposed; GPIO9 rides the button, not a padthe ESP32-C3 strapping set lands on D0 (GPIO2), D8 (GPIO8, needs pull-up) and D9 (GPIO9 = BOOT); D6 is separately the bootloader's UART log output — a boot-time role, not a strapping pinXIAO wiki pin notes; ESP32-C3 datasheet strapping section
Batteryno battery circuit documented on the pageBAT pads + charging (380 mA fast / 40 mA trickle) with CHG LEDXIAO wiki
ShieldsD1 mini shield compatiblecastellated edges for carrier boardsboth vendor pages

USB side by side. Both ports are USB Type-C wired to the ESP32-C3's native USB pins GPIO18 (D−) / GPIO19 (D+) — neither board documents a USB-UART bridge chip, so both need the chip's strapping pins to enter download mode. The recipes differ in wording but land on the same pin: LOLIN's tutorial says hold Button 9, tap Reset, release Button 9; Seeed's wiki says hold BOOT while plugging USB, then release — Button 9 and BOOT are both GPIO9. The strapping rule behind both: while GPIO9 is low, GPIO8 must stay high, and both boards expose GPIO8 on a pad (C3 mini right column, XIAO D8) — keep pull-ups on it. One quiet similarity: D6 on the XIAO and TX on the C3 mini are the same GPIO21 (chip UART0 TX) — during boot the ROM bootloader prints its log there, so keep the pin free or input-tolerant at reset time; afterwards it is an ordinary GPIO again. For the chip-level rules see Espressif's boot-mode documentation.

Which one? Pick the C3 mini when you want a standalone Wi-Fi node with the antenna on board, D1-mini shield compatibility, or the simpler pad story (its strapping pads GPIO2/GPIO8 are numbered pads, not extra button duties). Pick the XIAO when the board solders onto a carrier PCB (castellated pads), when you need battery charging on the board itself, or when 21 x 17.8 mm is the hard limit — just budget for the external antenna and remember the strapping pads D0/D8/D9 (and keep D6 free at boot).

Full pin maps with per-pad sources: LOLIN C3 mini and Seeed XIAO ESP32C3; chip capabilities: ESP32-C3. Note: the C3 mini is the LOLIN/WEMOS product — do not confuse it with the differently-branded "C3 SuperMini" boards that share the search term. Coming from an Espressif devkit instead? See XIAO ESP32C3 vs ESP32-C3-DevKitM-1.