-
-
Notifications
You must be signed in to change notification settings - Fork 78
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
Bluetooth support #130
Bluetooth support #130
Conversation
Well Marco this looks like promising. What I see is that master devices are implemented (heartrate, cadense, power). I see that the implementation is thought of being an alternative to ANT+; this can only be true of FE-C is implemented. Is that difficult? There is quite some code in FortiusAntBody; perhaps it's good to centralize that in ble.py through a function; now we can. I need some guidance in using github correctly; how should I download your code and review/test it without overwriting the master. Should I create a branch? How do I link that to your code? confcall needed? Thanks for assisting anyway. Nice project! |
Hi Wouter, thanks! I'm happy you like it so far. I like your idea of introducing it officially in a 4.0 version of FortiusANT :) Indeed, heart rate power and cadence are integrated, as well as the FTMS characteristic which allows controlling FortiusANT. I had a quick look at FE-C and i think it should not be too hard to add. If i'm not mistaken it is ANT+ FE-C protocol messages over BLE interface right? What would exactly be the added benefit next to the FTMS service? I agree, FortiusAntBody is getting quite big. It would be good to split it into logical parts, i'd be happy to help with that. Let's setup another call, i think that would be the easiest, and i can explain a couple of things :) |
I do not know the difference; The purpose is that Zwift recognizes the device and can control it - without ANT+. We'll have a chat... |
…ence instead of revolutions/time
…st increase the offset.
…wind speed/grade/wind resistance and rolling resistance used in FortiusANT
…e power using grade
62a279c
to
d93df30
Compare
I removed all python related code as discussed by @WouterJD and me. The python integration will happen separately. This PR adds the foundation for BLE support in FortiusANT. This can be reviewed and merged if everything looks ok. |
…figuration descriptors, these are provided internally by bleno when required
…cteristic and move the logic to the onReadRequest handler
Marco, would you mind adding a VersionID (returned by read()) so that FortiusANT knows what version we're talking to? When people download through git, the set will be consistent. |
In addition to documentation: Under installation
The system is then prepared for FortiusANT to use it, no software is yet active. Step 2. Step 4. Note: It may be difficult to know which device is the onboard and which is the BLEdongle (on my system they have the same name). Since I do not use bluetooth, I disable the onboard bluetooth in device manager before inserting the BLEdongle. Step 5. This may be cryptic for windows users. Run PS: FortiusAntBody initiates the Open/Close, FortiusAntBody does not get a signal that the program is stopped. Therefore on Start/Stop. |
How about a I'll also try to update the documentation as you suggest. |
…oviding the set target power opcode
…en implementing the control point characteristic
Ready for another review |
Adding Bluetooth support to FortiusANT
This pull-request adds initial and experimental support for BLE (Bluetooth Low Energy) to FortiusANT, as requested in #103. Bluetooth can be enabled by starting FortiusANT on the command line with the
-b
option.The current implementation has been tested using the following setup:
FortiusANT currently implements the following BLE services to connect to Zwift:
Testing
Before merging, i would like to ask all interested users to give this version a try and provide some feedback on the experience to increase the quality of this delivery. BLE support has not been tested on Windows yet so i would be very interested in the results of that.
Installation
The BLE support has been implemented in a separate process running on NodeJS. In order to use BLE support, you must install NodeJS and install dependencies required for the BLE implementation. See doc/bluetooth.md.
Fixes #103