Our support email address is firstname.lastname@example.org. Your email will go directly into our Trello tracking system and we’ll contact you as soon as we can. We’re a small shop so your patience is appreciated!
New In PainSled 1.1.x
Cycling Power Emulation for Zwift
We are excited to offer emulation of Bluetooth Cycling Power Meters in PainSled 1.1.0 onwards! In this mode, your rower becomes a cycling power meter and can be used with cycling workout experiences like Zwift. This feature is being tested with other platforms like TrainerRoad and SufferFest. Drop us a line if you use those or other cycling platforms and would like to help beta test.
Bluetooth Heartrate Monitor Support
In previous versions, PainSled received heartrate monitor ("HRM") data from devices attached to the PM monitor. Starting with 1.1.0, PainSled can now connect directly to Bluetooth HRM devices. This eliminates a workout setup step and, in the future, allows us to collect richer heartrate data and export it to other fitness platforms and workout experiences.
Bluetooth Heartrate Monitor Connection
To connect a Bluetooth HRM:
1) Put your Bluetooth HRM in pairing mode. Usually, just by putting it on. Make sure there are no other apps running that will "claim" it until you finish the steps below.
2) In the PainSled app, go to the workout log view, then select "Settings" in the upper left corner.
3) In the Settings view, enable the “Connect Heart Rate” slider in the UI. PainSled will then pair with the first HRM that it sees. If it pairs successfully with a HRM, you’ll see your heart rate start to update after returning to the monitor view.
4) PainSled will remember this HRM and always pair with it automatically in future workout sessions. If you need to re-pair with a differnt HRM, just disable the HRM setting and restart at Step 1 above.
*** Note: If there are other heartrate monitors being connected at the same time , like at a gym, it's possible that the initial pairing will connect to the wrong strap and you'll get someone else's heartrate data. Not good! FOr this reason, it's best to do the initial pairing in private.
Zwift Cycling Power Meter Emulation Setup
Begin by installing your Zwift app, if you haven't already, and then enabling Zwift in PainSled.
1) Install the Zwift app on your PC, Apple TV, or iPad.
2) Enable the Zwift option in the PainSled Log Settings page. Click on the log icon, then “Settings” in the upper-left corner of the display. The locate the Zwift option and click it to enable. If you are a SkiErg user, also select Ski Erg in the settings view. This enables power scaling specific to the Ski Erg.
3) Connect PainSled to your Concept2 monitor and connect your heartrate strap if you use one. See the HRM connection notes below. You may actually do this step at any point, PainSled will report zero watts and heartrate to Zwift until your erg and HRM are connected.
4) Connect (or "pair") PainSled to Zwift, using one of the two options below.
Zwift Connection Option 1: Bluetooth Direct Connect
This is the preferred option that connects PainSled Bluetooth Cycling Power emulation directly to the host device running the Zwift application. This known to work with some Mac OS PCs, Apple TV, and iPad. We have reports that it also works with some Windows PCs.
5) Run Zwift on your PC, Apple TV, iPad, etc., then select Bluetooth as your pairing method.
6) Wait for the PainSled emulated Cycling Power Bluetooth device to appear, then select it. It will show up as something like “iPad 123” or "iPhone 788" (Apple changes the number each time to keep folks from tracking your iOS device).
7) If you are using a heart rate monitor, search for and connect to the PainSled heart rate monitor device. It will be named the same as above.
Zwift Connection Option 2: Mobile Link App
Some PC's cannot connect directly to the PainSled emulated Cycling Power meter so we use Zwift's Mobile Link application to make the connection. This adds an extra device to the setup, so only use this option if Option 1 does not work, or if you were going to be running Mobile Link on another device anyhow. It IS kind of a useful app, after all!
5) Install the Zwift Mobile Link app on an Android or iOS device that IS NOT the device you will be running PainSled on. This is because the Mobile Link app cannot “see” the emulated PainSled cycling power Bluetooth service if they are running on the same device.
6) Run Zwift on your PC, then select Mobile Link as your pairing method.
7) Similar to Option 1, wait for the PainSled emulated Cycling Power Bluetooth device to appear, then select it. It will show up as something like “iPad 123” or "iPhone 788" (Apple changes the number each time to keep folks from tracking your iOS device).
8) If you are using a heart rate monitor, search for and connect to the PainSled heart rate monitor device. It will be named the same as above.
Zwift Setup: Heartrate Monitor Options
The preferred configuration is to capture heartrate data in PainSled and then pass it on to Zwift as an emulated Bluetooth heartrate monitor device. This allows you to use data from ANT+ monitors connnected to the PM monitor, and captures the heartrate data in your PainSled workout.
If you are only using PainSled as a way to connect your rower to Zwift, and do not care about storing heartrate data in your PainSled workout files, you may also connect your heartrate monitor directly to Zwift.
Why is the TCX activity set to Cycling?
The brief answer is that "generic" one-size-fits-all TCX pretty much only supports running or biking as the activity. And cycling supports a cadence that is “sort-of” like rowing.
Specific fitness platforms like Garmin Connect DO support richer TCX, but that would require generating TCX specific to Garmin, which would then no longer work with other platforms. Similar extensions and exceptions are present for other platforms and it’s just kind of a tangled mess.
Going forward, we will likely stick with generic “cycling” TCX as a stop-gap and push forward with workout sync for popular platforms that have a workout upload API. It's more convenient and the APIs tend to support richer workout data. Some of them even know what Indoor Rowing is!
Why do some export options not show up when I export multiple files?
The "document disposition" view that pops up when you export is entirely implemented by Apple in iOS and is extended by other apps or system services (iCloud, Airdrop, Google Docs, etc.) that offer document handling plugins. However, those apps do not have to support more than one file at a time and some of them will simply not show up if multiple files are exported. Other apps will support multiple files but will have a semi-random limit. For example, Google Drive seems to be “less than 10”. Or something.
The workaround is export a single workout to a single export format and if the document disposition option reappears. This obviously becomes a pain if you want to export more than one format or file at once but we haven't thought up a good UX design to handle it yet.
Once again, automagical workout sync solves this problem too. We’re working on it :)
Where are my workout files actually stored?
We may ask you to forward a workout file if you have an error. Your workouts are stored in the PainSled app's Document folder. They'll be named with the data and time of the workout and will have a file extension of "zlib". You can access your workouts by connecting your device to a PC running iTunes. Click the phone or tablet icon, then select "apps". Scroll down the apps list until you find the PainSled app. Click on its icon and the workout files should appear in the file browser window. You may then select workout files to copy to your PC. Email the files to email@example.com and we'll have a look.
Concept 2 Logbook Sync Weight Class Detection
PainSled does not currently collect or store any personal data. To set the weight class in your logbook workouts, it reads the weight class from your latest workout in the C2 Logbook and uses it for synced workouts. If you're weight class changes, simply correct the class in your most recent synced workout, and all following synced workouts will use that weight class.
Marking workouts as Rowing vs. Biking
PainSled uploads workouts to Strava as Biking activities rather than Rowing. Although you may mark them as rowing workouts after the fact, we have not found a way to do this at the time of upload. Also, it appears that marking a workout as rowing makes the power graph disappear in some cases. If you happen to have found a way around any of these issues, drop us a line, please!
These are the things we know about that are not exactly the way we might have hoped in version 1.0.102.
Workout Sync Glitches
There are some remaining issues with sync token management. If a workout sync fails with an authorization error, disable and re-enable the sync option (Strava, SportTracks, etc.) in the Settings to refresh your authorization token.
Workout data glitches
There are still a few issues in workout data parsing. Usually related to complicated workout formats that have mixtures of time or distance intervals with intervening rest intervals. If you run into something, drop an email to the support address. Attach the workout file (see below) if you would like us to have a look.
PM5 Bluetooth data stops when using Garmin devices
We have tested with a few ANT heart rate straps and they seem to work fine with the PM5 Bluetooth data connection. However, we have received reports that some Garmin ANT devices seem to make the Bluetooth data stream stop, although the connection is maintained. We have not been able to reproduce this so far but if you run into this and would like to help us debug the issue, drop us a support email.
PM5 22291-37 Monitor Errors
According to Concept2, these errors occur when your iPhone or iPad runs out of Bluetooth bandwidth due to having multiple active connections. You may need to disable some of your other Bluetooth devices while rowing to solve this issue.
Note: PainSled 1.1.2 has a new setting to disable the Stroke Scope. This can reduce or eliminate these types of errors as the Stroke Scope requires a lot of Bluetooth bandwidth.