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
BrainInterfacePython 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
tkinterand embeddedmatplotlibfor 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
- alotofdata
- alotofpaper
- bigbrain
- cnn
- css3
- esp32s3
- flask
- html5
- javascript
- lstm
- python
Log in or sign up for Devpost to join the conversation.