Skip to Content
Introduction

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 | bash

Why 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

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