Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Amazing #2

Open
flatsiedatsie opened this issue Jan 3, 2019 · 4 comments
Open

Amazing #2

flatsiedatsie opened this issue Jan 3, 2019 · 4 comments

Comments

@flatsiedatsie
Copy link

I just wanted to say that this is incredibly cool.

@flatsiedatsie
Copy link
Author

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

@chadj
Copy link
Owner

chadj commented Jan 3, 2019

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
Copy link
Author

flatsiedatsie commented Jan 4, 2019

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

  • "Supported resistance level range" (a "read" value, but it should be useful as an indicator)
  • "Fitness machine control point"
  • others

Cycling Power service

  • "Cycling power control point"
  • others

Unknown service

  • Unknow characteristic (write). 347b0001..
  • Unknow characteristic (write). 347b0012..
  • Unknow characteristic (write). 347b0016..
  • Unknow characteristic (write). 347b0018..
  • others

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
Copy link
Owner

chadj commented Jan 4, 2019

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
2 participants