Inspiration

Over 795,000 people in the U.S. suffer a stroke every year, and the majority experience some form of hand impairment. Traditional rehabilitation is expensive, clinic-bound, and brutally repetitive — patients drop off therapy not because they can't recover, but because the exercises are boring. On the other side of the spectrum, conditions like carpal tunnel, rheumatoid arthritis, and Parkinson's are often diagnosed late because there's no easy way to quantify hand function at home.

We wanted to build something that would make hand rehab feel less like homework and more like a game — while also turning the same hardware into a clinical-grade screening tool anyone can use at home.

What it does

RehabFlow is a smart glove that measures per-finger grip force and streams it over Bluetooth to a web app. It has two modes:

  1. Rehab mode — a Flappy Bird–style game where your grip force controls the bird's altitude. Squeeze harder → bird rises. Each therapy session logs reps, average grip per finger, and fatigue patterns.
  2. Clinical mode — five-second diagnostic tests that screen for carpal tunnel (finger-force ratio asymmetry), Parkinson's (tremor spectral analysis + bradykinesia), and rheumatoid arthritis (morning vs. afternoon grip delta > 20%).

Sessions persist locally, generate trend charts across visits, and flag regression if a discharged patient's grip drops more than 15% below their discharge baseline.

How we built it

Hardware. Five FSR (force-sensitive resistor) film pressure sensors on the fingertips of a standard glove. Each sensor forms a voltage divider with a 10 kΩ pull-down resistor:

$$V_{out} = V_{cc} \cdot \frac{R_{10k}}{R_{FSR} + R_{10k}}$$

At rest the FSR resistance is near ∞, so V_out ≈ 0. Under full squeeze it drops to ~250 Ω, so V_out ≈ 3.2V and the ESP32's 12-bit ADC reads near 4095.

An ESP32 WROOM-32E samples all 5 sensors via ADC1 channels (GPIO 34/35/32/33/25), applies a 5-sample rolling-average filter, and maps readings to 0–100% grip force using a per-session calibration:

$$\text{force}\% = \text{clip}\left(\frac{\text{ADC} - \text{rest}}{\text{squeeze} - \text{rest}} \cdot 100,\ 0,\ 100\right)$$

The ESP32 broadcasts JSON frames at ~30 Hz over BLE ({"t":54,"i":61,"m":48,"r":50,"p":42}).

Software. A single-file HTML/JS/CSS web app using the Web Bluetooth API. No backend — sessions persist in localStorage. Charts are rendered with Chart.js. The game runs at 20 FPS with simple physics: the bird's target Y-position is interpolated from the finger-averaged grip, and birdY += (target - birdY) * 0.18 gives the floaty Flappy Bird feel.

Challenges we ran into

  • Wrong USB driver. Our board uses the CP2102 chip; we initially installed CH340 and burned an hour debugging a device that Windows couldn't recognize (Code 28).
  • Wrong board in the docs. Instructions were written for ESP32-S3 (GPIO 1–5), but we had an ESP32 WROOM-32E — where GPIO 1 is the UART TX pin. Uploading would have killed Serial Monitor. We remapped to ADC1-only pins (34/35/32/33/25) that survive WiFi/BLE coexistence.
  • No soldering equipment. We built the entire glove using only female-to-male jumper wires, electrical tape, and hot glue as strain relief — proving the whole system works with zero soldering.
  • FSR calibration drift. Every mounting shifts the rest baseline. We implemented a 3-second relax + 3-second squeeze calibration that runs on every boot.
  • Partial sensor counts. With only 2 of 5 sensors wired, the game's averaging logic capped the bird at 40% of screen height. We had to rethink how unwired channels are handled.

Accomplishments that we're proud of

  • Sub-$50 BOM for a device that matches the core capability of clinical grip dynamometers costing $300+.
  • No-solder build. The entire glove is assembled with jumper wires and tape, which means anyone can replicate it at home.
  • Three clinical screening tools in one glove — carpal tunnel, Parkinson's tremor, and rheumatoid arthritis — all using the same five FSR readings.
  • Regression detection for discharged patients. Post-discharge monitoring is something most rehab tools completely miss.
  • A game that's actually fun to play. We tested it and lost 20 minutes accidentally playing Flappy Bird with our fingers.

What we learned

  • Firmware/hardware cognitive load is real. Half our debugging time was spent on driver and pin-mapping mismatches, not on algorithms or UX.
  • BLE is shockingly easy from the browser. The Web Bluetooth API removed an entire native-app layer from our stack.
  • Calibration is the unsexy backbone of every sensor project. Without per-session calibration the force percentages are nonsense — and no amount of downstream signal processing fixes a bad baseline.
  • Clinical screening is pattern recognition. Diagnostic criteria for RA (>20% morning/afternoon gap), carpal tunnel (finger-force asymmetry), and Parkinson's (4–6 Hz tremor band) are just statistics — entirely computable from the same grip data.

What's next for RehabFlow

  • Flash-persistent calibration so users don't have to recalibrate every reset.
  • Multi-patient profiles for clinic use, with patient PINs and exportable PDF reports for follow-up appointments.
  • More exercises beyond Flappy Bird — piano trainer, rhythm games, object-squeeze simulations.
  • EMG integration for patients whose grip is too weak to register on FSRs — catching neural intent before mechanical force.
  • Partner with a rehab clinic for a pilot study comparing RehabFlow home use against in-clinic dynamometer measurements, so we can publish actual validation data rather than just vibes.
  • FDA Class I registration path for the diagnostic screening features.
Share this project:

Updates