A pair of apps: one for a Fitbit smart watch, and one for an Android phone, that create a mock Bluetooth heart rate monitor.
This lets you share real time heart rate data from the Fitbit watch with exercise equipment like Peloton, Strava, Zwift, or Wahoo.
@cwcpers has gotten the watch app working on OS 4 devices too! (Versa 2, Versa Lite, Versa, Ionic)
Currently, the Fitbit smart watches measure heart rate, but do not advertise as generic heart rate monitors and can only maintain one Bluetooth Low Energy connection with the Fibit phone app. As a work around, we'll send heart rate data from the watch to the phone. Then, we'll run an Android app that appears as a Bluetooth Low Energy peripheral and advertises as a generic heart rate monitor. Finally, we'll push heart rate data from the Fitbit Android app to our HR Monitor Android app.
Much thanks to the original author, @mogenson.
- A Fitbit Sense or Versa 3 smart watch and an Android phone running Android greater or equal to 9.0.
- Install the "HR Service" Fitbit watch app from the Fitbit Gallery.
OR
Build and run the code using the Fitbit CLI, start the developer bridge on your watch, and transfer the app. - Install Virtual Heart Rate Monitor from Google Play.
- If you plan on running a fitness app on a mobile device, e.g. Strava, you'll need a second device on which to run it, since the device with the Fitbit app on it will also be running the HR Monitor app and playing the role of the heart rate monitor.
- Start the "HR Service" app on the Fitbit watch.
- Start the "Virtual Heart Rate Monitor" app on the Android device.
- You should see the BPM value update with each new received value.
- On your exercise equipment (or app on your second mobile device), search for a Bluetooth heart rate monitor.
- The mock heart rate monitor will have the same name as the Android device.
No implied warranty or guarantee of functionality. The names Fitbit, Android, and Bluetooth are trademarks of their respective owners.