Hardware
Devices
PiEEG_XR
Specification

Specification

PiEEG XR mask and BCI box

Hardware

Channels8 (PiEEG XR) or 16 (PiEEG XR-16, depending on version)
Extra inputsReference and bias
Analog front endTexas Instruments ADS1299, 24-bit (dual ADS1299 on 16-channel versions)
Sample rate250 SPS
Noise1.0 µV peak-to-peak
MicrocontrollerSTM32WB series: dual-core Arm Cortex-M4 (application) and Cortex-M0+ (radio stack)
WirelessBluetooth Low Energy 5
Power5 V over USB-C, from a power bank or a battery head strap
ProgrammingSWD header (GND, RST, SWDIO, SWCLK) inside the box, for an ST-Link

Mask and electrodes

Electrodes10 flat dry Ag/AgCl: 8 channels, reference, bias
Electrode typeDry; also works with gel or saline
PositionsForehead and temples (see Mask & Electrodes)
Mask materialSilicone
FitMade for one headset model (Meta Quest 3, Meta Quest, PICO and others). Clips in with four buckles, or use the silicone insert alone.

Flat dry Ag/AgCl electrodes

Software support

SoftwareSetting
BodyPressMeta Quest (opens in a new tab) and Android (opens in a new tab)
PiEEG CloudPiEEG Devices → PiEEG XR / PiEEG XR-16
PiEEG Server--device ironbci8 (8 channels)
VRChat OSCpieeg-server --device ironbci8 --osc

Bluetooth data format

PiEEG XR uses the same Bluetooth protocol as IronBCI:

Advertised namePiEEG XR
Data characteristic (notify)0000fe42-8e22-4541-9d4c-21edae82ed19
Sample8 channels × 3 bytes, 24-bit big-endian two's complement. A notification can carry one or more samples.

Converting to microvolts, as PiEEG Server does:

raw = (b[0] << 16) | (b[1] << 8) | b[2]
if raw & 0x800000:
    raw -= 1 << 24
uV = raw * 4.5 / 16777215 * 1e6

Full details and example code: IronBCI specification.

Raw values carry a large DC offset (thousands of µV) from the electrode contact. That is normal. Apply a band-pass filter (for example 1–40 Hz) before looking at the signal.