ThreshHold: EMG-Based Exercise Coach.

A wearable rehabilitation sleeve that reads muscle activation in real time and tells you exactly when you're doing it right, and when you're overdoing it.

Wearable Tech Human-AI Design EMG Sensing Python Arduino 2026 · UC Berkeley
Team
Krishnaa Sudhir Sujal Bobba Shelby Desroches
ThreshHold EMG rehabilitation sleeve prototype
The Problem

Patients can't tell if they're doing rehab right.

Over 100,000 ACL surgeries are performed in the US each year. Within days of surgery, quadriceps atrophy begins — and a phenomenon called Arthrogenic Muscle Inhibition (AMI) means the nervous system actively suppresses the very muscles patients need to train.

The result: patients can't tell whether they're activating the right muscles at all. Without real-time feedback, at-home rehab becomes guesswork, and adherence drops sharply without a clinician present.

The Solution

The coach that never misses a rep.

ThreshHold is a wearable thigh sleeve with an embedded EMG sensor. It monitors electrical muscle activity in real time and communicates through two LED signals: green for correct activation, red for fatigue or overexertion.

An adaptive algorithm using Welford's online method calculates a personalised activation threshold each session, so the system adjusts to each patient's baseline rather than relying on fixed values. A Python GUI logs session data and generates an AI physiotherapy summary to track progress over time.

My Role

What I built.

My core responsibility was the activation detection algorithm. I evaluated several approaches — including fixed-threshold, peak-detection, and moving-average methods — and ran comparative tests to identify which performed most reliably on noisy, low-amplitude EMG signals. The Welford online z-score method worked the best. It adapts to each patient's baseline without storing all prior samples, making it both accurate and lightweight enough to run on the Arduino.

On the hardware side, I handled the complete circuit wiring: connecting the MyoWare 2.0 EMG sensor, Arduino Uno, HC-05 Bluetooth module, and LED outputs, including power regulation and signal routing. I also configured the HC-05 for serial communication so data streams wirelessly from the sleeve to the laptop during a session.

EMG signal processing Algorithm evaluation Welford online algorithm Arduino firmware Circuit wiring HC-05 Bluetooth Human-AI design methods
My contributions
  • Tested and compared multiple activation detection algorithms (fixed threshold, peak detection, moving average, z-score) against live EMG data
  • Selected and implemented the Welford online z-score method as the optimal approach for adaptive, memory-efficient baseline tracking
  • Wired the full circuit: MyoWare 2.0 EMG sensor, Arduino Uno, HC-05 Bluetooth module, green and red LEDs, and 9V power supply
  • Configured HC-05 serial communication for wireless data streaming between the sleeve and the Python GUI
  • Participated in the AI-assisted design synthesis process: t-SNE semantic mapping and dot-vote convergence
Design Process

Human creativity, AI synthesis.

01
Diverge
Each team member generated 10 concepts independently — 30 total. A Pugh chart evaluated them on safety, cost, effectiveness, and at-home viability. EMG-based feedback scored highest across all criteria.
02
AI Synthesis
All 30 ideas were embedded and mapped using t-SNE, revealing 3 distinct concept clusters. This let us identify gaps in our ideation space rather than converging prematurely on familiar territory.
03
Gap-Fill
Using the cluster map, we prompted an LLM to generate 15 concepts targeting the unexplored gaps. This surfaced the wearable sleeve direction, which none of the human ideas had proposed explicitly.
04
Converge
Dot voting across the full set of 45 ideas (30 human + 15 AI) selected the top 3 concepts. ThreshHold emerged from combining the highest-ranked elements: wearable form, EMG sensing, and adaptive feedback.
How It Works

Three states, one session.

The sleeve operates in a simple state machine. Each session opens with a calibration window, moves into active coaching when the patient starts exercising, and signals completion with a slow red pulse when the session ends.

Warmup
Baseline Calibration
The system collects 200 rest samples to establish the patient's personal EMG baseline using rolling mean and variance. No feedback LEDs fire during this window.
Active Coaching
Real-Time Feedback
Green LED fires when z-score exceeds 2.5, indicating correct quadricep activation. Red LED fires when peak z-score exceeds 1.4× the session baseline, signalling fatigue or overexertion.
Session Done
Summary + AI Coaching
Red LED slow-pulses to mark completion. The Python GUI displays rep count, peak activation, and an LLM-generated physiotherapy summary personalised to the session's performance data.
The Device

GUI and Hardware Details

ThreshHold Python GUI calibration and live session view

ThreshHold Python GUI calibration and live session view

ThreshHold Python GUI end-of-session stats and AI coaching

ThreshHold Python GUI end-of-session stats and AI coaching

ThreshHold housing Rev 1 CAD render

ThreshHold housing Rev 1 CAD render

ThreshHold housing Rev 2 CAD render

ThreshHold housing Rev 2 CAD render

ThreshHold circuit diagram

Circuit: MyoWare 2.0, Arduino Uno, HC-05, LEDs

Reflection

What I learned.

The hardest part of this project was working with the EMG signal itself. EMG data from the MyoWare 2.0 is noisy, highly person-dependent, and sensitive to electrode placement. Testing multiple detection algorithms against real muscle data made me realize that a method that looks clean in theory often falls apart on biological signals. Fixed thresholds failed immediately across different users. The z-score approach worked because it stops assuming what a "normal" signal looks like and just asks: is this activation meaningfully different from this person's own baseline?

Working on the wiring also surfaced something I hadn't expected: most of the hardware debugging time was spent on the Bluetooth link, not the sensor. The HC-05 has strict AT-command timing requirements, and mismatched COM ports between the display device and the Arduino firmware caused silent failures that looked like sensor problems. That experience shifted how I approach hardware integration. It made me isolate and validate each communication layer independently before combining them.

The AI-assisted design process was genuinely different from any ideation method I'd used before. Seeing 30 human ideas clustered in a t-SNE map made the gaps in our thinking visible in a way that a list or a Pugh chart never could. The concepts the LLM generated to fill those gaps weren't always good, but they broke us out of the implicit constraints we'd all been working within. The final design carries ideas from both human and AI rounds.

If I were to continue this project, I'd prioritise two things: a more rigorous cross-user validation study to stress-test the adaptive threshold across different muscle compositions and injury states, and a cleaner physical form factor. The current neoprene sleeve works, but long-term adherence in a real rehab context would require something a patient actually wants to put on every day. This is a design challenge that I want to work on.

Get in touch

Let's collaborate.

Connect on LinkedIn →
← All projectsBack to Work Next →Gamified Ankle Rehabilitation