Software
Features
Recording

Recording & Replay

Record

pieeg-server record session.csv                              # standalone, Ctrl-C to stop
pieeg-server record session.csv --duration 300               # 5 minutes
pieeg-server record session.csv --device pieeg8              # 8-channel PiEEG
pieeg-server record session.csv --device ironbci8 --ble-name MyBoard  # IronBCI via BLE
pieeg-server record session.csv --device ironbci32 --serial-port /dev/ttyACM0  # 32-ch
pieeg-server record session.csv --mock                       # synthetic data
pieeg-server --record session.csv                            # record while streaming

The record subcommand runs standalone (no WebSocket server). To record while serving, use --record FILE instead.

You can also start/stop recording from the dashboard or via the WebSocket API:

{"cmd": "start_record"}
{"cmd": "stop_record"}

File Format

CSV with header: timestamp, ch1, ch2, ..., chN

DetailValue
FormatCSV: timestamp, ch1, ch2, ..., chN
Locationrecordings/pieeg_YYYYMMDD_HHMMSS.csv
Sample rate250 rows/second
AnnotationFrame-based text markers; sidecar .annotations.json

Playback

The dashboard session library provides full playback controls:

  • Play/pause and seek via frame slider
  • Speed control: 0.25×, 0.5×, 1×, 2×, 4×
  • Time window: 2s / 4s / 8s display window
  • Y scale: ±50, ±100, ±200, ±500 µV
  • Annotations: Add/view text markers on any frame

Export

FormatContent
CSVRaw data with annotation column
JSONSession metadata + annotations

Download individual sessions from the dashboard's session library, or click Studio ↗ (in Saved Sessions or in the playback toolbar, including on unsaved in-memory browser recordings) to open them directly in PiEEG Studio (browser Cloud Preview or local Community Edition) for MNE-Python filtering, ICA, topomaps, ERPs, connectivity, MOABB BCI benchmarks, and Excel/FIF/EDF/Python/Jupyter export.

For a browser take that pairs the live bio stream with 33-point camera pose (points only, two clocks, no pixels), see BioPose Recorder. Confirmed frontal blinks are stored as blink events on that take. That path does not write the server CSV above.

For a labelled Aura VR take (8-ch palm EMG + IMU, guided rest/hold, optional Hand Landmarker), see Aura Dataset Lab. Native-rate JSON/ZIP; the 50 Hz table is labels only.

For a quantitative webcam rPPG and spatial forehead optical take (POS, CHROM, GREEN, R × C virtual sensor array, slow optical dynamics, offline reprocessing, and concurrent PiEEG bio capture), see Optical Physiological Bench.

For a dual-eye roll-stabilized video-oculography, blink morphology, and pupillometry take (96x56 OD/OS eye scopes, behind-the-scenes pixel segmentation, PLR step analyzer, and online L2 ridge bio coupling), see Oculomotor, Blink & Pupillometry Bench.