208 lines
8.9 KiB
JavaScript
208 lines
8.9 KiB
JavaScript
'use strict'
|
|
/*
|
|
Open Rowing Monitor, https://github.com/laberning/openrowingmonitor
|
|
|
|
This file contains the rower specific settings for different models of ergometers.
|
|
|
|
These have been generated by the community. If your rower is not listed here, please follow
|
|
https://github.com/laberning/openrowingmonitor/blob/main/docs/rower_settings.md to find the right settings
|
|
After you found good settings for your rowing device please send them to us (together with a raw recording
|
|
of at least 10 strokes) so we can add the device here and start to maintain it.
|
|
*/
|
|
export default {
|
|
|
|
// The default rower profile
|
|
DEFAULT: {
|
|
// How many impulses are triggered per revolution of the flywheel
|
|
// i.e. the number of magnets if used with a reed sensor
|
|
numOfImpulsesPerRevolution: 1,
|
|
|
|
// How big the sprocket is that attaches your belt/chain to your flywheel. This determines both the force on the handle
|
|
// as well as the drive length. If all goes well, you end up with average forces around 400 to 800 N and drive lengths around 1.20 to 1.35 m
|
|
sprocketRadius: 7.0,
|
|
|
|
// NOISE FILTER SETTINGS
|
|
// Filter Settings to reduce noise in the measured data
|
|
// Minimum and maximum duration between impulses in seconds during active rowing. Measurements above the maximum are filtered, so setting these liberaly
|
|
// might help here
|
|
minimumTimeBetweenImpulses: 0.014,
|
|
maximumTimeBetweenImpulses: 0.5,
|
|
|
|
// Smoothing determines the length of the running average for filtering the currentDt, 1 effectively turns it off
|
|
smoothing: 1,
|
|
|
|
// STROKE DETECTION SETTINGS
|
|
// Flank length determines the minimum number of consecutive increasing/decreasing measuments that are needed before the stroke detection
|
|
// considers a drive phase change
|
|
flankLength: 3,
|
|
|
|
// This is the minimum force that has to be on the handle before ORM considers it a stroke, in Newtons. So this is about 2 Kg or 4.4 Lbs.
|
|
minumumForceBeforeStroke: 20,
|
|
|
|
// The minimal inclination of the currentDt's before it is considered a recovery. When set to 0, it will look for a pure increase/decrease
|
|
minumumRecoverySlope: 0,
|
|
|
|
// The minimum quality level of the stroke detection: 1.0 is perfect, 0.1 pretty bad. Normally around 0.33. Setting this too high will stop
|
|
// the recovery phase from being detected through the slope angle (i.e. it will completely rely on the absence of the minumumForceBeforeStroke).
|
|
minimumStrokeQuality: 0.34,
|
|
|
|
// ORM can automatically calculate the recovery slope and adjust it dynamically. For this to work, autoAdjustDragFactor MUST be set to true
|
|
autoAdjustRecoverySlope: false,
|
|
|
|
// The margin used between the automatically calculated recovery slope and a next recovery. Don't touch unless you know what you are doing.
|
|
autoAdjustRecoverySlopeMargin: 0.05,
|
|
|
|
// Error reducing settings for the rowing phase detection (in seconds)
|
|
minimumDriveTime: 0.300, // minimum time of the drive phase
|
|
minimumRecoveryTime: 0.900, // minimum time of the recovery phase
|
|
|
|
// Needed to determine the drag factor of the rowing machine. This value can be measured in the recovery phase
|
|
// of the stroke.
|
|
// To display it for your rowing machine, set the logging level of the RowingEngine to 'info'. Then start rowing and
|
|
// you will see the measured values in the log.
|
|
// Just as a frame of reference: the Concept2 can display this factor from the menu, where it is multiplied with 1.000.000
|
|
// For a new Concept2 the Drag Factor ranges between 80 (Damper setting 1) and 220 (Damper setting 10). Other rowers are
|
|
// in the range of 150 to 450 (NordicTrack).
|
|
// Open Rowing Monitor can also automatically adjust this value based on the measured damping. To do so, set the setting
|
|
// autoAdjustDragFactor to true (see below).
|
|
dragFactor: 1500,
|
|
|
|
// Set this to true, if you want to automatically update the drag factor based on the measured
|
|
// values in the stroke recovery phase. If your rower produces stable damping values, then this could be a good
|
|
// option to dynamically adjust your measurements to the damper setting of your rower.
|
|
// When your machine's power and speed readings are too volatile it is wise to turn it off
|
|
autoAdjustDragFactor: false,
|
|
|
|
// If autoAdjustDragFactor is set to true, it will calculate the drag each recovery phase and update it accordingly to calculate speed,
|
|
// distance, etc.. As this calculation that is prone to noise in the measuremnts, it is wise to apply smoothing to prevent this noise
|
|
// from throwing off your key metrics. The default value is a running average of the drag factor of 5 strokes
|
|
dragFactorSmoothing: 5,
|
|
|
|
// When drag is calculated, we also get a quality indication. Based on this quality indication (1.0 is best, 0.1 pretty bad), low quality
|
|
// drag factors are rejected to prevent drag poisoning
|
|
minimumDragQuality: 0.83,
|
|
|
|
// The moment of inertia of the flywheel kg*m^2
|
|
// A way to measure it is outlined here: https://dvernooy.github.io/projects/ergware/, "Flywheel moment of inertia"
|
|
// You could also roughly estimate it by just doing some strokes and the comparing the calculated power values for
|
|
// plausibility. Note that the power also depends on the drag factor (see above).
|
|
flywheelInertia: 0.5,
|
|
|
|
// The time before a stroke is considered paused
|
|
maximumStrokeTimeBeforePause: 6.0,
|
|
|
|
// A constant that is commonly used to convert flywheel revolutions to a rowed distance
|
|
// see here: http://eodg.atm.ox.ac.uk/user/dudhia/rowing/physics/ergometer.html#section9
|
|
// Concept2 seems to use 2.8, which they admit is an arbitrary number which came close
|
|
// to their expectations. So for your rower, you have to find a plausible distance for your effort.
|
|
// Also note that the rowed distance also depends on flywheelInertia, so please calibrate that before changing this constant.
|
|
// PLEASE NOTE: Increasing this number decreases your rowed meters
|
|
magicConstant: 2.8
|
|
},
|
|
|
|
// Cheap Clone of Concept2 RowErg Model D
|
|
// https://zocobodyfit.ro/produs/aparat-de-vaslit-zoco-body-fit-air-rower-pliabil-ecran-lcd-eficient-si-util-negru/
|
|
Generic_Air_Rower: {
|
|
numOfImpulsesPerRevolution: 1,
|
|
sprocketRadius: 1.55,
|
|
minimumTimeBetweenImpulses: 0.007,
|
|
smoothing: 1,
|
|
flankLength: 6,
|
|
minumumForceBeforeStroke: 2,
|
|
minimumStrokeQuality: 0.6,
|
|
minimumDriveTime: 0.200, // minimum time of the drive phase
|
|
minimumRecoveryTime: 0.600, // minimum time of the recovery phase
|
|
dragFactor: 108,
|
|
autoAdjustDragFactor: true,
|
|
dragFactorSmoothing: 1,
|
|
minimumDragQuality: 0.97,
|
|
flywheelInertia: 0.073,
|
|
maximumStrokeTimeBeforePause: 6.0
|
|
},
|
|
|
|
// Concept2 RowErg, Model D, E and RowErg
|
|
Concept2_RowErg: {
|
|
numOfImpulsesPerRevolution: 6,
|
|
sprocketRadius: 1.4,
|
|
maximumStrokeTimeBeforePause: 6.0,
|
|
dragFactor: 110,
|
|
autoAdjustDragFactor: true,
|
|
minimumDragQuality: 0.95,
|
|
dragFactorSmoothing: 3,
|
|
minimumTimeBetweenImpulses: 0.005,
|
|
maximumTimeBetweenImpulses: 0.0145,
|
|
flankLength: 12,
|
|
smoothing: 1,
|
|
minimumStrokeQuality: 0.36,
|
|
minumumForceBeforeStroke: 11,
|
|
minumumRecoverySlope: 0.00070,
|
|
autoAdjustRecoverySlope: true,
|
|
autoAdjustRecoverySlopeMargin: 0.01,
|
|
minimumDriveTime: 0.40,
|
|
minimumRecoveryTime: 0.90,
|
|
flywheelInertia: 0.10148,
|
|
magicConstant: 2.8
|
|
},
|
|
|
|
// DKN R-320 Air Rower
|
|
DKN_R320: {
|
|
numOfImpulsesPerRevolution: 1,
|
|
flywheelInertia: 0.94,
|
|
dragFactor: 8522
|
|
},
|
|
|
|
// Force USA R3 Air Rower
|
|
ForceUSA_R3: {
|
|
numOfImpulsesPerRevolution: 6,
|
|
minimumTimeBetweenImpulses: 0.005,
|
|
maximumTimeBetweenImpulses: 0.022,
|
|
flywheelInertia: 0.1015,
|
|
flankLength: 10,
|
|
dragFactor: 135,
|
|
autoAdjustDragFactor: true,
|
|
// new engine settings
|
|
sprocketRadius: 1.5,
|
|
minimumStrokeQuality: 0.50,
|
|
minumumRecoverySlope: 0.00070,
|
|
autoAdjustRecoverySlope: true,
|
|
autoAdjustRecoverySlopeMargin: 0.035,
|
|
minumumForceBeforeStroke: 20,
|
|
minimumDriveTime: 0.46,
|
|
minimumRecoveryTime: 0.80,
|
|
minimumDragQuality: 0.83,
|
|
dragFactorSmoothing: 3,
|
|
maximumStrokeTimeBeforePause: 4
|
|
},
|
|
|
|
// NordicTrack RX800 Air Rower
|
|
NordicTrack_RX800: {
|
|
numOfImpulsesPerRevolution: 4,
|
|
minimumTimeBetweenImpulses: 0.005,
|
|
maximumTimeBetweenImpulses: 0.022,
|
|
sprocketRadius: 3.0,
|
|
autoAdjustDragFactor: true,
|
|
minimumDragQuality: 0.83,
|
|
dragFactorSmoothing: 3,
|
|
flywheelInertia: 0.180,
|
|
dragFactor: 225,
|
|
flankLength: 11,
|
|
minimumStrokeQuality: 0.34,
|
|
minumumRecoverySlope: 0.001,
|
|
autoAdjustRecoverySlope: true,
|
|
autoAdjustRecoverySlopeMargin: 0.036,
|
|
minumumForceBeforeStroke: 80,
|
|
minimumDriveTime: 0.30,
|
|
minimumRecoveryTime: 0.90
|
|
},
|
|
|
|
// Sportstech WRX700
|
|
Sportstech_WRX700: {
|
|
numOfImpulsesPerRevolution: 2,
|
|
minimumTimeBetweenImpulses: 0.005,
|
|
maximumTimeBetweenImpulses: 0.5,
|
|
minumumRecoverySlope: 0,
|
|
flywheelInertia: 0.72,
|
|
dragFactor: 32000
|
|
}
|
|
}
|