Installation
Pick one method — they all get you pieeg-server ready to run.
One-line install (recommended)
curl -sSL https://raw.githubusercontent.com/pieeg-club/PiEEG-server/main/install.sh | bashFirst time on Raspberry Pi? Run sudo reboot after install to enable SPI.
Clone & setup
git clone https://github.com/pieeg-club/PiEEG-server.git
cd PiEEG-server
./setup.shpip install
pip install pieeg-serverRequires Python 3.10+.
IronBCI / EAREEG Support
For Bluetooth Low Energy boards (IronBCI, EAREEG), install the ironbci extra:
pip install pieeg-server[ironbci]Then run with:
pieeg-server --device ironbci8 # auto-scan for BLE device
pieeg-server --device ironbci8 --ble-name MyBoard # custom device name
pieeg-server --device ironbci8 --ble-address AA:BB:CC:DD:EE:FF # skip scanIronBCI boards use the ADS1299 chip over BLE and support 8 channels. The BLE transport requires the bleak Python package (≥0.21).
Optional Dependencies
| Extra | Install | Use case |
|---|---|---|
lsl | pip install pieeg-server[lsl] | Lab Streaming Layer outlet |
rpi | pip install pieeg-server[rpi] | Raspberry Pi SPI support |
ironbci | pip install pieeg-server[ironbci] | Bluetooth LE for IronBCI / EAREEG boards |
fast | pip install pieeg-server[fast] | Native (Rust) DSP accelerator via pieeg-core (opens in a new tab) |
dev | pip install pieeg-server[dev] | pytest + development tools |
Native Accelerator (pieeg-core)
pieeg-server ships with a pure-Python reference implementation for every
DSP hot path — 24-bit ADC decode, Butterworth bandpass, and Hampel spike
rejection. Installing the optional pieeg-core (opens in a new tab)
Rust accelerator transparently swaps those hot paths for compiled
equivalents (~15–30× faster) — no config, no code changes:
pip install 'pieeg-server[fast]'The active engine is announced on startup and reported in the WebSocket
welcome message as engine: { native: true, engine: "pieeg-core", version: "…" }.
Run pieeg-server doctor to see a DSP Engine section confirming which
implementation is active.
If the wheel is missing or fails to import, pieeg-server falls back to
the Python implementation automatically — nothing breaks.
pieeg-core is licensed AGPL-3.0-or-later; installing it is strictly
opt-in so the default MIT-licensed pieeg-server install stays
license-clean.
System Requirements
| Requirement | Minimum |
|---|---|
| Python | 3.10+ |
| OS | Linux (Raspberry Pi OS for hardware), macOS/Windows for mock mode |
| RAM | 256 MB |
| Network | Any — WebSocket streams over local network |
Verify Installation
pieeg-server doctor # diagnose hardware, software, configuration
pieeg-server --mock # start with synthetic data (no hardware needed)Open http://localhost:1617 (opens in a new tab) to see the dashboard.