All experiments
CompletedClassification2026-04-25

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>/.

EEGBCIP300OpenBCIBrainFlowPySide6scikit-learn

Code & media

View on GitHub

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