← Back to projects
Personal project
In progress

Progressive Overload Device

A wireless training telemetry device designed to measure barbell motion, estimate force and power output, and make progressive overload more data-driven.

ESP32-C3 MPU6050 Bluetooth IMU Fitness Tech
Why?

Tracking gym progress through reps and weight alone can miss how the body is actually producing force. Two sets can look the same on paper, but the bar speed, control, fatigue, and power output can be very different.

This project aims to replace subjective training “feel” with measurable movement data. By measuring acceleration and angular velocity during a lift, the system can give a better picture of how force is being produced across each rep.

The goal is not to replace normal training logs, but to add another layer of data. Weight and reps show what was lifted. Motion data helps show how it was lifted.

What?

I am developing a wireless telemetry system using an ESP32-C3 and an MPU6050 6-axis IMU connected over I2C. The device is intended to mount to a barbell or training attachment and capture motion data during lifts.

The ESP32-C3 reads acceleration and angular velocity data from the IMU, then sends the data over Bluetooth to a mobile application for processing. The app will use the motion data to estimate displacement, velocity, force, and power output.

The long-term goal is to integrate this data into an open-source training app workflow, so performance metrics can be reviewed alongside normal strength training records.

Science

Progressive overload usually means increasing weight, reps, sets, or training volume over time. But this does not always capture movement quality. If the same weight moves slower than last week, or the lifter loses control near the end of a set, that can show fatigue even if the total reps are the same.

By measuring acceleration, the system can estimate how the bar is moving through each rep. From acceleration, velocity and displacement can be estimated through integration. These values can then be used to estimate force and power.

F = ma

P = Fv

Force describes how much the lifter is accelerating the load. Power combines force and velocity, which makes it useful for understanding explosive performance. A rep with the same weight but higher velocity produces more power.

This is useful because strength training is not only about the load on the bar. Bar speed, acceleration, and power output can show whether the lifter is moving efficiently, slowing down from fatigue, or improving their ability to produce force quickly.

Hardware

The current hardware plan uses an ESP32-C3 as the main microcontroller because it supports Bluetooth and is small enough for a wearable or bar-mounted device.

The MPU6050 provides 3-axis acceleration and 3-axis gyroscope data. The accelerometer measures linear acceleration, while the gyroscope measures angular velocity. Together, they give enough information to analyse movement during a lift.

The ESP32-C3 communicates with the MPU6050 using I2C, then transmits the sampled data wirelessly to a mobile device for processing and display.

Data processing

The main challenge is turning noisy IMU readings into useful training metrics. Raw acceleration data contains noise, drift, and gravity effects, so the signal needs to be filtered before it can be used reliably.

The app will process the data to estimate rep timing, bar path, velocity, and displacement. From there, estimated force and power can be calculated using the known load mass and measured acceleration.

This part of the project is still in development. A major focus will be reducing drift during integration, filtering noisy motion data, and checking whether the estimated values are consistent enough to be useful.

Current status

This project is currently in progress. The main concept, hardware platform, and sensing approach have been chosen. The next stage is building the first prototype, collecting test data, and validating whether the IMU readings can produce useful rep-by-rep metrics.

The first tests will focus on simple movements before moving to real lifts. This should make it easier to debug the sensor readings, Bluetooth transmission, and data processing pipeline.

Next steps

The next steps are to finalise the wiring, build a small enclosure, stream IMU data over Bluetooth, and create a basic mobile app interface for viewing rep data.

After that, I want to test the device against controlled movements and compare the calculated displacement, velocity, and power values against expected results.