Specifications, schematics, and pin maps for Seeed XIAO ESP32-C3 wireless remotes and the ESP32 DevKit V1 Base Station.
The XIAO ESP32-C3 is compact (21×17.5mm), has built-in LiPo/Li-Ion USB-C charging circuitry, and enters a ~44µA deep sleep state that wakes up instantly when any button is pressed.
| Button / Function | XIAO Pin | ESP32-C3 GPIO | Wiring Instructions |
|---|---|---|---|
| Button A (Red) | D0 | GPIO 2 | Switch Pin 1 to D0, Switch Pin 2 to GND (Internal Pullup) |
| Button B (Blue) | D1 | GPIO 3 | Switch Pin 1 to D1, Switch Pin 2 to GND (Internal Pullup) |
| Button C (Yellow) | D2 | GPIO 4 | Switch Pin 1 to D2, Switch Pin 2 to GND (Internal Pullup) |
| Button D (Green) | D3 | GPIO 5 | Switch Pin 1 to D3, Switch Pin 2 to GND (Internal Pullup) |
| Status LED / NeoPixel | D4 | GPIO 6 | NeoPixel DIN or standard LED Anode (+) through 220Ω resistor to GND |
| Common Ground | GND | GND | Connect ground return of all 4 button switches here |
| Battery (+) | BAT+ Pad | Bottom Pad | Wire through SPST slide power switch to 3.7V battery (+) |
| Battery (-) | BAT- Pad | Bottom Pad | Wire directly to 3.7V battery (-) |
#define REMOTE_ID 1 to 2, 3, ... 8 for each remote before uploading via Arduino IDE (Board: XIAO_ESP32C3) or PlatformIO.
Hold Button A for 2 seconds. The remote flashes cyan/white and sends a pairing burst. It instantly registers on the Host console and TV display with its assigned team color.
While waiting in the Lobby or between rounds, the remote's LED softly pulses its assigned player color. Pulsing pauses once the round begins.
Pressing an answer flashes the button's choice color for immediate visual confirmation:
A: Red •
B: Blue •
C: Yellow •
D: Green
The Base Station connects via standard USB to your laptop or presentation PC. It listens for sub-millisecond ESP-NOW bursts, resolves fastest buzzes, sends confirmation packets back to remotes, and streams JSON data to the host browser.
| Function | DevKit V1 Pin | Description |
|---|---|---|
| USB Serial | Micro-USB Port | 115200 baud WebSerial stream to Chrome/Edge |
| Activity LED | GPIO 2 | Onboard LED, blinks on packet reception |
| Piezo Buzzer (Optional) | GPIO 25 | Positive lead to GPIO 25, negative to GND |
| Manual Reset Button | GPIO 0 (BOOT) | Press onboard boot button to open/lock buzzers without laptop |