Close
0%
0%

Make a smart treadmill for Zwift running with $5

I am an avid cyclist and runner on the zwift platform however with my unreliable footpod it is time i made my treadmill smarter than my foot

Public Chat
Similar projects worth following
This project had three objectives:
1. determine the speed of my treadmill
2. Mimic a footpod and send my speed to zwift using BLE
3. Run on zwift with accurate speeds

UPDATE:
In line with recommendations in comments i purchased a reed switch ( $3 AUD) from ebay and replaced the LM393 sensor with it up against existing treadmill magnet. other than some denouncing required it worked a treat.

PREVIOUS:
In this project a used an LM393 speed sensor and an ESP32 to determine speed and send results to zwift using BLE and the Zwift app.

Using basic BLE GATT i fumbled my way through the running speed and cadence service and measurement characteristic to send the speed to ZWIFT.

All worked a treat but the speed sensor Measurement (ie the car clamped to the treadmill) was unsustainable.
I have also looked at using the LM393 to measure the rotation of the treadmill motor using a lip of ducktape. Also ungraceful.

Enjoy this project?

Share

Discussions

Michael Smith wrote 04/12/2020 at 12:15 point

Would you be keen on sharing your code for the BLE interface to Zwift? I'm trying to make a speedometer with arduino to monitor my indoor bike trainer.

  Are you sure? yes | no

Michael wrote 04/20/2020 at 23:54 point

Sure, https://github.com/imwitti/FootpodMimic/blob/master/ManualFootpodMimic

Is a link to a manual version (ie i set my speed with buttons not sensor). However the sending and setup of BLE should be the same. FYI i changed the bytearray code for this running sensor from a cycling speed cadence example so there are likely already examples set up for Cycling Speed Cadence sensors

  Are you sure? yes | no

Kevin wrote 02/03/2020 at 18:44 point

I second the idea of a magnet and reed switch.  My very old salvaged treadmill uses this setup to measure speed.  The magnet is in the flywheel connected to the tread rollers.  Alternately you could use some sort of led and photoresistor with your duct tape flag to get rpm.  

I'm interested in how you figured out the zwift protocol because I'd like to make my own zwift sensor to connect my bike rollers to the zwift bike app.

  Are you sure? yes | no

Michael wrote 04/20/2020 at 22:44 point

Hi Kevin, 

I found that the Zwift protocol just search's for the BLE outputs using existign GATT profiles. Therefore if you create a BLE profile/service for either the 

CSCP - Cycling Speed and Cadence OR RSCP Running Speed and Cadence then zwift will recognize it. I use an iphone and the zwift companion app to receive it.

  Are you sure? yes | no

Pabluski wrote 09/10/2019 at 17:09 point

Seems that the treadmill probably has some kind of speed sensor already ... can you tap into it?

What about hiding the wheel inside the front cover?

What about painting lines on the floor and using a ir ?

What about magnets glued to the tread and a reed switch?

  Are you sure? yes | no

Dan Maloney wrote 09/10/2019 at 16:02 point

Interesting. But aren't you worried about drifting over to the side of the belt and stepping on it? When I ran on the treadmill I found myself wandering all over the place - sometimes even off the back, of course.

  Are you sure? yes | no

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates