I want to run on my smart treadmill and get EXACT speed and grade information via BLE. Previously, I created an Arduino ESP-32 solution running as a BLE server that runs on the treadmill. This server works well with Zwift etc, so I know it works. Now the plan is to create a CLIENT on my fenix-5. Eventually, I want to save and thereafter load my treadmill runs into Strava. In the far away future, I would like to control my treadmill from the fenix-5 (using watch buttons to speed-up, tilt up etc) . In the far,far,far away future, I would like to automatically adjust treadmill speed and grade based on complicated pre-planned-workouts (intervals, hill repeat etc).
REFERENCE INFO
Plan to read data from:
- Fitness Machine Service UUID: 0x1826
- Fitness Machine Feature Characteristic 0x2acc
- Treadmill Data Characteristic 0x2acd
- 2902 Enable Notify Descriptor 0x2902
- This is required so client gets more than one data point.
- 2902 Enable Notify Descriptor 0x2902
- Supported Speed Range Characteristic 0x2ad4
- Supported Incline Range Characteristic 0x2ad5
- Keep Alive UUID
Long Form "standard" UUIDs take the form of
xxxxxxxx-0000-1000-8000-00805F9B34FB
where xxxxxxxx is the zero-padded short-form uuid (see above)
E.G. Fitness Machine Service long UUID would be 00001826-0000-1000-8000-00805F9B34FB
Oh yea! It was awesome. Thanks for the advice!! Now, configuring the dongle on the MAC was a little more different than selecting COM1, COM2 etc like on a PC... But once it was configured, it worked very, very well. I had my ESP32 attached via a second serial-USB cable so I could debug BLE read/write/notify events in real-time using the same system. This improved cycle-time by several orders of magnitude. I could thereby improve what, would have been a proof-of-concept app, and make it user friendly(ish). If anybody has a commercial treadmill that can accept GATT BLE control point characteristic read-write-events (E.G. Control the thing remotely), let me know. I would love to see if this app works on something besides mine. The picture is the watch configured in FARTLEK mode. This allows a rapid speed/Incline switch by pressing the back button. It's good for Tabata intervals when you don't wanna get carpal tunnel from pressing the treadmill buttons.