Skip to main content

Powering the SwellSync Monitor

​​​​​​The SwellSync monitor comes with an internal battery and it should run for hours on full charge.  To charge, you can plug in the micro USB cable into the back of the unit while seated in or outside of the dock.

The SwellSync monitor will auto-sleeps after 3 minutes if there are no devices connected via Bluetooth or web browser.

When the unit is asleep, it will wake when it detects the flywheel spinning - so give your erg a tug before you are ready to pair. 

To check the current status of the SwellSync monitor, look inside the charging opening for LED lights:

  • Blue light means the unit is awake; no blue light means the unit is sleeping.
  • Red light means the unit is recharging.

 

Web Interface for SwellSync Monitor

The SwellSync monitor can be accessed via a web browser to observe performance metrics without needing to use the Swelldone app.  To enable the web interface, however, you must use the Swelldone app to configure the Wi-Fi connection.

  1. To access the SwellSync configuration screen, first pair with your SwellSync monitor.  Once connected, a Configure button appears on the bottom left.  Click Configure to access the configuration screens.

    Config
  2. Click on the Web Interface tab to configure your Wi-Fi settings.  Please enter your Wi-Fi name (SSID) and password (Passphrase) to connect SwellSync to your Wi-Fi.  Click Apply Settings and once connected after a few seconds, you should see the IP Address of the monitor reflected in the bottom field.

    webconfig
  3. Click the View in Browser button, or type in that IP Address on any device/computer on the same Wi-Fi network to view the monitor's web-interface.

    monitor

The web-interface reports additional detailed measurements for the erg, including stroke drive and recovery phases as well as a force curve.

Calibrating the SwellSync Monitor

If you find that SwellSync is not producing readings accurate to your erg's performance, it's possible to configure and calibrate the monitor to fit your erg's mechanics.

  1. To access the SwellSync configuration screen, first pair with your SwellSync monitor.  Once connected, a Configure button appears on the bottom left.  Click Configure to access the configuration screens.

    Config
  2. The first calibration setting is to adjust the flywheel's moment of inertia. This value affects how much torque (force) is required to move the flywheel, and how much it will continue spinning when there is no torque applied.

    Flywheel
  3. The next calibration setting is to adjust the Drag Factor.  This value measures the resistance applied to the flywheel and how much it will decelerate, affecting pace and power. It is recommended to enable auto-drag factor as the monitor will adjust measurements dynamically to the current calculated drag factor to account for damper settings and any other mechanical nuances in the erg.

    Drag factor
  4. The last calibration setting is to adjust the Speed Factor.  This value converts flywheel revolutions to distance travelled, affecting the pace and distance measures.  Give that the moment of inertia and drag factor settings are accurate, adjust the Speed Factor will help fine tune the pace and distance measurements to match the legacy monitor of the erg.

    Speed

After updating any setting in the SwellSync configuration pages, the monitor is expected to restart momentarily and reconnect to the app.  To observe the current measurements, you may paddle/row on the erg to view the readouts on the right side of the screen to compare with the legacy monitor or some other benchmark.

When done with the configuration and calibration process, you may want to restart the Swelldone app and reconnect to SwellSync to ensure all changes are applied and data is flowing properly.

Installing the SwellSync Monitor

To install the SwellSync monitor on to your erg, you will need access to the flywheel shaft.

  1. Locate the end of the flywheel shaft and fit the round cap piece of the SwellSync monitor over the shaft end.  The cap should fit as far in as possible and should be snug, with room for the shaft to spin freely still.

    Install spindle
  2. Place the SwellSync and docking bracket close to the cap piece, leaving a small gap between the cap and monitor's curved side to allow the cap to spin freely. Note and mark the position of the docking bracket.

    Align
  3. Remove the backing of the adhesive tape on the docking bracket and stick it to the marked position.

    dock
  4. Place the SwellSync monitor back into the docking bracket and it should be held in place by positioning magnets. You may also plug in a micro-USB power source at the of the monitor. The monitor is ready for use and pairing with Swelldone and other compatible BLE FTMS apps.

    installed

Compatible ergometers with Swelldone

Swelldone will connect with ergometers that support the Bluetooth Low Energy FTMS protocol, which is a current industry standard to interact with fitness machines.  Example of supported machines include Concept2 machines with PM5 monitors, KayakPro machines with GenesisPort, Whipr, and others.  It is also possible to install a SwellSync Universal Monitor to any erg if you have access to the flywheel shaft.

1B2139

SWELLDONE
Workout Builder

Create your own custom workouts for Swelldone

Workout Graph

Before clicking Update, please verify you are a human.
Update Workout

Workout JSON

Workout ID

Click on or enter this code into Swelldone to load the workout

0

{
"name": "(30on 30off) x 6 x 6",
"duration": "Long",
"description": "(30on 30off), x6, 2min rest,\nrepeat 6 times",
"email": "",
"exercises": [
{
"name": "Segment 1",
"type": "For Time",
"effort": "50% Effort",
"power1": 50,
"distance1": 0,
"duration1": 300,
"rest_effort": "Select...",
"power2": 0,
"distance2": 0,
"duration2": 0,
"repeat": -1
},
{
"name": "Segment 3",
"type": "Intervals - Zone",
"effort": "110% Effort",
"power1": 110,
"distance1": 0,
"duration1": 30,
"rest_effort": "50% Effort",
"power2": 50,
"distance2": 0,
"duration2": 30,
"repeat": 6
},
{
"name": "Segment 3",
"type": "Free Row/Paddle",
"effort": "Select...",
"power1": 0,
"distance1": 0,
"duration1": 120,
"rest_effort": "Select...",
"power2": 0,
"distance2": 0,
"duration2": 0,
"repeat": -1
},
{
"name": "Segment 4",
"type": "Intervals - Zone",
"effort": "110% Effort",
"power1": 110,
"distance1": 0,
"duration1": 30,
"rest_effort": "50% Effort",
"power2": 50,
"distance2": 0,
"duration2": 30,
"repeat": 6
},
{
"name": "Segment 5",
"type": "Free Row/Paddle",
"effort": "Select...",
"power1": 0,
"distance1": 0,
"duration1": 120,
"rest_effort": "Select...",
"power2": 0,
"distance2": 0,
"duration2": 0,
"repeat": -1
},
{
"name": "Segment 6",
"type": "Intervals - Zone",
"effort": "110% Effort",
"power1": 110,
"distance1": 0,
"duration1": 30,
"rest_effort": "50% Effort",
"power2": 50,
"distance2": 0,
"duration2": 30,
"repeat": 6
},
{
"name": "Segment 7",
"type": "Free Row/Paddle",
"effort": "Select...",
"power1": 0,
"distance1": 0,
"duration1": 120,
"rest_effort": "Select...",
"power2": 0,
"distance2": 0,
"duration2": 0,
"repeat": -1
},
{
"name": "Segment 8",
"type": "Intervals - Zone",
"effort": "110% Effort",
"power1": 110,
"distance1": 0,
"duration1": 30,
"rest_effort": "50% Effort",
"power2": 50,
"distance2": 0,
"duration2": 30,
"repeat": 6
},
{
"name": "Segment 9",
"type": "Free Row/Paddle",
"effort": "Select...",
"power1": 0,
"distance1": 0,
"duration1": 120,
"rest_effort": "Select...",
"power2": 0,
"distance2": 0,
"duration2": 0,
"repeat": -1
},
{
"name": "Segment 10",
"type": "Intervals - Zone",
"effort": "110% Effort",
"power1": 110,
"distance1": 0,
"duration1": 30,
"rest_effort": "50% Effort",
"power2": 50,
"distance2": 0,
"duration2": 30,
"repeat": 6
},
{
"name": "Segment 11",
"type": "Free Row/Paddle",
"effort": "Select...",
"power1": 0,
"distance1": 0,
"duration1": 120,
"rest_effort": "Select...",
"power2": 0,
"distance2": 0,
"duration2": 0,
"repeat": -1
},
{
"name": "Segment 12",
"type": "Intervals - Zone",
"effort": "110% Effort",
"power1": 110,
"distance1": 0,
"duration1": 30,
"rest_effort": "50% Effort",
"power2": 50,
"distance2": 0,
"duration2": 30,
"repeat": 6
},
{
"name": "Segment 13",
"type": "Free Row/Paddle",
"effort": "Select...",
"power1": 0,
"distance1": 0,
"duration1": 120,
"rest_effort": "Select...",
"power2": 0,
"distance2": 0,
"duration2": 0,
"repeat": -1
},
{
"name": "Segment 14",
"type": "Cooldown 75-25% Effort",
"effort": "Select...",
"power1": 70,
"distance1": 0,
"duration1": 300,
"rest_effort": "Select...",
"power2": 25,
"distance2": 0,
"duration2": 0,
"repeat": -1
}
]
}

104E8E

SWELLDONE
Workout Builder

Create your own custom workouts for Swelldone

Workout Graph

Before clicking Update, please verify you are a human.
Update Workout

Workout JSON

Workout ID

Click on or enter this code into Swelldone to load the workout

0

E71392

SWELLDONE
Workout Builder

Create your own custom workouts for Swelldone

Workout Graph

Before clicking Update, please verify you are a human.
Update Workout

Workout JSON

Workout ID

Click on or enter this code into Swelldone to load the workout

0

{
"name": "4 on 1 off x 15",
"duration": "Long",
"description": "4 on 1 off x 15 @ 150BPM",
"email": "",
"exercises": [
{
"name": "Segment 1",
"type": "For Time",
"effort": "50% Effort",
"power1": 50,
"distance1": 0,
"duration1": 240,
"rest_effort": "Select...",
"power2": 0,
"distance2": 0,
"duration2": 0,
"repeat": -1
},
{
"name": "Segment 2",
"type": "Free Row/Paddle",
"effort": "Select...",
"power1": 0,
"distance1": 0,
"duration1": 60,
"rest_effort": "Select...",
"power2": 0,
"distance2": 0,
"duration2": 0,
"repeat": -1
},
{
"name": "Segment 3",
"type": "For Time",
"effort": "50% Effort",
"power1": 50,
"distance1": 0,
"duration1": 240,
"rest_effort": "Select...",
"power2": 0,
"distance2": 0,
"duration2": 0,
"repeat": -1
},
{
"name": "Segment 4",
"type": "Free Row/Paddle",
"effort": "Select...",
"power1": 0,
"distance1": 0,
"duration1": 60,
"rest_effort": "Select...",
"power2": 0,
"distance2": 0,
"duration2": 0,
"repeat": -1
},
{
"name": "Segment 5",
"type": "For Time",
"effort": "50% Effort",
"power1": 50,
"distance1": 0,
"duration1": 240,
"rest_effort": "Select...",
"power2": 0,
"distance2": 0,
"duration2": 0,
"repeat": -1
},
{
"name": "Segment 6",
"type": "Free Row/Paddle",
"effort": "Select...",
"power1": 0,
"distance1": 0,
"duration1": 60,
"rest_effort": "Select...",
"power2": 0,
"distance2": 0,
"duration2": 0,
"repeat": -1
},
{
"name": "Segment 7",
"type": "For Time",
"effort": "50% Effort",
"power1": 50,
"distance1": 0,
"duration1": 240,
"rest_effort": "Select...",
"power2": 0,
"distance2": 0,
"duration2": 0,
"repeat": -1
},
{
"name": "Segment 8",
"type": "Free Row/Paddle",
"effort": "Select...",
"power1": 0,
"distance1": 0,
"duration1": 60,
"rest_effort": "Select...",
"power2": 0,
"distance2": 0,
"duration2": 0,
"repeat": -1
},
{
"name": "Segment 9",
"type": "For Time",
"effort": "50% Effort",
"power1": 50,
"distance1": 0,
"duration1": 240,
"rest_effort": "Select...",
"power2": 0,
"distance2": 0,
"duration2": 0,
"repeat": -1
},
{
"name": "Segment 10",
"type": "Free Row/Paddle",
"effort": "Select...",
"power1": 0,
"distance1": 0,
"duration1": 60,
"rest_effort": "Select...",
"power2": 0,
"distance2": 0,
"duration2": 0,
"repeat": -1
},
{
"name": "Segment 11",
"type": "For Time",
"effort": "50% Effort",
"power1": 50,
"distance1": 0,
"duration1": 240,
"rest_effort": "Select...",
"power2": 0,
"distance2": 0,
"duration2": 0,
"repeat": -1
},
{
"name": "Segment 12",
"type": "Free Row/Paddle",
"effort": "Select...",
"power1": 0,
"distance1": 0,
"duration1": 60,
"rest_effort": "Select...",
"power2": 0,
"distance2": 0,
"duration2": 0,
"repeat": -1
},
{
"name": "Segment 13",
"type": "For Time",
"effort": "50% Effort",
"power1": 50,
"distance1": 0,
"duration1": 240,
"rest_effort": "Select...",
"power2": 0,
"distance2": 0,
"duration2": 0,
"repeat": -1
},
{
"name": "Segment 14",
"type": "Free Row/Paddle",
"effort": "Select...",
"power1": 0,
"distance1": 0,
"duration1": 60,
"rest_effort": "Select...",
"power2": 0,
"distance2": 0,
"duration2": 0,
"repeat": -1
},
{
"name": "Segment 15",
"type": "For Time",
"effort": "50% Effort",
"power1": 50,
"distance1": 0,
"duration1": 240,
"rest_effort": "Select...",
"power2": 0,
"distance2": 0,
"duration2": 0,
"repeat": -1
},
{
"name": "Segment 16",
"type": "Free Row/Paddle",
"effort": "Select...",
"power1": 0,
"distance1": 0,
"duration1": 60,
"rest_effort": "Select...",
"power2": 0,
"distance2": 0,
"duration2": 0,
"repeat": -1
},
{
"name": "Segment 17",
"type": "For Time",
"effort": "65% Effort",
"power1": 65,
"distance1": 0,
"duration1": 240,
"rest_effort": "Select...",
"power2": 0,
"distance2": 0,
"duration2": 0,
"repeat": -1
},
{
"name": "Segment 18",
"type": "Free Row/Paddle",
"effort": "Select...",
"power1": 0,
"distance1": 0,
"duration1": 60,
"rest_effort": "Select...",
"power2": 0,
"distance2": 0,
"duration2": 0,
"repeat": -1
},
{
"name": "Segment 19",
"type": "For Time",
"effort": "65% Effort",
"power1": 65,
"distance1": 0,
"duration1": 240,
"rest_effort": "Select...",
"power2": 0,
"distance2": 0,
"duration2": 0,
"repeat": -1
},
{
"name": "Segment 20",
"type": "Free Row/Paddle",
"effort": "Select...",
"power1": 0,
"distance1": 0,
"duration1": 60,
"rest_effort": "Select...",
"power2": 0,
"distance2": 0,
"duration2": 0,
"repeat": -1
},
{
"name": "Segment 21",
"type": "For Time",
"effort": "50% Effort",
"power1": 50,
"distance1": 0,
"duration1": 240,
"rest_effort": "Select...",
"power2": 0,
"distance2": 0,
"duration2": 0,
"repeat": -1
},
{
"name": "Segment 22",
"type": "Free Row/Paddle",
"effort": "Select...",
"power1": 0,
"distance1": 0,
"duration1": 60,
"rest_effort": "Select...",
"power2": 0,
"distance2": 0,
"duration2": 0,
"repeat": -1
},
{
"name": "Segment 23",
"type": "For Time",
"effort": "50% Effort",
"power1": 50,
"distance1": 0,
"duration1": 240,
"rest_effort": "Select...",
"power2": 0,
"distance2": 0,
"duration2": 0,
"repeat": -1
},
{
"name": "Segment 24",
"type": "Free Row/Paddle",
"effort": "Select...",
"power1": 0,
"distance1": 0,
"duration1": 60,
"rest_effort": "Select...",
"power2": 0,
"distance2": 0,
"duration2": 0,
"repeat": -1
},
{
"name": "Segment 25",
"type": "For Time",
"effort": "50% Effort",
"power1": 50,
"distance1": 0,
"duration1": 240,
"rest_effort": "Select...",
"power2": 0,
"distance2": 0,
"duration2": 0,
"repeat": -1
},
{
"name": "Segment 26",
"type": "Free Row/Paddle",
"effort": "Select...",
"power1": 0,
"distance1": 0,
"duration1": 60,
"rest_effort": "Select...",
"power2": 0,
"distance2": 0,
"duration2": 0,
"repeat": -1
},
{
"name": "Segment 27",
"type": "For Time",
"effort": "50% Effort",
"power1": 50,
"distance1": 0,
"duration1": 240,
"rest_effort": "Select...",
"power2": 0,
"distance2": 0,
"duration2": 0,
"repeat": -1
},
{
"name": "Segment 28",
"type": "Free Row/Paddle",
"effort": "Select...",
"power1": 0,
"distance1": 0,
"duration1": 60,
"rest_effort": "Select...",
"power2": 0,
"distance2": 0,
"duration2": 0,
"repeat": -1
},
{
"name": "Segment 29",
"type": "For Time",
"effort": "50% Effort",
"power1": 50,
"distance1": 0,
"duration1": 240,
"rest_effort": "Select...",
"power2": 0,
"distance2": 0,
"duration2": 0,
"repeat": -1
},
{
"name": "Segment 30",
"type": "Free Row/Paddle",
"effort": "Select...",
"power1": 0,
"distance1": 0,
"duration1": 60,
"rest_effort": "Select...",
"power2": 0,
"distance2": 0,
"duration2": 0,
"repeat": -1
}
]
}

4D9BE4

SWELLDONE
Workout Builder

Create your own custom workouts for Swelldone

Workout Graph

Before clicking Update, please verify you are a human.
Update Workout

Workout JSON

Workout ID

Click on or enter this code into Swelldone to load the workout

E0069D

{ "name": "80-90-110", "duration": "Short", "description": "", "email": "", "exercises": [ { "name": "Warm Up", "type": "For Time", "effort": "50% Effort", "power1": 50, "distance1": 0, "duration1": 60, "rest_effort": "Select...", "power2": 0, "distance2": 0, "duration2": 0, "repeat": -1 }, { "name": "80%", "type": "For Time", "effort": "80% Effort", "power1": 80, "distance1": 0, "duration1": 45, "rest_effort": "Select...", "power2": 0, "distance2": 0, "duration2": 0, "repeat": -1 }, { "name": "Rest 1", "type": "For Time", "effort": "50% Effort", "power1": 50, "distance1": 0, "duration1": 45, "rest_effort": "Select...", "power2": 0, "distance2": 0, "duration2": 0, "repeat": -1 }, { "name": "95%", "type": "For Time", "effort": "95% Effort", "power1": 95, "distance1": 0, "duration1": 45, "rest_effort": "Select...", "power2": 0, "distance2": 0, "duration2": 0, "repeat": -1 }, { "name": "Rest 2", "type": "For Time", "effort": "50% Effort", "power1": 50, "distance1": 0, "duration1": 45, "rest_effort": "Select...", "power2": 0, "distance2": 0, "duration2": 0, "repeat": -1 }, { "name": "110%", "type": "For Time", "effort": "110% Effort", "power1": 110, "distance1": 0, "duration1": 45, "rest_effort": "Select...", "power2": 0, "distance2": 0, "duration2": 0, "repeat": -1 }, { "name": "Rest 3", "type": "For Time", "effort": "50% Effort", "power1": 50, "distance1": 0, "duration1": 60, "rest_effort": "Select...", "power2": 0, "distance2": 0, "duration2": 0, "repeat": -1 }, { "name": "80%", "type": "For Time", "effort": "80% Effort", "power1": 80, "distance1": 0, "duration1": 70, "rest_effort": "Select...", "power2": 0, "distance2": 0, "duration2": 0, "repeat": -1 }, { "name": "Rest 4", "type": "For Time", "effort": "50% Effort", "power1": 50, "distance1": 0, "duration1": 60, "rest_effort": "Select...", "power2": 0, "distance2": 0, "duration2": 0, "repeat": -1 }, { "name": "95%", "type": "For Time", "effort": "95% Effort", "power1": 95, "distance1": 0, "duration1": 70, "rest_effort": "Select...", "power2": 0, "distance2": 0, "duration2": 0, "repeat": -1 }, { "name": "Rest 5", "type": "For Time", "effort": "50% Effort", "power1": 50, "distance1": 0, "duration1": 60, "rest_effort": "Select...", "power2": 0, "distance2": 0, "duration2": 0, "repeat": -1 }, { "name": "110%", "type": "For Time", "effort": "110% Effort", "power1": 110, "distance1": 0, "duration1": 70, "rest_effort": "Select...", "power2": 0, "distance2": 0, "duration2": 0, "repeat": -1 }, { "name": "Rest 6", "type": "For Time", "effort": "50% Effort", "power1": 50, "distance1": 0, "duration1": 60, "rest_effort": "Select...", "power2": 0, "distance2": 0, "duration2": 0, "repeat": -1 }, { "name": "80%", "type": "For Time", "effort": "80% Effort", "power1": 80, "distance1": 0, "duration1": 90, "rest_effort": "Select...", "power2": 0, "distance2": 0, "duration2": 0, "repeat": -1 }, { "name": "Rest 7", "type": "For Time", "effort": "50% Effort", "power1": 50, "distance1": 0, "duration1": 60, "rest_effort": "Select...", "power2": 0, "distance2": 0, "duration2": 0, "repeat": -1 }, { "name": "95%", "type": "For Time", "effort": "95% Effort", "power1": 95, "distance1": 0, "duration1": 90, "rest_effort": "Select...", "power2": 0, "distance2": 0, "duration2": 0, "repeat": -1 }, { "name": "Rest 8", "type": "For Time", "effort": "50% Effort", "power1": 50, "distance1": 0, "duration1": 60, "rest_effort": "Select...", "power2": 0, "distance2": 0, "duration2": 0, "repeat": -1 }, { "name": "Last One 110%", "type": "For Time", "effort": "110% Effort", "power1": 110, "distance1": 0, "duration1": 120, "rest_effort": "Select...", "power2": 0, "distance2": 0, "duration2": 0, "repeat": -1 }, { "name": "Warm Down", "type": "For Time", "effort": "50% Effort", "power1": 50, "distance1": 0, "duration1": 120, "rest_effort": "Select...", "power2": 0, "distance2": 0, "duration2": 0, "repeat": -1 } ]}

E0069D

SWELLDONE
Workout Builder

Create your own custom workouts for Swelldone

Workout Graph

Before clicking Update, please verify you are a human.
Update Workout

Workout JSON

Workout ID

Click on or enter this code into Swelldone to load the workout

0