Project Info
Inspiration
Millions of people living with motor impairments retain their thoughts and intentions, yet lose the ability to perform basic daily tasks. Something as simple as feeding oneself can become dependent on constant assistance. This loss is not just physical. It affects dignity, confidence, and autonomy. Assistive feeding devices have improved quality of life for many people with motor impairments. However, most current systems rely on residual physical input or voice commands, which can be unreliable and difficult to repeat. We were inspired by the gap between intention and execution. If someone can focus, that intent should be enough to initiate meaningful action. MindAssist translates simple neural signals directly into a complete assistive routine. Rather than requiring continuous control, it enables a single intentional mental state to trigger a safe, autonomous sequence.
What it does
MindAssist is a brain-controlled assistive feeding system. Using a real-time EEG headset, a sustained focus signal activates a robotic arm that performs a complete feeding routine safely and autonomously. No physical interaction, no repeated voice commands, just focus-driven control. The system continuously processes EEG signals using thresholding, smoothing, and sustained activation detection to distinguish deliberate intent from noise. When a sustained focus signal is detected, the robotic arm activates. The arm moves from a neutral position to pick up food, uses computer vision to detect and align with the user’s mouth, delivers the bite safely, detects completion, and returns to neutral. The system then waits for the next intentional activation. For environmental awareness, we integrated a camera-based computer vision module. The system performs real-time face detection and mouth localization. The detected coordinates are used to adjust the final approach of the robotic arm, allowing dynamic alignment rather than fixed positioning. We structured the entire system as a finite state machine. This ensured safe transitions between idle, activation, feeding, and reset states, preventing repeated or unintended motion.
How we built it
Our team brought together hardware and software engineers working at the intersection of robotics, signal processing, and computer vision. On the hardware side, we built and tuned the robotic arm, defined safe motion cases, and developed repeatable feeding trajectories. We experimented with different sensors and mounting configurations to improve reliability and stability. We also developed the EEG processing pipeline testing signal thresholds, implementing smoothing and sustained activation logic, and addressing connectivity instability. Bluetooth pairing was initially inconsistent, so we automated the connection process to make the system robust and repeatable. On the vision side, we implemented real-time face detection and object localization. We processed live camera frames, extracted coordinates, and translated those into spatial adjustments for the robotic arm. Latency optimization was critical to ensure that the arm’s movement felt responsive and aligned with the user’s position. The integration phase required unifying three asynchronous systems: neural input, mechanical actuation, and visual feedback. We built a structured software architecture to coordinate them deterministically, prioritizing safety, clarity, and reliability over complexity.
Challenges we ran into
EEG signals are inherently unstable and sensitive to noise. Bluetooth pairing and data streaming were initially inconsistent, so we automated and stabilized the connection pipeline. Synchronizing EEG input, servo motion, and vision processing demanded strict control architecture to avoid timing conflicts. The robotic arm itself required precise tuning due to sensitive servo behavior. Achieving smooth, controlled movement while maintaining responsiveness was a key engineering challenge.
Accomplishments we're proud of
This is an ambitious project, especially for a team including first-time hackers. We chose to work with inherently noisy EEG signals in a high-stakes and complex assistive context. Building a system that translates brain signals into physical motion required careful engineering and disciplined design decisions.
What we learned
We learned that in assistive technology, simplicity often outperforms complexity. That insight guided our decision to use a simpler EEG interface with strong filtering and structured activation logic rather than a more complex but less stable signal classification system. We designed for reliability over sophistication.
What's next
Longevity and motor impairment represent a growing, global challenge, making this a highly scalable problem space. While we focused on feeding, the same intent-driven control framework can extend to tasks such as medication management, object retrieval, communication aids, and environmental control. It can also be valuable to log the robotic arm’s actions in a database, enabling caregivers to monitor usage patterns and allowing the data to be analyzed further to inform healthcare decisions and long-term care optimization. Our immediate next step is engaging directly with the mobility-impaired community. Due to the constraints of a 36-hour build, we were not able to gather user feedback during development. We are eager to iterate based on real-world input and refine the system in collaboration with the individuals it is designed to support.
MindAssist
A non-invasive, low-cost, mind-controlled robotic arm using the NeuroSky MindWave Mobile 2 EEG headset to help people with limited mobility perform assistive tasks such as feeding and simple object grasping — purely through thought.
Inspired by Neuralink's CONVOY trial demo, recreated with affordable consumer hardware and open-source software.
Problem Statement
"One in three U.S. stroke survivors faces food insecurity — nearly twice the rate of people without stroke — because they often can't reliably feed themselves without assistance (American Heart Association, 2022). We're building a mind-controlled assistive arm so survivors can trigger an entire feeding routine with simple mental states, restoring autonomy even when fine motor control is gone."
Hardware
- EEG: NeuroSky MindWave Mobile 2 (provides Attention, Meditation, and Blink values)
- Robotic arm: Hiwonder / LewanSoul miniArm Standard Kit — 5 DOF, high-precision digital servos, built-in Bluetooth, 6-channel knob controller for manual testing
- Microcontroller: miniArm Atmega328 controller board (kit default) / Arduino Uno R3 clone (backup)
- Extras included with kit: ESP32-Cam, glowing ultrasonic sensor, touch sensor, acceleration sensor
Control Concept
| Mental State | Threshold | Action |
|---|---|---|
| Focus (high Attention) | > 65–75 | Move arm forward / lift / extend toward target |
| Relax (high Meditation) | > 65–75 | Retract arm / open gripper / return to rest |
Architecture
MindWave Mobile 2 ──Bluetooth──▸ Laptop (Python)
│
EEG parsing &
state machine (FSM)
│
USB Serial commands
│
Arduino miniArm ──▸ Servos
- EEG ingestion — MindWave ↔ Bluetooth ↔ Python service parsing ThinkGear binary protocol directly (
pyserial, no external EEG libs). - State → motion planner — Python FSM converts
FOCUS/RELAX/BLINKinto commands (POS1,FEED,HOME). Auto-completes the feeding routine if focus is sustained > 2 s. - Robot layer — Arduino serial parser +
Servolibrary with preset joint positions (reach(),lift(),feed(),home()).
Real-time EEG -> Commander bridge
EEG/eeg_visualizer.py now publishes live EEG packets on localhost UDP (127.0.0.1:8765), and PythonInput/Commander.py subscribes to that stream in real time.
- EEG stream payload fields:
attention,meditation,signal,blink,state,ts - Transport: local UDP JSON (same laptop, no cloud)
- Commander behavior: finite-state machine for robot-arm step commands (
0..3)
FSM used by PythonInput/Python.py:
HOME->REACHwhen focus is high (FOCUS, attention >= 60) -> send1REACH->GRABon blink -> send2GRAB->RETURNwhen relax is high (RELAX, meditation >= 60) -> send3RETURN->HOMEon relax/idle -> send0
If EEG stream is stale for 5 seconds, commander sends 0 (safe/home).
Run both processes together
- Terminal A:
python EEG/eeg_visualizer.py - Terminal B:
python PythonInput/Commander.py
Make sure PORT in PythonInput/Python.py matches your Arduino serial device.
Documentation & Links
- NeuroSky MindWave Mobile & Arduino tutorial
- Hiwonder miniArm wiki
- miniArm Arduino IDE setup
- MindWave Mobile 2 (RobotShop)
- miniArm Standard Kit (Amazon)
Built with Codex.
Analysis
View
Metric
- 20
- 5
- 4
- 1
Figures cover GitHub contributors during the hackathon window. A co-authored commit counts in full for each author, so per-member totals add up to more than the whole-team figures.
Technology
- CIn code
- C++In code
- FastAPIIn code
- PythonIn code
- OpenAIClaimed
4 of 5 appear in the indexed code. 1 claimed on Devpost could not be matched to code, which may simply mean the tool leaves no trace in the repository.
AI coding agents
No AI coding agent signals were found in this repository.
Detected from committed agent config files and commit authorship. Absence of a signal is not proof an agent was unused.
Codebase size
Source size
116 KB
Source files
25
Counts recognized source files only; vendored directories, binaries and lockfiles are excluded, so this is smaller than the repository on disk.
Repository
YehyunLee/MindAssist
58 files · 50.2 MB · @ 9b572ed
Structure
Application logic
43 files · 74%Domain rules, services and shared utilities.
+5 more
Supporting
Layers are inferred from where files sit in the tree, not from reading the code. A project that names its directories unconventionally will read oddly here — open the file browser to check anything the diagram implies.
Languages
- Python65%
- C16%
- C++8%
- XML7%
- Markdown3%
Share of indexed source by file size. Binary and vendored files are excluded.
Dependencies
requirements.txt
pypi · 10- fastapi
- matplotlib
- mediapipe
- numpy
- opencv-python-headless
- pillow
- pyserial
- requests
- ultralytics
- uvicorn
Declared in the repository’s manifests at the indexed commit. A declared package is not proof it is used, and runtime dependencies are listed first.
This project’s features have not been analysed yet.
Export this project's context (description, README, evidence, key source files) to chat with an AI agent elsewhere.