← Projects

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