Barbell Velocity Tracker
Instrumenting a piece of gym equipment end to end — a rotary encoder on the bar, filtered velocity computed in real time, and a readout that never leaves the device.
Hardware
Arduino Uno, 600 P/R Rotary Encoder, C++
Frontend
React 19, Vite 7, Tailwind 4
Backend
FastAPI, Python, pyserial
Mechanical
OpenSCAD, 3D Printing
The Build
- Real-time C++ acquisition reads a 600 pulse-per-revolution rotary encoder and computes bar velocity, with digital filtering to pull the signal out of the noise a moving barbell generates
- Packaged the sensor in 3D-printed housings modeled parametrically in OpenSCAD, so the mount adapts to different bars without a redesign
- A local web app reads the serial stream through a FastAPI backend and shows velocity live — no accounts, no cloud, and all data stays on the machine it was measured on