The Portfolio

One hub, a growing set of devices. Each device exists because it answers a data question the hub cannot answer without it — not because the hardware was interesting on its own.

At a glance

Five Projects, One Ecosystem

Live — iOS App Store

MyFitnessTech

The Hub — Every Stream in One Profile, With Coaching on Top

MyFitnessTech is the center of gravity for everything Fitness Tech builds: a cross-platform Flutter application that consolidates workouts, nutrition, sleep, hydration, heart rate, and general health metrics into a single profile with an interactive dashboard. Critically, it stands entirely on its own. A user with no Fitness Tech hardware can download it today and log everything manually — the devices simply make that logging automatic. That means the hub grows its user base independently of hardware manufacturing timelines, and every device we ship later arrives to an app that already has users.

What it Does

  • Unified dashboard across workouts, nutrition, sleep, hydration, and biometrics
  • Real-time exercise detection and automatic rep counting
  • Direct BLE connection to Fitness Tech hardware
  • AI coaching that adapts to your history, sport, and goals
  • Works fully standalone — no hardware required
  • Local persistence today, cloud sync in development

Technical Stack

Framework
Flutter (Dart) — iOS, Android, macOS
Architecture
Three layers: Models → Services → Screens
Device link
Custom BLE GATT service; CSV sensor streaming
State management
StreamController broadcast streams (no external state library)
Persistence
Local storage with JSON serialization; cloud sync in development
Exercise detection
Accelerometer state machine, per-exercise thresholds
Intelligence layer
Coaching assistant across all logged streams; ML classification in development
Design
Material Design 3, dark theme, green accent

What the intelligence layer is for

Centralizing data is only the first half. The reason it matters is that once every stream lives in one profile, questions become answerable that no single-purpose device can touch: why did output drop this week, what changed before the last three good sessions, is this athlete recovering or accumulating fatigue.

The coaching layer reasons across workouts, biometrics, hydration, sleep, and nutrition together, and adapts to the individual — their history, their sport, their stated goals, and what they've actually done rather than what the average user does. As the dataset grows, rule-based detection gives way to models trained on our own collected data.

Done So Far

What's Shipped

  • Published on the iOS App Store
  • Full health dashboard across every logged stream
  • Custom BLE service receiving sensor data
  • Rule-based rep counting from accelerometer data
In The Works

What We're Building

  • Android release moving out of testing
  • Cloud sync with multi-device history and trend analysis
  • BioBand and SipSync pairing flows moving from developer builds into the shipped app
On The Horizon

What Gets Added

  • ML exercise classification replacing or augmenting the rule-based detector
  • Coach view: roster-level aggregation of athlete profiles
  • Deeper personalization as the dataset grows

Try the hub

Download MyFitnessTech and log everything by hand today — our devices just make it automatic later.

Get it on the App Store
In Development

BioBand

Wearable Biometrics & Motion — Breadboard Working, Protoboard Build In Progress

BioBand is a wrist-worn wearable designed and engineered entirely by Fitness Tech members. It combines biometric sensing and motion tracking with exercise-detection software to provide real-time workout analysis and health monitoring — built from the ground up, from circuit design to embedded firmware to the app integration.

The gap it closes

Commercial fitness trackers are closed systems. Users cannot see how their data is processed, cannot customize what is tracked, and cannot contribute to improving the algorithms. For a research organization, that's disqualifying: you cannot answer a new question with a device that only answers the manufacturer's questions. BioBand gives users transparent, customizable tracking — and gives student engineers real experience across the full stack of a wearable: hardware, firmware, mobile, and ML.

Key Features

  • Real-time 6-axis motion tracking
  • Automatic rep counting for push-ups, squats, bicep curls, and more
  • BLE wireless streaming into the MyFitnessTech hub
  • Feeds the full health dashboard alongside nutrition, sleep, and hydration
  • Custom PCB for a compact, genuinely wearable form factor
  • Open firmware and app code for research and educational use

Hardware

Microcontroller
Seeed Xiao ESP32C3 (RISC-V, WiFi + BLE)
Motion sensor
MPU-6050 — 3-axis accelerometer + 3-axis gyroscope
Biometric sensors
Heart rate (PPG), blood oxygen (SpO₂), ECG — integration in progress
Communication
Bluetooth Low Energy via ESP32
Sensor config
8G accelerometer range, 500°/s gyro, 21 Hz filter
Data rate
50 ms intervals (20 Hz) streamed over BLE
I²C pins
SDA: GPIO7 (D5) · SCL: GPIO6 (D4)
PCB
Custom board designed in KiCad — layout stage
Power
Rechargeable LiPo battery, 8+ hour target

How it works

The device continuously reads accelerometer and gyroscope data from the MPU-6050 at 20 Hz. That raw six-axis motion data (ax, ay, az, gx, gy, gz) is formatted as CSV and transmitted over BLE to the companion app.

MyFitnessTech receives the stream through a custom BLE service, parses the sensor values, and feeds them into a real-time exercise detection engine. The current rep-counting algorithm uses a Z-axis state machine: it detects the transition from a "down" position to an "up" position and back, counting each full cycle as one repetition, with thresholds tuned per exercise. The architecture is deliberately built so trained classifiers can replace or augment that rule-based detection once we have enough labelled data.

Development Path

Every device we build moves through the same staged pipeline — here's where BioBand sits

1

Breadboard

ESP32 + MPU-6050, BLE streaming, basic app connection

Complete
2

Protoboard

Soldered wearable form factor, live app pairing, real-time rep counting

In Progress
3

Custom PCB

KiCad layout fabricated and assembled; heart rate sensor integrated

Next
4

Enclosure

3D-printed housing, strap design, ergonomics testing

Planned
5

Validation

Multiple units, athlete user testing, accuracy benchmarking, research data

Planned

Research Questions

BioBand exists to answer these

01

How accurately do student-built sensors capture biometrics against commercial and medical-grade references?

02

Can wrist-worn IMU data reliably classify exercise type and count reps across different users and different form quality?

03

What sampling rate and sensor configuration is the minimum viable one for trustworthy rep detection?

04

How much does wearability and comfort affect adherence over a multi-week training block?

Teams Involved

Hardware
Circuit design, sensor integration, PCB layout, soldering, 3D-printed enclosure. Lead: Jake Woodvine.
Software
Flutter app integration, BLE communication, data visualization, state management.
Research
Testing protocols, data analysis, accuracy benchmarking, documentation.
AI / ML
Exercise classification models, training data pipelines, deployment.

Want to contribute to BioBand?

Hardware, firmware, mobile, and ML contributors all have a place on this one.

Join the Team
In Development

SipSync

Automatic Hydration Tracking — Protoboard Validated, Custom PCB In Design

SipSync is a smart hydration tracking system: a sensor-equipped water bottle attachment that logs consumption automatically and personalizes daily intake targets based on activity, weather, and body metrics. No manual logging, no guessing. The hardware does the measuring; the algorithm does the thinking.

The gap it closes

Most people don't drink enough water, and those who try to track intake rely on manual logging apps that are tedious and quickly abandoned. Existing smart bottles are expensive, proprietary, and barely personalized — none factor in real-time activity data, environmental conditions, or integrate into a broader health picture.

SipSync makes the tracking automatic and the target adaptive. And because it lands in the same hub as BioBand, hydration recommendations can respond to actual exercise intensity — something no commercial product offers at this price point.

Key Features

  • Automatic intake tracking — no manual logging
  • Adaptive daily targets from activity, weather, and body metrics
  • Cross-device: BioBand workout intensity adjusts hydration recommendations
  • Smart reminders that learn from user habits
  • Trend visualization over weeks and months
  • Water temperature monitoring

Hardware

Microcontroller
Seeed Xiao ESP32C3 (RISC-V, WiFi + BLE)
Flow sensor
Flow rate measurement for automatic intake tracking
Weight sensor
HX711 load cell amplifier with custom strain gauge platform
Temperature sensor
Water temperature monitoring
Communication
Bluetooth Low Energy to MyFitnessTech
PCB
SipSync V1 in KiCad — in design. Custom footprints for HX711 and Xiao ESP32C3.
Enclosure
3D-printed bottle shell (inner + outer) modeled in Fusion 360, PLA
Power
Rechargeable LiPo battery

How it works

The hardware attaches to or integrates with a water bottle. A flow sensor and load cell (amplified by the HX711) measure consumption in real time. The ESP32 processes those readings and transmits them over BLE to the app.

The hydration algorithm then combines raw intake with body weight, current activity level (optionally pulled from BioBand), local weather, and time of day to compute a dynamic daily target. Rather than a static "drink eight glasses," SipSync adjusts through the day — recommending more after a hard session, in hot weather, or when the user is behind pace. Smart reminders fire based on habit patterns and remaining target rather than a fixed timer.

The Prototype, Working

The bench build as it stands today — and what it puts on screen

Inside the shell

The Xiao ESP32C3, the HX711 load cell amplifier and the LiPo sit on a soldered protoboard in the printed inner shell. The addressable LED strip wrapped around the outside is the status ring — this is the build that validated the bench.

Assembled

Lid on. The strain gauge platform sits directly under the printed top plate, so a bottle set on top rests on the load cell. Outer shell, inner shell and platform are all PLA off the Fusion 360 model — a two-shell build that keeps the electronics away from water.

Live in the app

Paired over BLE, the load cell's readings become sips and ounces — and roll straight into the day's hydration total. Nothing typed in.

One screen, not the whole app. That screenshot is the Devices tab in MyFitnessTech, where hardware pairs and reports in — it is not the full app. What it captures feeds the day's water total on the Home dashboard automatically, so hydration adds itself up across every sip without any manual logging.

Smart Hydration Factors

SipSync doesn't just count ounces — it considers the full picture to personalize your target

Activity Level

Pulls workout data from BioBand and MyFitnessTech to raise hydration goals on active days

Weather & Climate

Uses local weather to adjust for temperature and humidity, so you drink more when conditions demand it

Body Metrics

Accounts for body weight and personal profile to calculate a baseline daily target unique to you

🕐

Time-of-Day Pacing

Distributes intake goals across waking hours and nudges you if you fall behind schedule

Physical Design

A three-part assembly designed in Fusion 360 and 3D-printed in PLA

Outer shell
Main bottle housing holding the electronics and defining the external form factor.
Inner shell
Internal structure that positions the sensors and separates electronics from water contact.
Strain gauge platform
Custom mounting platform for the HX711 load cell, enabling accurate weight-based volume measurement.

The two-shell approach allows straightforward assembly, maintenance, and waterproofing of the electronics compartment.

Development Path

SipSync has cleared the bench — the custom board is the current front

1

Concept & Sensors

Flow sensor and load cell validation, enclosure concept

Complete
2

Breadboard

Full breadboard prototype with flow tracking and BLE communication

Complete
3

Protoboard

Soldered build validated on the bench

Complete
4

Custom PCB

KiCad schematic and layout with custom HX711 and ESP32C3 footprints

In Design
5

Enclosure & Integration

3D-printed shell assembly, hydration algorithm in-app, dashboard

Next
6

Testing

User testing, algorithm tuning, accuracy validation

Planned

Research Questions

SipSync exists to answer these

01

How does hydration measured automatically differ from self-reported intake — and by how much?

02

Does automatically measured hydration correlate with training performance and recovery markers?

03

Can a load cell and flow sensor combination achieve volume accuracy sufficient for research use in a consumer form factor?

04

Does adaptive targeting improve adherence compared with a fixed daily goal?

Teams Involved

Hardware
KiCad PCB design, sensor selection and integration, load cell calibration, 3D enclosure printing.
Software
Hydration module in the app, BLE communication, algorithm development.
Research
Hydration science literature review, algorithm validation, user study design.

Want to contribute to SipSync?

Hardware, software, and design contributors welcome — help us make hydration tracking effortless.

Join the Team
Discovery

Coach Dashboard

Roster-Level Visualization — Coach Interviews Underway

The Coach Dashboard is the answer to a question our other projects raise: once individual athletes have complete, centralized data, what does the person responsible for twenty of them need to see? It's deliberately the least defined project in the portfolio — and that's the point. We aren't designing it from assumptions about what coaches want. We're asking them first, and the requirements we gather determine both what the dashboard shows and which device we build next.

The gap it closes

Athlete monitoring systems exist at the professional level and cost accordingly. A UW club team, an intramural program, or a small gym has no realistic path to roster-level data visibility. Coaches at that level make load, rest, and progression decisions on observation and experience alone — not because they prefer it, but because the alternative is priced for a different tier of program.

Anticipated Direction

Subject to what discovery returns, the working concept is a roster view surfacing per-athlete workload, effort, hydration, and recovery trend — with attention directed at outliers rather than requiring a coach to read twenty profiles. The same synthesis layer that personalizes an individual athlete's coaching becomes, at roster scale, a way of answering "who needs attention this week and why."

Open Design Questions

  • What is the minimum data a coach needs before the view becomes useful rather than noise?
  • How do we handle athlete privacy and consent when a coach can see the roster?
  • Live during practice or reviewed afterward — which actually changes decisions?
  • How much athlete compliance can a system assume before it stops working?

Discovery Questions

What we're putting to coaches right now

01

What do you track by hand today, and what would you track if measuring it were free?

02

Which signals tell you an athlete is trending toward injury or burnout — and how early would you need to see them to act?

03

What does readiness mean in your sport, and what would you accept as a measurement of it?

04

How often do you want to look at data: live during practice, daily, or weekly in review?

05

What would make you trust a number enough to change a training plan because of it?

06

What would make you stop using a tool like this in week three?

What the Answers Determine

Metrics coaches name as valuable
The hardware roadmap. A device is only worth engineering if it closes a gap a coach has said matters.
Frequency & format preferences
Dashboard design: what is live, what is a daily digest, what is a weekly review artifact.
Trust & threshold criteria
Validation study design — what accuracy makes a measurement actionable rather than merely interesting.
Friction & failure modes
Requirements around setup time, charging, durability, and realistic athlete compliance.

Coach a team at UW?

We'd genuinely like to hear what you wish you could see about your athletes. A conversation shapes what we build next.

Talk to Us
Design Phase

Project Beacon

Live Showcase Display — Concept and Hardware Selection Underway

Project Beacon is a physical display that streams live data from our devices at demos, tabling events, and club fairs. Someone walks up, a member puts on a BioBand or takes a drink from a SipSync bottle, and the numbers move in front of them.

Why it exists

It solves a real recruiting and funding problem: our work is genuinely difficult to convey in a poster. Custom firmware, BLE protocols, and load cell calibration do not photograph well. A display that reacts in real time to someone standing in front of it does the explaining that a slide cannot.

Beacon also grows with the portfolio — every device we ship adds another live stream to it, so the display becomes a running demonstration of how much the ecosystem has expanded.

Scope

  • Receives live BLE streams from any Fitness Tech device in range
  • Visualizes motion, heart rate, and hydration readably from a few feet away
  • Self-contained and portable enough to carry to a tabling event and set up in minutes
  • Doubles as an internal debugging display during development

How It Grows

  • Display and mounting hardware come first
  • Live data feed from our devices gets wired in next
  • An interactive demo mode lets visitors explore on their own
  • Project story panels get added for each device we ship
  • Every future Fitness Tech device earns its spot on Beacon

Want to help build Beacon?

Design, fabrication, and software contributors welcome — help us show the world what Fitness Tech builds.

Join the Team
Every project answers a question about athletes:
what can we measure, and what decision does it change?