Bicycle Shifting Indicator

July 24, 2020 - For the last 2 weeks, I have been lucky to be a part of Tufts' Virtual Engineering Design Lab, an engineering course through Zoom, with a large focus on coding.  I learned so much from guest visitors, TAs, and learned more coding than I ever would have thought.  Towards the end of those 2 weeks, we were tasked with creating something original with all the things we learned - all within 2 days.  So, I decided to combine my newly acquired coding skills with my previous knowledge of bicycles, CAD, and 3D printing to make a Bicycle Shifting Indicator.

My idea was to attach a cam to my chainring that would hit a button multiple times.  With a reading from the button, the robot would indicate whether the cyclist should upshift, downshift, or stay in gear.

With this basic idea in mind, I took measurements and started designing.  For the cam, I decided to add multiple "bumps" so that the robot could get more exact readings.  The most challenging part was making sure the button was in the right place, or else the robot would receive incomplete readings.  I ended up having 3 different pieces that slide on one another, that give me 2 axes of adjustment.  Once in place, they would be hot-glued.  Everything was glued or screwed to 1/4 plywood mounted to where the bottle cage should be.  These mechanical bits worked great, and never skipped a beat... literally.  I also filled a clear tube with hot glue to scatter the LED light (it looks really cool in the dark - see video below).

The coding basically ran like this:  The robot would read how many times the button was pressed in 2 second intervals. That number would go through a set of "if" statements, that would decide whether the user should upshift, downshift, or stay in gear.  An upshift would shine the LED green, a downshift would shine red, and staying in gear would shine yellow.  This mimics real race-cars!

As my first coding project, I was thrilled on how this turned out.  I would love to see this become a product available for all bicycles.  In the future, I would like to make the bicycle shift all by itself using a running average.

If I inspired you to make your own, check out the files below!

© 2020 by Mattia Tancredi Butera.


  • Instagram
  • Pinshape