P300 speller — OpenBCI Cyton
P300 brain–computer interface with BrainFlow (EEG), PySide6 desktop UI, and a 6×6 row–column speller: connect the Cyton, run cued calibration in fullscreen, train a classifier from one or more saved sessions, then use online spelling with a loaded model. Session data, events, and trained weights follow a documented layout under data/<user>/.
Code & media
Summary
This project packages a full P300 pipeline in one app: BrainFlow streams from an OpenBCI Cyton (8 channels by default, optional Cyton+Daisy for 16), the subject copies cued characters on a 6×6 grid while data and events are written to timestamped session folders, training aggregates selected sessions into a joblib classifier plus a JSON metrics snapshot, and the online speller loads that model for letter-by-letter output with accumulated text. Optional audio cues announce target changes during calibration. Electrode routing is documented for 8-channel setups; connections-cyton.txt and config hooks cover non-default wiring.
Key metrics
Paradigm
6×6 RC
Row–column speller
Stack
BrainFlow + PySide6
Acquisition and GUI
Workflow
Cal → train → spell
Calibration, session train, online use
Hardware
Cyton
8 ch; Daisy optional for 16 ch
Artifacts
NPZ + joblib
Per-session raw/events; saved model
Code
GitHub
pip install -e .; entry p300-speller
Experiment data excludes raw stimuli and large prediction arrays.
Back to experiments