Connectors & Pinout
Connector reference for the BattleCore Headset Mainboard — pin assignments, voltages, and intended use for each port.
The Headset Mainboard is built around an ESP32-S3 module, so every logic signal is 3.3 V. Inputs are not 5 V tolerant — never drive a signal pin above 3.3 V. Power comes from a battery pack (or USB-C) and is stepped down on-board to the 5 V and 3.3 V rails, gated by a soft-power latch so the board can power itself down in software.
Each connector below includes a live view of the actual board layout, centred on that port. Use the mouse wheel to zoom out for context (where the connector sits on the whole PCB) or in for detail, and drag to pan. Hover or tap a pad to highlight it in the pin table, and vice-versa.
Power Rails
| Rail | Voltage | Source | Used by |
|---|---|---|---|
VBAT_RAW | Battery | Battery pack (J1) | Raw battery, into the polyfuse and soft-power load switch. |
VBAT_5V | 5 V | On-board battery buck regulator (from switched VBAT) | Battery-derived 5 V — one input to the source-select jumper. |
USB_5V | 5 V | USB-C VBUS (via resettable polyfuse) | USB-derived 5 V — the other input to the source-select jumper. |
PWR_5V | 5 V | J_PWR_SEL jumper (battery buck or USB VBUS) | System 5 V rail — sensor modules, RGB, IR emitters. |
PWR_3V3 | 3.3 V | On-board 3.3 V buck regulator (from PWR_5V) | ESP32-S3 and all logic / I²C peripherals. |
PWR_GND | GND · 0 V | — | Common ground reference for the whole board. |
Sensor Modules
The four SENSOR ports are identical and cover the four zones of the headband. Each one bundles three functions on a single 5-pin cable: an IR receiver (IR_IN) for detecting incoming shots, an IR emitter (IR_SEND), switched by an on-board MOSFET, and an addressable RGB data line (RGB_M) for that zone’s lighting.
Power Connectors
Battery Input
J13-pin · 1.5 mm pitch · SMT
Connector: JST ZH B3B-ZR-SM4-TF
Main battery input. Connect battery positive to pin 1 (VBAT_RAW) and battery negative to pin 2. Pin 3 is a temperature-sense input for the pack's NTC thermistor. The raw battery feeds an in-line polyfuse and the soft-power load switch (a P-channel MOSFET gated by the on-board power controller) before reaching the 5 V buck regulator. Battery voltage must sit above ~5.5 V (e.g. a 2S Li-ion pack) since the on-board regulator is a step-down (buck) converter.
Observe polarity — pin 1 is battery positive and pin 2 is ground. Keep the pack voltage above ~5.5 V (the regulator is a step-down) and within the regulator's rated input voltage. The pack feeds the board through a polyfuse and load switch, but do not rely on these for sustained reverse-polarity protection; connecting the pack backwards can still damage the power circuitry.
Location on the PCB (top view). Scroll to zoom, drag to pan; the highlighted port is J1. Hover or tap a pad to link it to the table. = pin 1
| Pin | Signal | Voltage | Notes |
|---|---|---|---|
| 1 | VBAT_RAW | Battery | Battery positive input — feeds the polyfuse and soft-power load switch. |
| 2 | PWR_GND | GND · 0 V | Battery negative / system ground. |
| 3 | BAT_TEMP | 3.3 V logic | Pack NTC thermistor sense (analog) for battery temperature monitoring. |
Pins 4 & 5 are SMT mounting tabs tied to GND for mechanical retention.
Power / Select Button
PWR_SWITCH12-pin · 2.54 mm pitch · through-hole
Connector: 2.54 mm header (PZ254)
A single momentary push-button drives the board's soft-power system (an on-board LTC2954 latch controller). It is multi-function: pressing it while the board is off powers it up and the latch holds the battery load switch on; while the board is running, each press is reported to the MCU (over the controller's interrupt line) so firmware can use it as a select / mode button; and pressing and holding it powers the board off. Wire a normally-open momentary push-button between the two pins — not a latching/toggle switch.
Location on the PCB (top view). Scroll to zoom, drag to pan; the highlighted port is PWR_SWITCH1. Hover or tap a pad to link it to the table. = pin 1
| Pin | Signal | Voltage | Notes |
|---|---|---|---|
| 1 | SW_NODE | 3.3 V logic | Push-button input to the LTC2954 power controller (internally pulled up). One short press powers on or registers a select action; a press-and-hold powers off. |
| 2 | PWR_GND | GND · 0 V | Ground — the other side of the button. |
5 V Source Select
J_PWR_SEL3-pin · 2.54 mm pitch · jumper
Connector: 2.54 mm header (PZ254)
Selects what feeds the board's 5 V system rail (PWR_5V, pin 2 — the common centre pin). Jumper pin 2 to pin 1 to run the board from the battery's 5 V buck regulator, or pin 2 to pin 3 to run it from USB VBUS. The 3.3 V regulator is derived from PWR_5V, so this jumper controls the entire logic supply.
Only ever bridge the centre pin (PWR_5V) to one side. Never link VBAT_5V (pin 1) and USB_5V (pin 3) together — that ties the battery's 5 V regulator directly to USB VBUS, back-feeding one source into the other and risking damage to the regulator, the USB host, or the battery circuitry.
Location on the PCB (top view). Scroll to zoom, drag to pan; the highlighted port is J_PWR_SEL. Hover or tap a pad to link it to the table. = pin 1
| Pin | Signal | Voltage | Notes |
|---|---|---|---|
| 1 | VBAT_5V | 5 V | 5 V from the on-board battery buck regulator. |
| 2 | PWR_5V | 5 V | System 5 V rail (common) — feeds the 3.3 V regulator and 5 V peripherals. |
| 3 | USB_5V | 5 V | 5 V from USB VBUS, via a resettable polyfuse. |
USB-C (Power & Programming)
MP_USBUSB 2.0 · 5 V VBUS · SMT
Connector: USB-C 16-pin (USB4085-GF-A)
USB-C port for bus power, flashing firmware, and the serial console. There is no on-board battery charger — VBUS only powers the board (when selected on J_PWR_SEL) and never charges the battery. VBUS reaches the 5 V source-select via a resettable polyfuse; the D+/D- pair runs through an ESD-protection device to the ESP32-S3's native USB. CC1/CC2 provide USB-C orientation/attach detection. Both A- and B-side contacts are bonded so the cable works either way up.
Location on the PCB (top view). Scroll to zoom, drag to pan; the highlighted port is MP_USB. Hover or tap a pad to link it to the table. = pin 1
| Pin | Signal | Voltage | Notes |
|---|---|---|---|
| A4 | MP_USB_VBUS | 5 V | Bus power (5 V) — joined with A9/B4/B9, fed to the polyfuse. |
| A5 | MP_USB_CC1 | 3.3 V logic | Configuration channel 1 (orientation / attach detect). |
| A6 | MP_USB_DP | 3.3 V logic | USB data + (via ESD protection to the MCU). |
| A7 | MP_USB_DM | 3.3 V logic | USB data − (via ESD protection to the MCU). |
| B5 | MP_USB_CC2 | 3.3 V logic | Configuration channel 2 (orientation / attach detect). |
| A1 | PWR_GND | GND · 0 V | Ground — joined with A12/B1/B12 and the shield. |
Mirror contacts (A9/B4/B9 = VBUS, B6/B7 = D+/D−, A12/B1/B12 = GND) and the shell tab (S1) are bonded to the same nets for reversible-cable operation.
Sensor & Light Modules
Sensor / Light Module 1
SENSOR15-pin · 1.5 mm pitch · SMT
Connector: JST ZH B5B-ZR-SM4-TFT
Combined hit-sensor and lighting module for headband zone 1. Each module carries 5 V power, an addressable RGB data line for that zone's LEDs, an IR receiver input for detecting incoming shots, and an IR emitter drive line. The IR emitter line (IR_SEND1) is the switched low-side output of an on-board N-channel MOSFET — the module's IR LED connects between the 5 V rail and this pin, and the MOSFET (driven by the MCU's IR_OUT1 GPIO) pulses it.
Location on the PCB (top view). Scroll to zoom, drag to pan; the highlighted port is SENSOR1. Hover or tap a pad to link it to the table. = pin 1
| Pin | Signal | Voltage | Notes |
|---|---|---|---|
| 1 | PWR_5V | 5 V | Module supply (5 V) for the IR emitter and RGB LEDs. |
| 2 | RGB_M1 | 3.3 V logic | Addressable RGB (WS2812-style) data out for this zone (3.3 V logic). |
| 3 | PWR_GND | GND · 0 V | Ground. |
| 4 | IR_IN1 | 3.3 V logic | IR receiver output — incoming-shot detection input to the MCU. Active-low, open-collector at the sensor module; there is no external pull-up, so enable the GPIO's internal pull-up (idles high, pulls low on a hit). |
| 5 | IR_SEND1 | 3.3 V logic | IR emitter drive — switched low-side MOSFET output; sinks the module's IR LED to ground when pulsed. |
Pins 6 & 7 are SMT mounting tabs tied to GND for mechanical retention.
Sensor / Light Module 2
SENSOR25-pin · 1.5 mm pitch · SMT
Connector: JST ZH B5B-ZR-SM4-TFT
Combined hit-sensor and lighting module for headband zone 2. Each module carries 5 V power, an addressable RGB data line for that zone's LEDs, an IR receiver input for detecting incoming shots, and an IR emitter drive line. The IR emitter line (IR_SEND2) is the switched low-side output of an on-board N-channel MOSFET — the module's IR LED connects between the 5 V rail and this pin, and the MOSFET (driven by the MCU's IR_OUT2 GPIO) pulses it.
Location on the PCB (top view). Scroll to zoom, drag to pan; the highlighted port is SENSOR2. Hover or tap a pad to link it to the table. = pin 1
| Pin | Signal | Voltage | Notes |
|---|---|---|---|
| 1 | PWR_5V | 5 V | Module supply (5 V) for the IR emitter and RGB LEDs. |
| 2 | RGB_M2 | 3.3 V logic | Addressable RGB (WS2812-style) data out for this zone (3.3 V logic). |
| 3 | PWR_GND | GND · 0 V | Ground. |
| 4 | IR_IN2 | 3.3 V logic | IR receiver output — incoming-shot detection input to the MCU. Active-low, open-collector at the sensor module; there is no external pull-up, so enable the GPIO's internal pull-up (idles high, pulls low on a hit). |
| 5 | IR_SEND2 | 3.3 V logic | IR emitter drive — switched low-side MOSFET output; sinks the module's IR LED to ground when pulsed. |
Pins 6 & 7 are SMT mounting tabs tied to GND for mechanical retention.
Sensor / Light Module 3
SENSOR35-pin · 1.5 mm pitch · SMT
Connector: JST ZH B5B-ZR-SM4-TFT
Combined hit-sensor and lighting module for headband zone 3. Each module carries 5 V power, an addressable RGB data line for that zone's LEDs, an IR receiver input for detecting incoming shots, and an IR emitter drive line. The IR emitter line (IR_SEND3) is the switched low-side output of an on-board N-channel MOSFET — the module's IR LED connects between the 5 V rail and this pin, and the MOSFET (driven by the MCU's IR_OUT3 GPIO) pulses it.
Location on the PCB (top view). Scroll to zoom, drag to pan; the highlighted port is SENSOR3. Hover or tap a pad to link it to the table. = pin 1
| Pin | Signal | Voltage | Notes |
|---|---|---|---|
| 1 | PWR_5V | 5 V | Module supply (5 V) for the IR emitter and RGB LEDs. |
| 2 | RGB_M3 | 3.3 V logic | Addressable RGB (WS2812-style) data out for this zone (3.3 V logic). |
| 3 | PWR_GND | GND · 0 V | Ground. |
| 4 | IR_IN3 | 3.3 V logic | IR receiver output — incoming-shot detection input to the MCU. Active-low, open-collector at the sensor module; there is no external pull-up, so enable the GPIO's internal pull-up (idles high, pulls low on a hit). |
| 5 | IR_SEND3 | 3.3 V logic | IR emitter drive — switched low-side MOSFET output; sinks the module's IR LED to ground when pulsed. |
Pins 6 & 7 are SMT mounting tabs tied to GND for mechanical retention.
Sensor / Light Module 4
SENSOR45-pin · 1.5 mm pitch · SMT
Connector: JST ZH B5B-ZR-SM4-TFT
Combined hit-sensor and lighting module for headband zone 4. Each module carries 5 V power, an addressable RGB data line for that zone's LEDs, an IR receiver input for detecting incoming shots, and an IR emitter drive line. The IR emitter line (IR_SEND4) is the switched low-side output of an on-board N-channel MOSFET — the module's IR LED connects between the 5 V rail and this pin, and the MOSFET (driven by the MCU's IR_OUT4 GPIO) pulses it.
Location on the PCB (top view). Scroll to zoom, drag to pan; the highlighted port is SENSOR4. Hover or tap a pad to link it to the table. = pin 1
| Pin | Signal | Voltage | Notes |
|---|---|---|---|
| 1 | PWR_5V | 5 V | Module supply (5 V) for the IR emitter and RGB LEDs. |
| 2 | RGB_M4 | 3.3 V logic | Addressable RGB (WS2812-style) data out for this zone (3.3 V logic). |
| 3 | PWR_GND | GND · 0 V | Ground. |
| 4 | IR_IN4 | 3.3 V logic | IR receiver output — incoming-shot detection input to the MCU. Active-low, open-collector at the sensor module; there is no external pull-up, so enable the GPIO's internal pull-up (idles high, pulls low on a hit). |
| 5 | IR_SEND4 | 3.3 V logic | IR emitter drive — switched low-side MOSFET output; sinks the module's IR LED to ground when pulsed. |
Pins 6 & 7 are SMT mounting tabs tied to GND for mechanical retention.
Display & Expansion
Display (I²C)
DISPLAY4-pin · 1.5 mm pitch · through-hole
Connector: JST ZH B4B-ZR-SM4-TFT
I²C display port (OLED / small TFT). Unlike the larger Tagger Mainboard, the Headset Mainboard drives its display over I²C rather than SPI, sharing the bus with the on-board pull-up resistors. Provides 3.3 V power, ground, and the two-wire clock/data pair.
Location on the PCB (top view). Scroll to zoom, drag to pan; the highlighted port is DISPLAY. Hover or tap a pad to link it to the table. = pin 1
| Pin | Signal | Voltage | Notes |
|---|---|---|---|
| 1 | PWR_GND | GND · 0 V | Ground. |
| 2 | PWR_3V3 | 3.3 V | Display logic / supply. |
| 3 | I2C_SCL | 3.3 V logic | I²C clock (shared bus, on-board pull-up). |
| 4 | I2C_SDA | 3.3 V logic | I²C data (shared bus, on-board pull-up). |
Pins 5 & 6 are SMT mounting tabs tied to GND for mechanical retention.
Expansion Header (GPIO)
H214-pin · 2×7 · 2.54 mm pitch · through-hole
Connector: 2.54 mm header (2×7)
General-purpose expansion / breakout header. Brings out both power rails (5 V + 3.3 V), ground, a spare UART (GPIORX / GPIOTX), and a row of free ESP32-S3 GPIOs for prototyping and add-ons. All signal pins are 3.3 V logic — do not drive them above 3.3 V.
Every signal pin is a direct ESP32-S3 GPIO at 3.3 V logic — they are not 5 V tolerant, and can only source/sink a few milliamps. Don't power external loads from a GPIO; use the 5 V or 3.3 V rail pins for power and switch any real load through a transistor. GPIO45 and GPIO2 are boot strapping pins, so anything attached to them must leave the board free to boot.
Location on the PCB (top view). Scroll to zoom, drag to pan; the highlighted port is H2. Hover or tap a pad to link it to the table. = pin 1
| Pin | Signal | Voltage | Notes |
|---|---|---|---|
| 1 | GPIO8 | 3.3 V logic | General-purpose I/O. |
| 2 | PWR_5V | 5 V | 5 V system rail. |
| 3 | GPIO3 | 3.3 V logic | General-purpose I/O. |
| 4 | PWR_GND | GND · 0 V | Ground. |
| 5 | GPIO12 | 3.3 V logic | General-purpose I/O. |
| 6 | GPIORX | 3.3 V logic | Spare UART receive (into the MCU). |
| 7 | GPIO13 | 3.3 V logic | General-purpose I/O. |
| 8 | GPIOTX | 3.3 V logic | Spare UART transmit (from the MCU). |
| 9 | GPIO14 | 3.3 V logic | General-purpose I/O. |
| 10 | GPIO45 | 3.3 V logic | General-purpose I/O (strapping pin — check level at boot). |
| 11 | GPIO1 | 3.3 V logic | General-purpose I/O. |
| 12 | PWR_3V3 | 3.3 V | 3.3 V logic rail. |
| 13 | GPIO2 | 3.3 V logic | General-purpose I/O (strapping pin — check level at boot). |
| 14 | PWR_GND | GND · 0 V | Ground. |