PiEEG Server
Real-time EEG streaming platform for PiEEG shields (8/16 ch) and IronBCI / EAREEG headsets (8 ch, Bluetooth LE)
Reads at 250 Hz · streams over WebSocket · live dashboard with spectral analysis, topographic maps, experiences gallery, VRChat OSC, Lab Streaming Layer, webhook automation — from your Raspberry Pi or any Bluetooth-enabled machine.
No hardware? Run pieeg-server --mock for synthetic EEG data, or try the live demo right in your browser.
curl -sSL https://raw.githubusercontent.com/pieeg-club/PiEEG-server/main/install.sh | bashWhy PiEEG Server?
- Zero-config streaming — plain JSON over WebSocket, works in any language
- Real-time dashboard — Canvas 2D waveforms, FFT, spectrogram, topographic maps
- Brain-computer interfaces — focus/relaxation detectors, blink detection, experiences gallery
- Automation — webhook triggers on EEG events, IFTTT & Zapier compatible
- Research-ready — Lab Streaming Layer, CSV recording, Jupyter notebooks
- VR integration — VRChat OSC bridge with avatar parameters
Quick Links
Platform Overview
┌──────────────────────────────────────────────────────────┐
│ Raspberry Pi + PiEEG Shield (8 or 16 ch) │
│ — or — IronBCI / EAREEG board (8 ch, Bluetooth LE) │
│ │
│ hardware.py → SPI/GPIO init, ADS1299 config │
│ ironbci.py → BLE scan, GATT notifications, parsing │
│ ↓ │
│ acquisition.py → 250 Hz read loop (background thread) │
│ ↓ pub/sub │
│ ├── server.py → WebSocket broadcast │
│ ├── recorder.py → CSV writer │
│ ├── monitor.py → Terminal sparklines │
│ ├── osc_vrchat.py → VRChat OSC bridge │
│ └── lsl.py → Lab Streaming Layer outlet │
│ │
│ ws://0.0.0.0:1616 │ http://0.0.0.0:1617 │
└──────────┬───────────────────────────────────────────────┘
│ Local network / internet
├── Browser dashboard (React + Vite)
├── Python / Jupyter notebook
├── VRChat (OSC over UDP)
├── LSL consumers (OpenViBE, MNE, LabRecorder…)
├── IFTTT / Zapier (webhooks)
└── Any WebSocket client