QZ has added a new WaterRower USB connection path on the master branch. Instead of depending only on Bluetooth or screen-based workarounds, the new implementation adds a direct USB serial bridge for WaterRower monitors on Android, with QZ reading rower data from the monitor and exposing it to the rest of the QZ workout pipeline.
The public evidence is the merged GitHub change PR #3068, linked to issue #3059. The code adds Android USB detection, a WaterRower bridge, a new waterrowerusb QZ device, and fixes for stroke rate, workout time, distance, watts, ANT distance and rower broadcast data.
Indice dei contenuti
What changed for WaterRower owners
- New USB rower device path: QZ now includes a dedicated WaterRower USB implementation in the codebase.
- Android USB serial bridge: the Android side uses USB serial access for CDC-ACM style WaterRower monitor connections instead of assuming a normal Linux tty device.
- Retry and permission handling: the implementation retries USB detection and handles Android USB device permission flow.
- Rower metrics: the WaterRower code subscribes to values such as watts, distance, stroke count, stroke rate, calories, velocity/pace-style data, and heart-rate fields where the monitor provides them.
- Virtual-device pipeline: QZ creates the rower virtual-device path so the workout can be bridged into supported training-app and sensor workflows.
Compatibility summary
| Equipment | WaterRower monitors connected by USB |
| QZ feature | Direct WaterRower USB / serial connection path |
| Platform evidenced by code | Android USB host / USB serial path |
| Metrics evidenced in code | Watts, distance, stroke count, stroke rate, calories, velocity/pace-style values and heart-rate fields where available from the monitor |
| Control | This change is about reading and bridging WaterRower monitor data; do not assume powered resistance control for a non-motorized rower |
| Zwift / MyWhoosh / Rouvy | QZ can bridge rower metrics through its virtual-device and app-integration workflow where the target app supports the relevant rower/cycling data path |
| Garmin / Strava / Health | QZ can record workouts and use integrations such as Garmin Connect workflows, Strava upload, Apple Health / HealthKit, and Android health-platform support such as Google Health / Health Connect where configured |
| Confidence | High that the capability is merged in QZ master; users should still verify their exact WaterRower monitor and Android USB adapter/cable combination |
How to try the WaterRower USB path
The exact release channel depends on the QZ build you are using, but the code-level setup path is clear: use an Android device that supports USB host mode, connect the WaterRower monitor through the appropriate USB cable or adapter, grant Android’s USB permission when prompted, and enable the WaterRower USB option in QZ if it is not already selected in your build.
Once connected, confirm that QZ is receiving rower values before starting the target training app. This matters because USB enumeration can take a moment on Android; the merged implementation includes retry logic specifically because a single startup scan could miss a just-attached USB device.
Why this is useful
For WaterRower users, a direct USB path can be more explicit than trying to infer workout data from another app or display. For QZ, it means WaterRower metrics can enter the same bridge used for other supported fitness equipment: live workout tiles, virtual-device output, activity recording, and downstream integrations.
As always with hardware support, the best result depends on the exact monitor generation, cable, Android device and app target. If something does not work as expected, send an email to Roberto.viola83@gmail.com and Roberto will help you check the setup.
Want to connect more fitness equipment to training apps? Download QZ and learn more at qzfitness.com.