Replies: 3 comments 10 replies
That effectively is the beginning of the first stroke. All subsequent reports are at the end of a recovery. If you don't record it, you'll effectively miss the time/distance of the first stroke. Most postprocessing requires an initial (0 meters and 0 time) starting point. This becomes clearer if you look at FIT-files or TCX-files which are processed by Strava: a missing zerod startingpoint will throw off the totals.
Because Concept2 doesn't validate their data, and we do. The first stroke typically contains only half the drive as it needs to clear the minimum flywheel speed. However, metrics like pace, power, etc. are only defined for a full stroke, not a partial one. Above that, these metrics use a formula designed for steady state (i.e. a stable stroke, where angular velocity is close together at start/finish stroke) which isn't the case at the hefty acceleration at the start. So Concept2 messes up here.
Yes, you are mistaken :). But more seriously: what kind of evidence exactly?
Start and stop behaviour on a PM5 is weird, as it actually seems to depend on voltage, not frequency. So in validation tests we explicitly always use a time/distance limited session.
Typically, it is the session end report, which should differ in time and distance.
It is a technical column used by RowsAndAll to parse the data.
Please realize that our definitionbof 'drive' differs from Concept2's. For Concept2, the drive is when the flywheel accelerates. For ORM it is when there is any force present aside the dragforce. Typically this adds about 10% of drivetime and some drivelength.
It is the force on the handle, based on Torque and sprocket size, with a time-based average across the drive.
The total length is the dtivelength, similar to a PM5. Datapoints are collected per magnet impulse.
None, but RowsAndAll likes both of them being present. With 0.9.7 (release this weekend) we'll add the RowsAndAll/RowingData fields to the FIT-file, as we've agreed among several major parties in the rowing world. |
My key approach with OpenRowingMonitor is that as soon we stop questioning the status quo, we stop innovating. Our jumps in development were triggered by seeing data that we didn't like, realising we had to fix something, and discovering we needed a quantum leap to do it. A few key examples:
We still are not perfect. The PM5 has its issues (see the research of Ulm university), especially at startup and at imperfect repeating strokes. But I also see in experimental builds that we don't take in account magnetic drag (i.e. the power generation by the 12 pole magnet). Might be extremely C2 specific, but pushing boundaries is what we should do. And without questions from intelligent people, that is impossible. So keep challenging us. |
|
2026-02-20_09-39-57_rowingData.xlsx I shifted the data in column M and N up and down 1 or 2 strokes to find the best match with the "Power (watts)" column by inspecting the graph that can be seen by scrolling down in the spreadsheet. This led me to the suggestion that the first stroke seems to be located in the row indicated with "Stroke Number 2". (I hope that this procedure is sufficiently clear...) At the end of this short row of 46 strokes, you can see that both rwnp and PM2 seem to have two additional strokes when comparing with ORM data. This side by side comparison shows that all PM-systems lead to similar results, except for the first and last two strokes. Strong changes in power seem to lead to larger discrepancies between ORM and PM2/rwnp. The other graph (scroll right in spreadsheet) shows a side by side comparison between rwnp and ORM on drag factor. The agreement is quite remarkable, as is the somewhat unsteady stroke-to-stroke value, that we have noticed before. But please notice that column with k_rwnp is shifted up one stroke with respect to all other greenish columns to get to a good match in the graph! All this seems to indicate that we (I?) should better define what we mean with a stroke, especially at start, end and also when temporarily halting the row for 1 or 2 minutes. (The definition I use now is: Whenever I detect a "drive end"/"recovery start" I have a new stroke. For the first stroke I use a default value for drag factor. This seems to be consistent with the PM2 behaviour.)
The figure above shows a time-plot of the effective force on the flywheel. In this figure "drive end"/"recovery start" is indicated with tiny green circular markers. The red markers indicate "drive start"/"recovery end". At every green marker I evaluate a new stroke and at every red marker I evaluate a new value for the drag factor (default value for very first one), which is used in the evaluation of the subsequent stroke. So my first stroke comprises only a drive and no recovery!
For reference purposes, I also include the csv file I used as input to ORM (with 6 pulses per rev). |

Uh oh!
There was an error while loading. Please reload this page.
A little worried some of the questions below have been answered elsewhere, I post them anyhow:)
While trying to make a more detailed comparison between ORM and rwnp, I encountered a few things that puzzle me about the data in the ORM CSV datafile:
Thanks a lot for your consideration.
I am fully aware that "a fool can ask more questions than a wise man can answer."
All reactions