Skip to Content
Getting StartedQuick Start

Quick Start

Install & launch

curl -sSL https://raw.githubusercontent.com/pieeg-club/PiEEG-server/main/install.sh | bash sudo reboot # first time only, enables SPI pieeg-server # or: pieeg-server --mock (no hardware)

Open the dashboard

Browse to http://raspberrypi.local:1617  — you’ll see live waveforms immediately.

PortPurpose
:1616WebSocket data stream
:1617Web dashboard

Connect from code

import asyncio, json, websockets async def main(): async with websockets.connect("ws://raspberrypi.local:1616") as ws: async for msg in ws: frame = json.loads(msg) print(f"#{frame['n']}: {frame['channels']}") asyncio.run(main())

Every frame is plain JSON — no SDK, no binary protocol, works in any language that has WebSocket support.

Common Launch Modes

pieeg-server # stream 16 ch (default) pieeg-server --device pieeg8 # 8-channel shield pieeg-server --device ironbci8 # IronBCI / EAREEG via Bluetooth LE pieeg-server --filter # 1–40 Hz bandpass pieeg-server --monitor # terminal sparklines pieeg-server --mock # synthetic data, no hardware pieeg-server --auth # require 6-digit access code pieeg-server --osc # VRChat OSC bridge pieeg-server --lsl # Lab Streaming Layer outlet

IronBCI / EAREEG

pieeg-server --device ironbci8 # auto-scan for EAREEG device pieeg-server --device ironbci8 --ble-name MyBoard # custom BLE device name pieeg-server --device ironbci8 --ble-address A1:B2:C3:D4:E5:F6 # skip scan

IronBCI requires the BLE extra: pip install pieeg-server[ironbci]. No SPI or GPIO needed — works on any platform with Bluetooth.