Steady-state visually evoked potentials are one of the few brain-computer interface techniques that genuinely work on hobbyist hardware. The mechanism is almost unfairly simple: flicker something at 10 Hz, look at it, and the visual cortex produces measurable activity at 10 Hz. Flicker six things at six different rates and whichever one you attend to shows up in the EEG.
Aarav Sharma has used exactly that to build a communication interface, written up by Sam Freeman at Make: this week. It grows out of a 3D-printed, brain-controlled robot arm he began at age 14.
The interface
Six command targets, each flashing at its own frequency. The user focuses on one; the headset detects the matching response and converts it into a command. The project is sponsored by OpenBCI.
Six targets is a deliberate constraint, and it is the design decision that makes the rest work. SSVEP accuracy degrades as you add targets — the frequency responses crowd together and harmonics start colliding — so a six-way choice stays reliable where a 26-letter grid would not. The cost is that six options cannot spell directly.
Closing the gap with prediction
That is where the language model comes in. An OpenAI language model suggests words to speed up entry, and — the important part — the user chooses the final output. The model proposes; it does not commit.
That division is what makes the reported figure plausible: full sentences in under five seconds. Six-target selection at a few seconds per selection cannot type a sentence in five seconds, but six-way disambiguation among predicted candidates can. The interface is doing selection, and the model is doing expansion.
It is also the right place to put the human. In an assistive speller, a model that autocompletes without confirmation is a model that occasionally says something you did not mean, to someone, as you.
The analysis work, which is the part most projects skip
The more impressive half of this write-up is the offline evaluation, which is more rigorous than hobby BCI projects usually attempt:
- About 60 trials per user, collected offline, with the system cueing which of the six targets to attend to — giving ground truth for every trial
- Time-frequency reconstruction (TFR) graphs, to confirm the detected frequencies are the ones actually being presented
- A confusion matrix, to identify which targets get mistaken for each other
- Tests examining how accuracy changes with different amounts of EEG data — i.e. how long a window the classifier needs
That last one is the central engineering trade in SSVEP. A longer analysis window gives a cleaner frequency estimate and a slower interface. Measuring the curve rather than guessing at it is the difference between a demo and a design.
The confusion matrix matters for the same reason: if two specific targets are routinely swapped, the fix is to move their frequencies apart, not to retrain anything.
What is coming next
The interface currently runs on a computer screen. The stated next step is to move it to AR glasses, which would make it portable and practical rather than desk-bound. The write-up shows a mockup of the AR interface with letter choices and a “Call Dad” example.
Moving SSVEP to AR glasses is not a straight port. The stimulus has to flicker at a precise, stable rate, and a glasses display’s refresh behaviour and variable ambient background both work against that. It is a real research problem rather than an integration task — which is part of what makes the direction interesting.
What the write-up does not say
Worth being clear about the gaps, because they are the things you would need to reproduce it:
- No accuracy percentage is reported. The article says accuracy-versus-data-length was tested, but gives no figure.
- No headset or board model is named, beyond OpenBCI’s sponsorship.
- The six stimulus frequencies are not listed.
- No repository, code or build log is linked.
Sharma’s project page is at aaravinnovate.com/bci-neurova, though it is a client-rendered portfolio that serves no readable project text to a fetcher. The earlier robot-arm phase was covered on the Make: Substack in July.
For a project whose offline validation includes TFRs and a confusion matrix, the published numbers are thinner than the work appears to be. The methodology is the part worth borrowing.
Sources
- Improving a Brain-Computer Interface — Make:
- Developing a Better Brain-Controlled Robot Arm — Make: Substack
- BCI Neurova — Aarav Sharma
- OpenBCI