Design a carrier/breakout PCB for the "We Wide Web" project — a battery-powered ESP32 personal web server with NFC and
a round touchscreen display.
Parts
- Seeed Studio XIAO ESP32-S3 Plus — main MCU, plugs into this carrier board via 2x7 female pin headers (2.54mm
pitch). The XIAO has battery pads (BAT+ and BAT-) on the bottom of the board — BAT- is the pad closest to the USB-C
port, BAT+ is the pad farthest from USB-C. These pads need to be contacted by spring-loaded pogo pins (P75-B1, 1.02mm
barrel) mounted on the carrier PCB, pressing upward when the XIAO is seated.
- Seeed Studio Round Display for XIAO (1.28" GC9A01 240x240) — plugs on top of the XIAO via the same 2x7 headers. It
uses the following XIAO pins: D0 (battery voltage), D1 (LCD CS), D2 (SD CS), D3 (LCD DC), D4/SDA (touch + RTC I2C),
D5/SCL (touch + RTC I2C), D6 (backlight), D7 (touch interrupt), D8 (SPI SCK), D9 (SPI MISO), D10 (SPI MOSI). The
carrier board must not conflict with any of these pins.
- Adafruit ST25DV16K I2C RFID EEPROM Breakout (product 4701) — NFC/RFID tag with I2C interface. Has a 1x6 header
(2.54mm pitch) with pins in order: VIN, GND, SCL, SDA, GPO, VEH. I2C addresses: 0x53 (user memory), 0x57 (system
memory), 0x2D (mailbox). The breakout has 10K pullups on SDA and SCL already. It mounts on the carrier board facing
downward so the NFC antenna faces out through the bottom of the enclosure.
- 3.7V LiPo battery (600mAh) — connects via a JST-PH 2.0mm 2-pin through-hole connector on the carrier board. Battery
power routes through the pogo pins to the XIAO's battery pads for charging and power management via the XIAO's
built-in charge circuit.
Connections
The ST25DV16K shares the I2C bus with the Round Display's touch controller (0x15) and RTC (0x51) — no address
conflicts.
┌────────────┬─────────────────────┬────────────────────────────┬────────────────────────────────────────────────┐
│ Signal │ From │ To │ Notes │
├────────────┼─────────────────────┼────────────────────────────┼────────────────────────────────────────────────┤
│ I2C SDA │ XIAO D4/SDA (passed │ ST25DV16K SDA (header pin │ Shared I2C bus, pullups on ST25DV breakout │
│ │ through header) │ 4) │ │
├────────────┼─────────────────────┼────────────────────────────┼────────────────────────────────────────────────┤
│ I2C SCL │ XIAO D5/SCL (passed │ ST25DV16K SCL (header pin │ Shared I2C bus, pullups on ST25DV breakout │
│ │ through header) │ 3) │ │
├────────────┼─────────────────────┼────────────────────────────┼────────────────────────────────────────────────┤
│ Power 3.3V │ XIAO 3V3 (passed │ ST25DV16K VIN (header pin │ 3.3V logic level │
│ │ through header) │ 1) │ │
├────────────┼─────────────────────┼────────────────────────────┼────────────────────────────────────────────────┤
│ Ground │ XIAO GND (passed │ ST25DV16K GND (header pin │ Common ground │
│ │ through header) │ 2) │ │
├────────────┼─────────────────────┼────────────────────────────┼────────────────────────────────────────────────┤
│ NFC │ ST25DV16K GPO │ XIAO Plus extended pad D11 │ Directly connected to GPO with 4.7K pullup │
│ interrupt │ (header pin 5) │ or any free Plus-only │ resistor to 3.3V. Used as deep sleep wakeup │
│ │ │ GPIO │ trigger on NFC tap │
├────────────┼─────────────────────┼────────────────────────────┼────────────────────────────────────────────────┤
│ Battery + │ JST-PH pin 1 │ Pogo pin aligned to XIAO │ Battery power │
│ │ (positive) │ BAT+ pad │ │
├────────────┼─────────────────────┼────────────────────────────┼────────────────────────────────────────────────┤
│ Battery - │ JST-PH pin 2 │ Pogo pin aligned to XIAO │ Battery ground │
│ │ (negative) │ BAT- pad │ │
├────────────┼─────────────────────┼────────────────────────────┼────────────────────────────────────────────────┤
│ VEH │ ST25DV16K VEH │ Leave unconnected │ Energy harvesting output, not used │
│ │ (header pin 6) │ │ │
└────────────┴─────────────────────┴────────────────────────────┴────────────────────────────────────────────────┘
Board Requirements
- Single-layer PCB (single-sided copper, top side only)
- Board shape: rectangular, sized to fit under the XIAO + Round Display stack. The Round Display is 39mm diameter
circular — the carrier can be rectangular or circular to match
- Mounting: the XIAO plugs into 2x7 female headers on the carrier. The Round Display plugs onto the XIAO from above.
The ST25DV16K breakout plugs into a 1x6 female header on the carrier, positioned to the side of or below the XIAO
footprint
- Pogo pins: two through-hole pads for P75-B1 pogo pins, precisely aligned to the XIAO's bottom battery pads. These
must be measured from the XIAO's mechanical drawing — approximate center-to-center spacing TBD (measure from actual
board)
- Keep it simple: 7 traces, no vias, single layer, designed for CNC milling on a Bantam Tools desktop PCB mill
- Include ground pour if it fits without complicating the single-layer routing
- Gerber export for Bantam Tools milling