Inspiration

My Nana had Parkinson's. Like most people with it, he took levodopa several times a day, and like most people on it, his good hours and bad hours didn't follow the clock. Some afternoons he moved well. Other times, an hour or two before his next dose, he'd slow down and struggle with things that were easy that morning.

The hard part was getting any of that in front of his doctor. Visits were months apart and short. When the neurologist asked how things had been going, the answer depended on what he and our family could remember, and "some days are worse" is not much to adjust a medication schedule on. This made him more hesitant to go to doctor's visits, because he would say, "Why does it even matter?"

This isn't just our family's problem. In a study comparing a patient questionnaire against routine clinic assessments, the questionnaire picked up wearing-off in more patients than clinicians did during the visit itself [7].

I wanted to show him that it did matter. Parkinson's changes hour by hour, but neurologists see it a few times a year. We wanted to build something that shows them the hours they're missing, and that integrates all the cool technologies we had access to.

What it does

TapTrack PD is a wrist-worn Parkinson's tracker built on a FREE-WILi strapped to a watch band.

  1. Log the dose. The patient presses red when they take their medication, so every later reading knows how long it's been.
  2. Do a one-minute check. A few times a day, the wrist talks the patient through four tests adapted from how Parkinson's is assessed clinically:
    • Hand flipping (accelerometer): speed, size, and how much the movement shrinks over 10 seconds
    • Holding still (accelerometer): tremor strength and its dominant frequency
    • Alternating taps (buttons): tap rate and rhythm regularity
    • A steady "ahhh" (microphone): voice loudness and stability
  3. Get a result. The score is spoken aloud and the screen shows Good, Lower than usual, or Much lower, always compared to the patient's own baseline.
  4. See the pattern. Two weeks of checks become a dose-response curve on the clinician dashboard: when each dose kicks in, when it fades, and how that changes over time.

A care agent acts on the data: it texts the caregiver over iMessage when a check comes back much lower than usual, reminds the patient about missed checks, and when a wearing-off pattern appears, sends the neurologist a visit report and requests a follow-up. Caregivers can text back "how is she today?" and get an answer from the data.

TapTrack PD is decision support for clinicians, not a diagnostic device, and it never gives dose advice.

How we built it

The wearable. The FREE-WILi's accelerometer, microphone, five buttons, 320×240 screen, LEDs, and speaker are driven from Python over USB. We designed 15 full-screen wrist interfaces as images (SVG frames we could edit in Figma), used the seven LEDs as a countdown and progress bar, and played ElevenLabs voice instructions from the wrist itself.

The math. Each test produces metrics computed with numpy and scipy, chosen from how Parkinson's motor symptoms are measured in the literature.

Tremor. Tremor frequency comes from the peak of the power spectrum in the band where tremor lives. Parkinsonian rest tremor typically falls around 4 to 6 Hz [2]:

$$f_{\text{tremor}} = \arg\max_{3\,\text{Hz} \le f \le 12\,\text{Hz}} \; |X(f)|^2$$

Decrement. A hallmark of Parkinson's bradykinesia is the "sequence effect," where repeated movements get progressively slower and smaller [3]. For hand flips and taps, we compare the first and last thirds of each test:

$$D = 1 - \frac{\bar{x}{\text{last third}}}{\bar{x}{\text{first third}}}$$

Tap rhythm. Irregular timing is a measurable feature of Parkinsonian tapping [4, 5]. We use the coefficient of variation of inter-tap intervals:

$$\mathrm{CV} = \frac{\sigma_{\text{ITI}}}{\mu_{\text{ITI}}}$$

Voice. Softer, less steady speech is common in Parkinson's and has been studied for remote monitoring [6]. We measure loudness as

$$L = 20 \log_{10}!\left(\frac{\text{RMS}}{32768}\right) \;\text{dBFS}$$

and stability as the variation in loudness across 100 ms windows.

Scoring (our design). The composite score is our own approach, not a validated clinical scale. Each metric is compared to the patient's own baseline and mapped to 0 to 100, where baseline is 85 and each standard deviation moves the score by 15:

$$s_i = \operatorname{clip}!\left(85 + 15 \cdot \frac{x_i - \mu_i}{\sigma_i},\; 0,\; 100\right)$$

(with the sign flipped for metrics where lower is better, like tremor). The four tests combine into one composite:

$$S = 0.3\,s_{\text{flips}} + 0.3\,s_{\text{taps}} + 0.2\,s_{\text{tremor}} + 0.2\,s_{\text{voice}}$$

Validating these weights against clinician ratings is the first item on our roadmap.

The platform.

  • TimescaleDB on Neon Postgres: hypertables for checks, doses, and passive tremor
  • FastAPI + websockets: clinician and caregiver dashboards that update about a second after a check finishes
  • FinchNode: patient record and medications, with each check formatted as a FHIR Observation for write-back
  • Gemini: a one-page neurologist report and a plain-language patient summary, with a guard that strips anything resembling medication advice
  • Fetch.ai: a care agent and a clinic scheduling agent on Agentverse, reachable through ASI:One
  • Photon Spectrum: two-way iMessage alerts and caregiver conversations
  • taptrack.tech: our project page

Grounded in research

Each wrist test is adapted from how Parkinson's is assessed clinically and in published digital-monitoring studies:

Wrist test Based on
Hand flipping MDS-UPDRS Part III item 3.6, pronation-supination movements of the hands [1]; sequence effect [3]
Holding still MDS-UPDRS rest tremor items [1]; Movement Disorder Society tremor consensus [2]
Alternating taps Quantitative alternating tapping studies in Parkinson's [4, 5]
Sustained "ahhh" MDS-UPDRS speech item [1]; voice measures for Parkinson's telemonitoring [6]
Tracking time since dose Research showing wearing-off is under-recognized at routine clinic visits [7]

These are adaptations for a wrist device, not the clinical exam itself. TapTrack PD has not been clinically validated.

Challenges we ran into

  • The accelerometer goes quiet when still. It streams at roughly 80 Hz or more on a moving wrist but drops to about one sample per second lying on a table. We had to detect "not worn," handle uneven sampling, and resample to a uniform grid before any frequency analysis.
  • USB delivers events in bursts. Using laptop arrival times made tap rhythms look erratic, so we switched to the device's own timestamps.
  • Firmware surprises. The tone command didn't work on our firmware, so we uploaded our own audio. Text with line breaks got interpreted as menu commands, which is what pushed us to design every screen as a full image.
  • Keeping AI in its lane. A report generator that sounds confident is dangerous in medicine. We built a guard that removes any sentence reading like dose advice, and in testing it caught one.

Accomplishments that we're proud of

  • Real checks run end to end on the wrist, and results land on the dashboard in about a second.
  • The tremor test picked up a 5.5 Hz shake when we tremored on purpose, right in the typical range of Parkinson's rest tremor.
  • The full loop works: a low score triggers the agent, which generates a report, books a follow-up with the clinic agent, and texts the caregiver, who can text back and get an answer.

What we learned

The same score means something completely different one hour versus four hours after a dose. Timing is the missing context in Parkinson's care, and it's cheap to capture if the device makes it effortless. We also learned to design for the person actually wearing it: big words instead of tiny text, physical buttons instead of glass that a tremor can trigger, and a voice that walks you through each step.

What's next for TapTrack PD

  • Validate the scores and weights against clinician-rated exams with real patients
  • Wireless sync, with a wear-all-day, dock-at-night design like a Holter monitor
  • Gait and freezing detection
  • A real write path into health records, and a cloud-hosted backend

Notes

All patient data shown is synthetic, and the 14-day pattern comes from a simulated patient. A real deployment would calibrate each patient's baseline from their own data. Sign-in is demo-grade.

References

  1. Goetz CG, et al. Movement Disorder Society-sponsored revision of the Unified Parkinson's Disease Rating Scale (MDS-UPDRS): Scale presentation and clinimetric testing results. Movement Disorders. 2008;23(15):2129–2170.
  2. Deuschl G, Bain P, Brin M. Consensus statement of the Movement Disorder Society on Tremor. Movement Disorders. 1998;13(Suppl 3):2–23.
  3. Kang SY, Wasaka T, Shamim EA, et al. Characteristics of the sequence effect in Parkinson's disease. Movement Disorders. 2010;25(13):2148–2155.
  4. Memedi M, Khan T, Grenholm P, Nyholm D, Westin J. Automatic and objective assessment of alternating tapping performance in Parkinson's disease. Sensors. 2013;13(12):16965–16984.
  5. Bronte-Stewart HM, et al. Quantitative digitography (QDG): A sensitive measure of digital motor control in idiopathic Parkinson's disease. Movement Disorders. 2000;15(1):36–47.
  6. Little MA, McSharry PE, Hunter EJ, Spielman J, Ramig LO. Suitability of dysphonia measurements for telemonitoring of Parkinson's disease. IEEE Transactions on Biomedical Engineering. 2009;56(4):1015–1022.
  7. Stacy M, Bowron A, Guttman M, et al. Identification of motor and nonmotor wearing-off in Parkinson's disease: Comparison of a patient questionnaire versus a clinician assessment. Movement Disorders. 2005;20(6):726–733.

Built With

Share this project:

Updates

Submission history