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

Add Concept2 Rower support #79

Closed
MrCsabaToth opened this issue Feb 11, 2021 · 10 comments
Closed

Add Concept2 Rower support #79

MrCsabaToth opened this issue Feb 11, 2021 · 10 comments
Assignees
Labels
enhancement New feature or request help wanted Extra attention is needed

Comments

@MrCsabaToth
Copy link
Member

Specification available, proprietary protocol, a wide set of characteristics. https://www.concept2.co.uk/files/pdf/us/monitors/PM5_BluetoothSmartInterfaceDefinition.pdf
Concept2_PM5_BLE_def.pdf
Maybe the multiplexed one is the best, but for that it may be needed to set the update rate to 100ms from the default?

@MrCsabaToth MrCsabaToth added the enhancement New feature or request label Feb 11, 2021
@MrCsabaToth MrCsabaToth self-assigned this Feb 11, 2021
@MrCsabaToth
Copy link
Member Author

Some Concept2 has CSAFE port as I've heard, so if NPE would have a CSAFE adaptor which could support Rower machine (they have for Indoor Bike and for Treadmill) that could be a possible easier venue than Concept2's proprietary protocol with 8+ services

@MrCsabaToth MrCsabaToth removed their assignment Jul 5, 2021
@MrCsabaToth MrCsabaToth self-assigned this Oct 7, 2022
@MrCsabaToth
Copy link
Member Author

I'm planning to develop PM5 support, opened a concept2 feature branch.

@MrCsabaToth
Copy link
Member Author

Part of PM5 protocol is CSAFE, for example the control point is CSAFE.

@MrCsabaToth MrCsabaToth added upcoming Issues I soon will focus on priority Issues I'd want to prioritize labels Oct 7, 2022
MrCsabaToth added a commit that referenced this issue Oct 7, 2022
MrCsabaToth added a commit that referenced this issue Oct 7, 2022
…ingle getExtraSensor to plural getAdditionalSensors #79
@MrCsabaToth
Copy link
Member Author

For the Cloud Next Innovator's Hive in-person event I'll have a night at the "Comfort Inn Sunnyvale - Silicon Valley" and according to the amenities photos there's gonna be a Concept2 with a PM5, so I can test, debug and hone-in the code to claim support.

@MrCsabaToth MrCsabaToth removed upcoming Issues I soon will focus on priority Issues I'd want to prioritize labels Jan 7, 2023
@MrCsabaToth
Copy link
Member Author

The earlier mentioned Comfort Inn Sunnyvale - Silicon Valley gym didn't have a rower with a smart console, it only had a PM2 console. However yesterday at Rio and Naomi's birthday party I discovered that Naomi has a Concept2 rower with a PM5 console on site. It is the newer firmware, so actually it is FTMS Rower Data compatible too. I want to polish the support for the proprietary Concept2 protocol first. When I tried to connect to PM5 via the proprietary protocol, but the connection errored out. I'll attach logs. Once the Concept2 protocol works I'll make sure that if there's FTMS present (newer than firmware 600) then I'd leverage that instead of the proprietary.

@MrCsabaToth
Copy link
Member Author

nRF Connect log of the FTMS Rower data of PM5: Log 2023-04-01 18_47_53.txt
TMIW log when it was not able to connect: 0104202318.txt
(in that you can see the proprietary services 0x0010, 0x0020, and 0x0030 and all the characteristics in it plus even more than the 2018 specification)

@MrCsabaToth MrCsabaToth added the upcoming Issues I soon will focus on label Apr 11, 2023
@MrCsabaToth MrCsabaToth added the help wanted Extra attention is needed label Apr 19, 2023
@MrCsabaToth
Copy link
Member Author

I used my app's logging today when I was downtown for Jury Duty and visited the Galleria during lunch time: 1804202310.txt

MrCsabaToth added a commit that referenced this issue Jul 25, 2023
#79

(discovered while debugging Schwinn x70 support regression #433)
@MrCsabaToth
Copy link
Member Author

I had a session today (2023/08/18) at Raw Fresno working on the legacy protocol support. The endpoints were connected, needed to tune the HR (255 means invalid), correct the byte layout for the speed and pace. Now it's almost good. We may need to listen on the 0x0031 characteristic as well, because the console keeps holding the same speed after someone stops paddling: https://github.com/cagnulein/qdomyos-zwift/blob/87e5a1905d69bfeaeb668ca5541f03c8b5e0dc7b/src/concept2skierg.cpp#L162

@MrCsabaToth
Copy link
Member Author

The only issue remained is that somehow the app thinks the speed is too low so the limiter logic kicks in and nulls it out. Otherwise when I do something like 3:00 min/500 pace it display 48:00 min/500 or something in that range. I might be off by 10 scale? Not sure.

MrCsabaToth added a commit that referenced this issue Aug 20, 2023
… to km/h the divisor should be reciproc, so we need to divide by ms2kmh (or multiply the divider by kmh2ms) because it'll divided by that #79
MrCsabaToth added a commit that referenced this issue Aug 20, 2023
@MrCsabaToth MrCsabaToth removed the upcoming Issues I soon will focus on label Aug 21, 2023
@MrCsabaToth
Copy link
Member Author

I believe there was also an issue that Concept2 kept holding some pace even when I stopped rowing. Need to test that.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request help wanted Extra attention is needed
Projects
None yet
Development

No branches or pull requests

1 participant