A baseline protocol worth running: 30 left, 30 right

A baseline protocol worth running: 30 left, 30 right
Samantha Lin

If you are continuing this work, run this first: two classes, imagined left-hand movement against imagined right-hand movement, 30 trials each, recorded so that the data stays yours. It is the experiment I would put ahead of everything else on the command list, and the reasoning is worth setting out in full, because the trial count in particular is a decision rather than a default.

Why left hand against right hand

Two-class left versus right hand imagery is the canonical starting paradigm for this kind of work. It comes from the Graz group, whose statement of the imagery-driven BCI approach is still the standard reference for using sensorimotor rhythm changes over C3 and C4 as a control signal (Pfurtscheller and Neuper 2001). The BCI Competition Graz data set B writes the same paradigm down as a runnable protocol: two classes, left hand and right hand, a cue arrow pointing one way or the other, then four seconds of imagery, recorded from three bipolar channels at C3, Cz and C4 (Leeb et al., data set description). Strip out Cz and that is a channel set the Crown already has.

Why the two classes separate

Imagining a hand movement suppresses the mu rhythm over the opposite hemisphere. In an open dataset of 52 participants doing left versus right hand imagery, the contralateral channel showed the bigger desynchronisation for the corresponding class, with contralateral ERD and ipsilateral ERS over the somatosensory area (Cho et al. 2017). Left and right hand are separable precisely because their strongest changes land on opposite sides of the head, and C3 and C4 sit over exactly those two places.

Neurosity’s own guide agrees with the literature here, which is a useful thing to be able to point at. It puts the mu rhythm at about 8 to 12 Hz, says imagined movement drops its amplitude sometimes by 30 to 50%, places the strongest desynchronisation for right hand imagery at C3 over the left motor cortex, and states that at minimum you need C3 and C4 (Neurosity, Motor Imagery BCI guide).

Why 30 per class, and not the published number

I want to be straight about this: 30 per class is at the low end of published practice, not at the centre of it. Here is what the protocols actually use.

ProtocolClassesTrials per class
Graz data set B (Leeb et al.)left vs right hand60 per screening session, 120 in total across the screening sessions
Dreyer et al. 2023left vs right hand20 per run, 6 runs, so 120 per session; the first two runs, 40 per class, are the calibration block that fits the classifier before feedback
Cho et al. 2017left vs right hand100 or 120
Yang et al. 2025left vs right hand grasping100 per session, across three days

So 30 each is a deliberate trade-off between two published constraints that pull in opposite directions. On one side, those trial counts. On the other, the fatigue work, which puts the useful imagery window at 100 to 150 trials with the block duration held inside about 30 minutes (Li et al. 2024), and my own sessions, where the quality of what I was producing fell off somewhere around trial 20 (training fatigue). Sixty trials total, 30 per class, finishes comfortably inside that window with room for setup, breaks and a second look at the fit.

Read it as a first calibration block rather than a full training set. The nearest published analogue is Dreyer et al., where 40 trials per class is what fits the first classifier before feedback begins. Then repeat the block on another day instead of extending the sitting: in the multi-day dataset, accuracy rose from the first session to the third, recorded on separate days (Yang et al. 2025).

What the run actually gives you

A dataset you own and can look at, which is the thing the console will not hand you. Console-trained trials are consumed to fit a cloud model: no trial list, no per-trial scores, no export, and nothing the MCP server returns. In my own log, every experiment I set up with more than one command recorded zero trials, so pairing two commands in the console is not currently a route to a two-class dataset in any case.

Record it yourself instead, with addMarker() and record() around each cue, and what you finish with is 60 labelled epochs you can open, plot, re-cut, and re-analyse against a different filter next month. A real baseline on one head, with the fit, the day and the interruptions written down beside it. Every claim anyone makes off the back of it can be traced to a number in a file, which is not true of anything trained in the console.

Where it leads

Two-class hand imagery is the foundation the assistive work is built on. Thirteen participants have controlled a physical robotic arm for reach and grasp tasks using scalp EEG alone, with imagined left hand, right hand, both hands and relaxation mapped to left, right, up and down movement of the arm, reaching 80.3% accuracy, plus or minus 17.0%, on a four-target grasp task and 77.9%, plus or minus 14.7%, on five targets (Meng et al. 2016). That took 8 to 15 sessions per person and a research-grade electrode count, and it is worth stating those numbers alongside the result so the line stays a direction rather than a promise. It is the same left versus right contrast, scaled up. The 60-trial block is the first honest step onto that path.

The protocol, in one line: 30 imagined left-hand pinches and 30 imagined right, cue-driven, four seconds of imagery per trial, marked and recorded through the SDK, inside 30 minutes, repeated on a second day.

Sources

My own data: three recorded console sessions (248,320 samples), an audit of seventeen training experiments, and the Notion training plan and sensor map.

Share:

Explore more

This site covers what the documentation doesn't: the things I wish someone had handed me first.