fix: sportsplusrower (CARE rower) watt and calorie fixes - #4824
Merged
Conversation
KCal = kcal assigned a local variable (reset to 0 each characteristicChanged call), causing calorie counter to stay at ~0 throughout the session. Changed to KCal += kcal so calories accumulate over time. Fixes calorie counter at 0 for CARE Jet 600 rower and all sportsplusrower devices. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
CARE Jet 600 rower (CARE10692135) reports only 8-17W via BLE (byte[10] BCD), which is unrealistically low. Replace with the Concept2 rowing power formula used in the rower base class: Watts = 2.8 * (500 / paceSeconds)^3. Speed is already derived from cadence SPM, pace is computed as 1800/speed_km_h. Also move cadence/speed update before watt calculation so watts use the fresh speed value from the current 0x10 subtype packet. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Two fixes for CARE Jet 600 rower (
CARE10692135) and other CARE rowers handled bysportsplusrower:1. Watt: use Concept2 rowing power formula instead of device byte
The device reports only 8–17 W via BLE (byte[10] BCD), unrealistically low. Replaced with the standard Concept2 formula already in the
rowerbase class:Speed is already calculated from cadence SPM (
0.37497622 * cadence).Pace derives from speed:
paceSeconds = 1800.0 / speed_km_h.At 18 SPM (~6.75 km/h): ~19 W → at 33 SPM (~12.4 km/h): ~114 W — realistic values.
The cadence/speed update is now moved before the watt calculation so each packet uses the freshest speed value.
2. Calorie counter always zero
KCal = kcalwas assigning a local variable (reset to0on eachcharacteristicChangedcall) rather than accumulating. Changed toKCal += kcal.Closes #4819
Test plan
CARE10692135)🤖 Generated with Claude Code