Skip to content

Add Waterrower USB connection Support (Issue #3059) - #3068

Merged
cagnulein merged 34 commits into
masterfrom
Add-Waterrower-USB-connection-Support-(Issue-#3059)
Jul 20, 2026
Merged

Add Waterrower USB connection Support (Issue #3059)#3068
cagnulein merged 34 commits into
masterfrom
Add-Waterrower-USB-connection-Support-(Issue-#3059)

Conversation

@cagnulein

Copy link
Copy Markdown
Owner

Add Waterrower USB connection Support (Issue #3059)

@cagnulein cagnulein added this to the 2.18 milestone Jan 20, 2025
@cagnulein cagnulein linked an issue Jan 20, 2025 that may be closed by this pull request
@stale

stale Bot commented Feb 7, 2025

Copy link
Copy Markdown

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

@stale stale Bot added the wontfix This will not be worked on label Feb 7, 2025
@stale stale Bot closed this Feb 14, 2025
@cagnulein cagnulein reopened this Feb 14, 2025
@stale stale Bot removed the wontfix This will not be worked on label Feb 14, 2025
@stale

stale Bot commented Mar 1, 2025

Copy link
Copy Markdown

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

@stale stale Bot added the wontfix This will not be worked on label Mar 1, 2025
@stale stale Bot closed this Mar 8, 2025
@cagnulein cagnulein reopened this Mar 8, 2025
@stale stale Bot removed the wontfix This will not be worked on label Mar 8, 2025
@stale

stale Bot commented Mar 23, 2025

Copy link
Copy Markdown

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

@stale stale Bot added the wontfix This will not be worked on label Mar 23, 2025
@stale stale Bot closed this Mar 30, 2025
@cagnulein cagnulein reopened this Mar 30, 2025
@stale stale Bot removed the wontfix This will not be worked on label Mar 30, 2025
@stale

stale Bot commented Apr 15, 2025

Copy link
Copy Markdown

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

@stale stale Bot added the wontfix This will not be worked on label Apr 15, 2025
@stale stale Bot closed this Apr 23, 2025
@cagnulein cagnulein reopened this Apr 23, 2025
@stale stale Bot removed the wontfix This will not be worked on label Apr 23, 2025
@stale

stale Bot commented May 8, 2025

Copy link
Copy Markdown

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

@stale stale Bot added the wontfix This will not be worked on label May 8, 2025
@stale stale Bot closed this May 15, 2025
@cagnulein cagnulein reopened this May 15, 2025
@stale stale Bot closed this Nov 21, 2025
@cagnulein cagnulein reopened this Nov 21, 2025
@stale stale Bot removed the wontfix This will not be worked on label Nov 21, 2025
cagnulein and others added 17 commits December 3, 2025 16:51
Replaces auto-discovery with explicit device path search and connection for WaterRower USB devices. Updates Android and C++ bridge code to first locate the device, then connect using its path, improving reliability and error handling.
…-master

# Conflicts:
#	src/android/build.gradle
#	src/devices/bluetooth.h
#	src/qzsettings.cpp
#	src/settings.qml
Android's UsbManager.getDeviceList() can return no devices at app
startup if enumeration hasn't finished yet, so the single detection
attempt at thread start silently failed forever (see debug log from
issue #3059, comment 4858695955: single "device not found" line, no
retries). Poll every 5s while not connected, broaden the vendor/product
match, and also check the USB_DEVICE_ATTACHED intent as a fallback.
#3059)

# Conflicts:
#	src/qzsettings.cpp
#	src/settings.qml
… jSerialComm

jSerialComm can't open Android's raw USB device paths (/dev/bus/usb/X/Y) since
CDC-ACM devices like the WaterRower S4/S5 USB monitor aren't exposed as kernel
tty nodes on unrooted Android, causing "Unable to create a serial port object
from the invalid port descriptor" errors reported in issue #3059.

WaterRowerBridge now opens the device via usb-serial-for-android's
CdcAcmSerialDriver (with permission handling) and hands the already-open
UsbSerialPort to SerialChannel, which bridges it to the netty-based
WaterRower transport via InputStream/OutputStream wrappers instead of
jSerialComm.
lastStrokeRate was never assigned anywhere in WaterRowerBridge.java,
only initialized to 0. Subscribe to AverageStrokeRateSubscription
(already provided by waterrower-core) to actually populate it, so
Cadence is reported to QZ instead of staying stuck at 0 while
distance/watts/pace were updating fine.
waterrowerusb::update() never called update_metrics(), the base
bluetoothdevice function that advances the session's elapsed time,
moving time and other derived stats. Debug logs showed elapsed_s
stuck at 0 for an entire ~10 minute session while distance/calories
kept climbing in the background, which is almost certainly why the
workout looked "dead" in the app even though data was technically
being received.

Also add the missing virtual bike/rower creation and
connectedAndDiscovered() emission in update(), matching the pattern
used by other non-BLE serial rowers (e.g. csaferower), since the
WaterRower USB device previously never created a virtual device or
triggered the accessory/heart-rate-belt wiring done on first
connection.
…connection-Support-(Issue-#3059)

# Conflicts:
#	src/qzsettings.cpp
#	src/settings-catalog.json
#	src/settings.qml
@cagnulein
cagnulein merged commit 3c77f3c into master Jul 20, 2026
15 of 17 checks passed
@cagnulein
cagnulein deleted the Add-Waterrower-USB-connection-Support-(Issue-#3059) branch July 20, 2026 20:07
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[REQ] Add Waterrower USB connection Support

1 participant