The P300 is an event-related potential (ERP): a positive voltage peaking roughly 250–500 ms after a stimulus the user is attending to and finds rare or relevant. It is strongest over central and parietal midline electrodes (Cz, Pz). The setup that elicits it is the oddball paradigm: many standard stimuli, a few targets, and the user counts or attends to the targets.
The P300 speller (Farwell and Donchin, 1988) turned this into communication. A grid of letters flashes row by row and column by column, and the row and column that evoke a P300 identify the letter. It needs little user training, because the user only has to attend, and it remains one of the most reliable non-invasive BCIs.
Why P300 BCIs repeat and average
A single-trial P300 is small compared with background EEG. Averaging the responses to repeated flashes of the same item cancels activity that is not locked to the stimulus and keeps the ERP. More repetitions mean higher accuracy and slower selection, so the speed–accuracy trade-off is the central design decision. It is measured as information transfer rate (bits per minute), not accuracy alone.
Decoders
| Approach | Idea | In BCILattice |
|---|---|---|
| Downsampled ERP + linear classifier | Epoch amplitudes in the response window as features, LDA or SVM on top | Epoching, then scikit-learn classifiers on the canvas |
| Xdawn | Spatial filters that maximise the evoked response relative to noise | Xdawn block in the BCI decoding family |
| Riemannian ERP covariances | Covariance matrices augmented with the class-average ERP, classified with MDM or tangent space | ERP covariances, MDM, FgMDM, TSClassifier |
| Compact CNN | EEGNet was validated on P300 among other ERP tasks | EEGNet and related architectures as blocks |
Seeing when the response happens
The Time-Resolved Decoder block decodes at every time point, showing when in the trial target and non-target differ. That is a better check that a decoder is reading the P300 and not an early visual artifact than a single accuracy number. The Pseudo-Online Evaluator then tests whether a decoder would work live, reporting false alarms per minute, delay and bit rate.
Pitfalls specific to P300
Class imbalance
Targets are rare by design, so plain accuracy rewards always guessing "non-target". Report balanced accuracy, ROC AUC or selection accuracy.
Overlapping epochs
Fast flash rates mean neighbouring epochs overlap in time. Random splits across overlapping epochs leak. Split by run or session.
Eye movements
If the user looks directly at the flashing item, visual responses help, which matters for users who cannot control their gaze.
Questions
What is a P300 BCI?
A P300 BCI detects the P300, a positive brain response about 300 ms after a rare stimulus the user is attending to. Options are flashed, and the one that evokes a P300 is the user's choice. The P300 speller uses this to type letters.
How does the P300 speller work?
Letters sit in a grid whose rows and columns flash in random order. The user attends to one letter; the row and column containing it evoke a P300, and their intersection identifies the letter.
What is Xdawn?
Xdawn is a spatial filtering method that finds channel combinations maximising the evoked response relative to noise. It is widely used to improve P300 detection before classification.
Which electrodes are used for P300?
Central and parietal midline sites, especially Cz and Pz, with surrounding parietal and occipital electrodes often included.
How is P300 speller performance measured?
By character selection accuracy and information transfer rate in bits per minute, which accounts for both accuracy and the time each selection takes.
Read the reference
Related
SSVEP BCI: Steady-State Visual Evoked Potentials
Look at a light flickering at 12 Hz and your visual cortex responds at 12 Hz and its harmonics. An SSVEP BCI shows several flickers at different frequencies and detects which one you are looking at.
Riemannian Geometry for BCI: MDM and Tangent Space
Instead of filtering channels and computing features, Riemannian methods treat each trial's covariance matrix as a point on a curved space and classify it there. They are simple, fast and hard to beat.
EEGNet: The Compact CNN for EEG Explained
EEGNet (Lawhern et al., 2018) is a small convolutional network whose layers mirror classical EEG processing: frequency filters, then spatial filters, then a summary over time. It has a few thousand parameters and trains on the data you actually have.
Motor Imagery BCI: EEG Classification Explained
Imagining a movement suppresses the mu and beta rhythms over the opposite motor cortex. A motor imagery BCI detects that suppression and turns it into a command, with no movement and no external stimulus.