🛠️ Hardware & Wiring Guide
This guide provides complete pinouts, wiring instructions, and electrical guidelines for building the 8 Seeed Studio XIAO ESP32-C3 handheld remotes and the ESP32 DevKit V1 Base Station.
1. Seeed Studio XIAO ESP32-C3 (Handheld Remotes 1–8)
The XIAO ESP32-C3 features an ultra-small footprint (21 × 17.5 mm), integrated battery management circuitry, USB Type-C port, and deep-sleep wake support on low-power RTC GPIOs.
All button inputs are configured in software with pinMode(pin, INPUT_PULLUP). Each button switch simply connects between its designated pin and GND. No external resistors are necessary!
| Button / Function | XIAO Pin Label | ESP32-C3 GPIO | Wiring Details |
|---|---|---|---|
| Button A (Red / True) | D0 |
GPIO 2 |
Switch pin 1 → D0, Switch pin 2 → GND (Supports RTC Deep-Sleep Wake) |
| Button B (Blue / False) | D1 |
GPIO 3 |
Switch pin 1 → D1, Switch pin 2 → GND (Supports RTC Deep-Sleep Wake) |
| Button C (Yellow) | D2 |
GPIO 4 |
Switch pin 1 → D2, Switch pin 2 → GND (Supports RTC Deep-Sleep Wake) |
| Button D (Green) | D3 |
GPIO 5 |
Switch pin 1 → D3, Switch pin 2 → GND (Supports RTC Deep-Sleep Wake) |
| Status LED / NeoPixel | D4 |
GPIO 6 |
Data IN for WS2812B NeoPixel or LED Anode (+) through 220Ω to GND |
| Battery Sense (Optional) | D5 |
GPIO 7 |
Center of 100kΩ/100kΩ voltage divider between BAT+ and GND |
| Common Ground | GND |
GND |
Common return rail for all 4 button switches and LED cathode |
| Battery (+) Positive | BAT+ Pad |
Bottom Pad | Solder 3.7V 18650 / LiPo (+) lead through an SPST slide switch |
| Battery (-) Negative | BAT- Pad |
Bottom Pad | Solder 3.7V 18650 / LiPo (-) lead directly to pad |
2. ESP32 DevKit V1 (Base Station Hub)
The Master Base Station connects directly via USB to provide a 115200 baud WebSerial stream into the browser, and coordinates packet reception from all 8 remotes.
| Function | DevKit V1 Pin | Connection Instructions |
|---|---|---|
| USB Serial Communication | Micro-USB Port | Plugs directly into host PC (Chrome / Edge WebSerial API) |
| Activity Indicator | GPIO 2 |
Built-in Blue LED; flashes upon receiving any remote packet |
| Piezo Audio Buzzer (Optional) | GPIO 25 |
Positive lead to GPIO 25, negative lead to GND (plays game-show chimes) |
| Open Status LED (Optional) | GPIO 26 |
Green LED anode via 220Ω resistor to GPIO 26, cathode to GND |
| Locked Status LED (Optional) | GPIO 27 |
Red LED anode via 220Ω resistor to GPIO 27, cathode to GND |
| Manual Reset / Unlock | GPIO 0 |
Built-in BOOT button on DevKit (press to open/lock buzzers without computer) |
3. Battery & Power Architecture
The XIAO ESP32-C3 contains an integrated single-cell Lithium battery charging IC that charges at ~350–400mA when a USB-C cable is connected.
- Battery Chemistry: 1S 3.7V nominal (4.2V peak) Lithium-Ion or Lithium-Polymer.
- 18650 Cylindrical Cell: A 2,500–3,000mAh 18650 cell in a standard holder provides hundreds of hours of game time under the low-power deep sleep profile.
- SPST Micro Slide Switch: Solder a physical slide switch on the positive wire between the battery and the
BAT+pad so that remotes can be turned fully off when stored. - IPEX Antenna: Snap the included 2.4GHz antenna onto the U.FL connector and tape it flat against the inside wall of the enclosure.
4. Button Selection: Tactile vs Arcade
- 12×12mm Tactile Switches with Colored Caps: Compact and easy to solder onto perfboard for a compact handheld game controller feel. Multi-color caps (Red, Blue, Yellow, Green) map directly to choices A/B/C/D. Apply hot glue over the solder connections inside the case for strain relief.
- 24mm Arcade Pushbuttons (Sanwa style): The ultimate heavy-duty option for competitive players. Virtually indestructible and withstands vigorous slapping.