chadj / gpedal

Virtually ride indoors with Google Street View and bluetooth bike power meters (Web Bluetooth API)
https://chadj.github.io/gpedal/
MIT License
119 stars 33 forks source link

Amazing #2

Open flatsiedatsie opened 5 years ago

flatsiedatsie commented 5 years ago

I just wanted to say that this is incredibly cool.

flatsiedatsie commented 5 years ago

Does this also send data back to the trainer? So that it becomes heavier to bike if you ride up a mountain?

chadj commented 5 years ago

Hey, thanks for the feedback. Unfortunately, no, it can't control the resistance on the trainer yet. When I last look into this there was no BLE standard for controlling resistance. All the various vendors came up with their own protocol of sorts for controlling resistance. And that was a deal breaker for me.

flatsiedatsie commented 5 years ago

Ah, sorry to hear it. I was looking for it too, hoping to add it if it wasn't integrated yet, and was hoping it was the "fitness machine control" service or something like: https://www.bluetooth.com/specifications/gatt/viewer?attributeXmlFile=org.bluetooth.characteristic.fitness_machine_control_point.xml

In your research, did you find any relevant sources that describe the protocols the vendors came up with?

// update

I just used the Nordic nRF Connect app (Android) to scan all the services the device offers. As there is a custom service amongst them, I suspect you could be right.

Fitness Machine service

Cycling Power service

Unknown service

Tacx says this on their website:

After creating the ANT+ FE-C open protocol, we started creating an open protocol for Bluetooth. Smartphones and tablets can often only receive the Bluetooth signal, not the ANT+ signal. By sending the same language as the ANT+ FE-C protocol via Bluetooth, Smart trainers can also communicate with third party apps on devices that only have a Bluetooth receiver. This protocol has been created by Tacx and is available to software manufacturers, so that everybody can link a Tacx Smart trainer to the software of their choice.

..which would indicate a tactic to somehow use the ANT+ protocol and overlay it onto Bluetooth. Perhaps other trainers have used a similar strategy (would make sense, saves programming two types of control logic).

chadj commented 5 years ago

Yes, I only did some cursory research into this but I do also recall reading exactly that (some vendors are layering ant+ fe-c on top of BLE).

I also do recall there was an actual BLE standard being developed for this so I bet you're right "Fitness Machine Control Point" is probably it. We need all the vendors to get onboard with that!

But, if you do figure out how to talk to your trainer and control resistance I'd happily merge any pull requests.