Inspiration

We wanted to rethink the Pomodoro technique — not as a fixed timer, but as a responsive system that adapts to how your brain actually feels. Traditional timers assume you can focus for 25 minutes straight, but that's rarely realistic. Our idea was to build a tool that could feel your mental fatigue in real time, and adjust itself — using nothing but brainwaves and a little bit of machine learning.

This project was also born out of our work on custom EEG hardware, and our interest in making brain-computer interfaces (BCIs) more accessible and useful in everyday life.


What it does

NeuroSync is a real-time, EEG-powered productivity app that:

  • Tracks your brain’s focus level using live EEG data (from Fp1/Fp2)
  • Uses a trained Keras model to classify your current attention state
  • Dynamically adjusts work and break durations based on your mental engagement
  • Visualizes focus levels over time with a real-time graph
  • Provides an enhanced Pomodoro experience that fits your brain rhythms

How we built it

  • EEG Hardware: We used a custom single-channel EEG PCB based on the ADS1220 ADC, sampling at 512 Hz, connected via serial USB.
  • Data Ingestion: A custom BrainInterface Python module handled stable serial streaming into our app.
  • Signal Processing: Using SciPy's Welch method, we extracted bandpower features (delta to gamma) every second.
  • ML Model: A 1D CNN (trained in Keras) classifies each EEG window as "focused" or "unfocused", outputting a confidence score.
  • GUI: We built a desktop interface using tkinter and embedded matplotlib for real-time visualization.
  • Adaptive Logic: Work/break durations are adapted using exponential moving average of focus scores, making each Pomodoro session personalized.

Challenges we ran into

  • EEG signal noise: Eye blinks, muscle artifacts, and environmental EMI (like 60 Hz powerline interference) heavily contaminated the EEG signal. We had to strike a balance between filtering enough to clean the signal while keeping latency low for real-time responsiveness.

  • Firmware stability: Ensuring stable high-speed serial transmission from the ADS1220 (via ESP32) was tricky. We faced issues with SPI timing, buffer overflows, and needed to optimize the firmware for reliable ~512 Hz sampling without data loss.

  • Model generalization: Training a reliable classifier from just Fp1 and Fp2 channels (limited spatial resolution) was tough. We had to engineer strong bandpower-based features and tune the window size and overlap for better temporal sensitivity.


Accomplishments that we're proud of

  • Built a fully working EEG-to-UI pipeline from hardware to GUI in under 48 hours.
  • Created a real-time adaptive timer that actually feels different to use — because it's based on how your brain behaves.
  • Designed a clear, user-friendly interface that doesn’t feel like a science experiment.
  • Opened the door to plug-and-play BCI experiences using low-cost EEG.

What we learned

  • The power of real-time feedback: seeing your focus live is oddly motivating.
  • Lightweight ML models + good features can go far, even on noisy signals.
  • UX for biofeedback tools must be simple, calming, and trustable — not overwhelming.
  • EEG isn’t magic, but even a single channel can enable truly novel applications.

What's next for NeuroSync

  • 📊 Add post-session analytics and daily focus summaries
  • 📱 Build a mobile companion app (BLE + Flutter)
  • 🔄 Add model personalization using self-supervised learning over time
  • 🎧 Integrate ambient sound or music that adapts to your brain state
  • 🌐 Package and release NeuroSync as an open-source tool for neuro-hackers and students alike

Built With

Share this project:

Updates