Running a neural network on a hobby board no longer means shipping frames to a server and waiting for an answer. Boards such as the Arduino VENTUNO Q ship with a dedicated neural processing unit, so a camera feed gets crunched on the same desk where it was captured. Raul Muñoz's treadmill project is a tidy demonstration of what that buys a maker who cannot touch the hardware they are hacking.
His treadmill was rented, so magnets on the belt, hall sensors, and taps into the control board were all off the table. Instead he pointed a USB webcam at the machine from the side and let the board work out how fast the belt was moving. The estimated pace is then broadcast over Bluetooth Low Energy using the standard Fitness Machine Service profile, which means Zwift, Kinomap, and any other fitness app read it as an ordinary smart treadmill.
How it clocks your pace
The camera captures rolling one-second clips. Each clip goes through a convolutional network based on mc3_18, pretrained on the Kinetics-400 video dataset and retooled from a classifier into a regression model that outputs speed in km/h. The tricky part was ground truth: with no speed output from the treadmill, Muñoz built a labelling tool and walked ten recording sessions, tagging each clip with the number on the console display.
Inference runs through ONNX Runtime on the CPU by default, and there is an optional path onto the VENTUNO Q's Qualcomm Hexagon HTP NPU via the Qualcomm AI Runtime. That swap dropped median latency from 624 ms to 26.6 ms with near-identical speed estimates. Nothing leaves the board except a speed value, which was the point for Muñoz. He did not want a camera in his house streaming to anyone.
What to try next
- Retrain on your own machine. The full training pipeline and pretrained ONNX model are published, so a different camera angle or a dimly lit garage is a dataset problem, not a code problem.
- Reuse the BLE half on its own. The FTMS implementation is a good reference for any cadence or speed project, including a reed-switch bike sensor on a plain GPIO pin.
- Watch the lighting gotcha. A model trained under daylight will drift badly at night, so record sessions in the conditions you actually train in.
Full write-up, code, and dataset tooling are on the original build page: Hack Your Treadmill with AI and an Arduino on Hackster.io.
Originally published on blog.circuit.rocks.
Top comments (0)