edge lab LIVE! starts Tuesday in Munich. Grab a workshop seat and take home the board you build on. Code FRIEND-HACKSTER saves 20%. () Learn more!
Krishnanshu MittalDeepak KhatriHarshit MishraResham Pal Yadav
Published © GPL3+

NeuroGaze: A Brain-Controlled Interface for ALS Patients

A zombie shooter controlled entirely by brainwaves, built to show how BCIs can give paralyzed patients control again.

ExpertFull instructions provided2 hours27
NeuroGaze: A Brain-Controlled Interface for ALS Patients

Things used in this project

Hardware components

Arduino UNO Q
Arduino UNO Q
Primary compute: runs stimulus rendering, EEG decoding, and the game application, all on-device with no host PC.
×1
ADS1299 based BioAmp (nEXG 16 channel device)
Wireless EEG front end, two ADS1299 chips, streams over its own Wi-Fi via WebSocket. 3 of 16 channels used (O1, Oz, O2).
×1
Gold Cup Electrodes with 2.54mm dupont connector
O1, Oz, and O2 to signal pins, common negative above the left ear, reference above the right ear.
×5
EEG Cap or elastic headband
Holds electrodes at standard 10-20 positions for consistent placement across sessions.
×1
Cotton pads with saline solution
Small cotton pieces cut from strips and placed inside each gold cup electrode, then wetted with saline solution via syringe for skin contact.
×1
120Hz Monitor
Displays the flickering SSVEP targets; 120Hz needed to render the fastest (17Hz) target correctly.
×1
USB C to HDMI Adapter
Outputs video from the UNO Q's USB-C port to the monitor.
×1
Keyboard and Mouse with dongle
For setup
×1
Power bank (10000mAh)
Powers the Arduino Uno Q
×1

Software apps and online services

Debian Linux (on UNO Q's Qualcomm side)
Python, Lab Streaming Layer (LSL)

Hand tools and fabrication machines

Manual Unassembled Syringe, 10CC
Manual Unassembled Syringe, 10CC
For applying electrode saline solution
Measurement Tape For EEG
To measure circumference of head for electrode placement and to measure distance from screen to eyes.

Story

Read more

Schematics

SSVEP Electrode Montage

Wiring diagram for the 3-channel SSVEP montage on the ADS1299 based nEXG 16-channel amplifier. O1, Oz, and O2 electrodes connect to pins P1, P2, and P3 respectively. The common negative connects to SRB1, and the reference electrode connects to BIAS.

Code

NeuroGaze SSVEP Pipeline - Full Source (GitHub)

Complete source for the on-device SSVEP brain-computer interface: main.py (two-process orchestrator), ssvep_fbcca.py (the FBCCA decoder), ads1299_stream.py (nEXG WebSocket protocol), run_ssvep_display_sdl.py (vsync-locked stimulus renderer), ssvep_zombie_game.py (the game), and the calibration/detection pipeline in run_ssvep_detection.py. Includes config.py for shared geometry/timing constants and a test/ folder with real instrumented runs (frame timing, dry-run without electrodes, sample-rate profiling). Runs entirely on the Arduino UNO Q's Linux side, no host PC required.

Credits

Krishnanshu Mittal
1 project • 2 followers
Deepak Khatri
1 project • 1 follower
born to play with technolgy both hardware and software
Harshit Mishra
1 project • 4 followers
ECE Engineer | Embedded Systems, IoT & PCB Design | Arduino, STM32, C/C++ | Firmware + Hardware Dev | Learning FPGA & VLSI |
Resham Pal Yadav
0 projects • 3 followers

Comments