Vishal Patel

RowMetrics

RowMetrics is a program for logging workout data from a Concept2 rowing machine's Performance Monitor. It collects time, distance, speed, stroke rate, power, and heart rate information during the workout and writes the results to a comma-separated values (CSV) file and also generates a scalable vector graphic (SVG) plot of the data. It also calculates weight-adjusted values for the appropriate parameters.

Contents

  1. Requirements
  2. Download
  3. Installation
  4. Usage
  5. Limitations
  6. Sample Output

Requirements

Download

Download the tarball: rowmetrics-0.1.0.tar.gz (21 KB)

Installation

  1. Identifying your Concept2 Performance Monitor (PM)
    1. With your PM disconnected from your computer, type lsusb at the command line and note the output.
    2. Now plug your PM into a USB port and type lsusb again. Identify the line that changed. In my case, it looks like this:
      Bus 001 Device 006: ID 17a4:0001 Concept2 Performance Monitor 3
    3. Record your VendorID (17a4 in this example), and ProductID (0001 in this example) for future use.
  2. Modifying udev rules to allow non-root USB access to the PM
    1. As root, save the following, all on one line, to /etc/udev/rules.d/99-concept2.rules, replacing VVVV and PPPP with the VendorID and ProductID respectively:
      ATTRS{idVendor}=="VVVV", ATTRS{idProduct}=="PPPP", MODE="0666"
    2. As root, reload the udev rules with:
      udevadm control --reload-rules
    3. Disconnect and reconnect the Concept2 PM from your computer.
  3. Extract RowMetrics and make it executable
    1. Extract RowMetrics to a convenient location:
      tar xzf rowmetrics-0.1.0.tar.gz -C ~/bin/
    2. Make RowMetrics executable:
      chmod +x ~/bin/RowMetrics/row_metrics.py

Usage

To begin a logged workout, you'll need to run RowMetrics with the appropriate command line parameters:

Example: A 165-lb person who wants to row a 10k while logging data every five seconds might run:
~/bin/row_metrics.py -i 17a4:0001 -p 3 -w 165 -f 0.2

Limitations

RowMetrics is not perfect. Here are some of its limitations. There are probably others.

Sample Output

For sample output (or for a good laugh), check out the results of my own logged workouts. Sometimes I don't wear the heart rate monitor, so do not be alarmed if my heart rate appears to be zero.

Timestamp Results
20090404T234358Z CSV SVG
20090412T190834Z CSV SVG
20090415T021811Z CSV SVG
20090417T021440Z CSV SVG
20090429T024054Z CSV SVG
20090510T011105Z CSV SVG