Close
0%
0%

Adding BLE to a "dumb" treadmill

I have a Gold Gym 410 which is perfect for my purposes. But I always had an itch about tapping into speed and inclination data.

Public Chat
Similar projects worth following
I have a treadmill.
I have "arduino" skills due to Covida.
I wanted to create a simple but meaningful project to present to my coworkers in order to ignite the curiosity in some of them. I decided to augment my treadmill capabilities with BLE in order to broadcast speed and inclination.

I have a treadmill.
I have "arduino" skills due to Covida.
I wanted to create a simple but meaningful project to present to my coworkers in order to ignite the curiosity in some of them. I decided to augment my treadmill capabilities with BLE in order to broadcast speed and inclination. I was prepared to reverse engineer complex communications between the motor and the control panel, but after looking at the schematics of my model, I realized that it came with an RPM sensor which would have been a great start. After a bit of Google-fu, I realized that this type of sensor - although in different shapes and forms - is very common in a lot of basic treadmills and it's a simple Reed switch coupled to some magnets on the pulley driving the belt, so things started to look great.
I was thinking that with an opto-isolator circuit I would be able to tap into this ready available datasource but to my surprise I discovered that, while the pulleys have embedded magnets, there is no RPM sensor / Reed switch installed at all. That means I can buy one on eBay and build a circuit around it.

I chose to use the nRF52 MCU in the shape of the Seeeduino BLE in order to do the heavy lifting. The switch/sensor is arriving in the mail. Next steps:

1. test the sensor with a simple CR2032 LED bread board circuit and figure out a 3D attachment harness

2. 3D print the harness

3. write BLE code. The new "sensor" will be a BLE peripheral with two subscribe-able attributes, speed (from the switch) and inclination (from a Time of Flight sensor that I still need to pick)

4. present to my coworkers as part of what I learned during Covida

5. profit

I will post progress in here.

  • RPM math

    Enzo Lombardi6 days ago 0 comments

    Quick math to determine the RPM range.

    The pulley driving the belt has a diameter of 44mm.

    That puts the number of RPMs at 10mph to a bit shy of 2000.
    Which means that four digits are enough to accomodate the RPMs at unit precision.

    2000 RPMs is also 33.3 RPSs. Which gives a period of 30 milliseconds at maximum speed.

  • First cut at RPM calculation algorithm

    Enzo Lombardi6 days ago 0 comments

    So the Reed Switch worked as expected, no brainer of course.

    I put together some code to compute the RPMs and display them on the Seeeduino Extender OLED display. If I display the result in RPMs, the output seems to be reasonably right, but if I divide further the fluctuation is bigger. Time to debug.

    Current code is here, I am suspecting something is wrong with the 5ms forced delay in the IRQ.

View all 2 project logs

Enjoy this project?

Share

Discussions

Similar Projects

Does this project spark your interest?

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