FTMS or BLE GATT for treadmill incline control?

(Patrick Hannigan) #1

Hi Zwift team!

I’ve built an iOS app that connects to wifi-enabled Icon Health & Fitness treadmills and allows for broadcast and control of speed, HRM, incline, etc. (Icon manufactures treadmills under many brands such as NordicTrack, Gold’s Gym, Epic, Proform, Weslo, Weider, FreeMotion, etc)

So far, I’ve been able to get speed and HRM appearing in Zwift OK, and now I’m trying to figure out how to implement incline control. How does Zwift send “control” commands to paired trainers and treadmills? Is it over FTMS or a specific BLE GATT characteristic?

If anyone on the Zwift team is able to point me in the right direction that would be great! What other things should I be considering broadcasting/controlling via Zwift?

The app works great so far for my Nordictrack treadmill - no additional hardware (ie GEM module) or foot pod required to pair with Zwift. I’m sure there’s loads of others with Icon-made treadmills who’d love running on Zwift too.