An affordable (free!) sound-based tensiometer for bicycle spokes
A project by Joe Leedy, Mark Belanger, and Peter Schnell
Check out this project and download the app on GitHub!!
(no MATLAB required)
For our Quantitative Engineering Analysis 3 course final project at Olin College of Engineering, we wanted to create a bike spoke tensiometer which finds the tension of a spoke based off of the sound of a spoke being plucked. The discrete Fourier transform (DFT) and signal processing techniques are the backbone of this project.
Bikes are a affordable, sustainable, fun, and efficient way to travel. Learning to maintain and repair your bicycle can be an incredibly rewarding process, but the tools can be very expensive. One in particular, a spoke tensiometer, which uses the deflection of a spoke to calculate its tension, can cost anywhere from 100 to 500 USD, potentially putting it out of reach for the home mechanic. Spoke tensiometers are very valuable tools for giving one insight into the condition of their wheels. When building a wheel from scratch, they can give you the confidence that your wheels will last and keep their true longer. Our project aims to make tensiometers more accessible to DIYers and low-budget community bike operations. We were particularly inspired by the Olin College Go-Bike program, a fleet of twelve community bikes maintained for and by students with a limited operating budget.
When a bike spoke is plucked it makes a sound, vibrating at it's resonant frequency. Because there is a relationship between resonant frequency and a spokes tension, we can use a recording of the pluck, along with measurements of its length and gauge, to calculate the spokes tension. We started by taking data from only the rear wheel of a Go-Bike in order to simplify the process and see if the idea was sound before expanding it out. You can read more about our data collection and processing methods here.
After developing our app, we took some sound recordings of plucking the spoke on a Go-Bike wheel, and calculated the spoke tensions using our code. Then we took that wheel to a bike shop and got the tension of the spokes tested. The result using the actual tensiometer was quite close to our calculated tension value. It works! More information about our app and data validation procedure can be found in the 'Validation' section. Following that confirmation, we were able to build on what we had made in order to make a robust, user-friendly app interface with MATLAB that can calculate the tension of almost any wheel.
The next steps for this project would be to test it with more wheels of known tensions in order to fine tune the filtering and provide more replicable results. It would also be a boon to end-users to have the app be web-based so that it could be implemented on a smartphone. We have detailed our goals for future iterations on this project as well as current limitations on the 'Going Further' page.
Mechanical Engineering
Class of 2026
Electrical and Computer Engineering
Class of 2026
Engineering w/ Sustainability
Class of 2026