There have been other discussions of rowing on Zwift but I wanted to focus on using a Concept2 rower with Apple TV for a couple of reasons. FYI: there's a link to an Imgur album at the bottom of this post.
- per DCRainmaker, (https://www.dcrainmaker.com/2017/11/zwi ... tv-4k.html) Zwift on an Apple TV (connected to a bike or rower) is the lowest entry cost for those without Zwift-capable computer hardware (raises hand)
- even owning a Zwift-capable computer, it's wonderful to erg in front of a big screen TV without having to poke and prod a computer and monitor into action - once set-up, it "just works"
- Model D rower with a PM5 performance monitor (hardware version 633, current firmware, though any PM5 should work)
- an Apple TV 4K running Zwift (note: buy the 4K over the Gen 4 as it has far more processor horsepower; fully-warranted, refurbished units, likely just open-box-returns, are available from Apple at a hefty discount)
- an iPod Touch 6
- a Garmin ANT+ HRM and a Garmin Forerunner sport watch with a "row indoors" sport profile
The PM5 on a Model D is *visible* to Zwift but Zwift doesn't accept the rower data - it either produces a "no-data" message, or "0 Watts" is reported so it's clearly something they *could* offer.
To be clear: Zwift could "flip the switch" at any time and support the Model D. If they decide to do that, the whole point of this hack is moot as there would then be native rowing support.
Until/unless Zwift does that, there are several options for getting your rower to and Zwift to play nice with each-other.
What other people are doing
I'm not the first to row in Zwift, though a lot of people seem to be using computers not an Apple TV.
Check out Eric of Zwift insider's post:
https://zwiftinsider.com/rowing-on-zwift/
In the comments on that page, there's discussion of using a Raspberry Pi running Raspbian and a custom Python script to act as a bridge:
https://diana.bib.uniurb.it/pyRide/pyRide.html
That is way beyond my very out of date IT knowledge to make happen but if someone wants to build and package these, maybe there's a market. Still, I think this starts to approach the hardware cost of the gizmo I finally settled on, and the learning curve is steeper.
First Attempt - 4iiii Viiiiva Hardware
Looking for a hands-off hardware solution that played nice with my existing equipment (Android), I first tried the 4iiii Viiiiva HRM that's noted as being able to act as an ANT+ to BLE bridge for cycling sensors and indoor trainers.
Unfortunately, this was a no-go for rowing - the software doesn't have the smarts to re-transmit the PM5's data in a format Zwift recognizes. Fortunately, 4iiii's has a generous return policy and let me ship it back. Nice product with good cross-platform support though - there are configuration apps for Android and iOS and this gizmo is great if you're a cyclist dealing with ANT+ cycling sensors. (cadence, power, speed etc)
Second Attempt - PainSled Software
Next up, the PainSled iOS app. Run this on an iOS device that has Bluetooth 4.x or better, connect the PM5 via Bluetooth, and enable the "Zwift" toggle in PainSled's settings, and your iOS device will show up in Zwift.
I bought the iPod Touch 6 specifically for this but found connectivity problematic where the iPod would lose connection to the PM5 in anywhere from 5 to 20 minutes, requiring the PM5 to "poked" (exit activity, re-enter) resulting in messy activity tracking. It might have come down to RF interference from older cordless phones, microwave ovens or neighbourhood WiFi. I am in no way faulting PainSled here! The app has a bunch of great features, including a "Wattage" conversion that applies a multiplier (something in the neighbourhood of 1.25x) to your rowing power to bring it more in line with what you'd be generating on a bike.
Give this a shot and see if it works for you - maybe there's less RF-interference in your home and you won't get disconnected. The support page has some other suggestions: https://painsledsupport.com/
Third Attempt - NPE-CABLE ANT+ to BLE bridge hardware
Next up, the North Pole Engineering "CABLE" ANT+ to BLE bridging pod.
An iOS device is required to run the CABLE-Config app for initial setup of the CABLE pod. Once you've configured it, provided you don't change the sensors or devices you're pairing with it, you don't need to run the app on a regular basis. If you don't own an iOS device, you could borrow one temporarily for config, or buy a cheap old device - it'll run on devices from the iPhone 4s and iPod Touch 5 or later. (it requires BlueTooth 4.x which earlier models didn't have) NPE has hinted they're exploring the idea of a TV-OS app for Apple TV, which seems like an easy one for them give they've already developed the for iOS. Android seems less likely.
Where my iPod Touch 6 running PainSled would disconnect from the PM5 randomly from 5 to 20 minutes into a workout, the NPE-CABLE stayed connected and fed the paired Apple TV with data for a full 50 minutes, without hiccups.
- My ANT+ HRM connected to both my Garmin Forerunner watch, and to the Concept2 PM5 (advantage of ANT+ sensors: they can connect to multiple devices at a time where Bluetooth is limited to being paired with a single device).
- * My PM5 wireless is turned on and set to transmit over ANT+ using the "FE-C" protocol
- * The NPE-CABLE is connected to the PM5 and receives power, cadence, and heart-rate data all from the PM5.
I do NOT sync my Zwift account with Garmin as the kilometers would be way off - instead using the "Row Indoors" activity on my watch and manually enter kilometers from the PM5 into the Garmin activity.
TL;DR: NPE-CABLE perfectly bridges the PM5 and Zwift for Apple TV, passing along power in Watts, SPM as cadence, and heart rate (if connected).
Wattage Caveat
One thing to be aware of: rowing Wattage isn't cycling wattage. Software like PainSled has the option to apply a correction factor, somewhere in the neighbourhood of 1.33x. With the NPE-CABLE, as you'll see in the photos I took showing the PM5 and Zwift screens, if you're pulling 165Watts on the erg, you get 165Watts in Zwift.
I'm not row-Zwifting to "compete" - this is a fun way to see some virtual scenery while it's -40 outside. I've selected the name "...on a C2 rower" in game and I see other people with rowing identifiers, many with "hand-bike" as well. If it's weren't clear from the name though, if you're pulling 200Watts at 22 RPM it's probably a safe bet you aren't on bike.
An advantage of the Raspberry Pi solution I mention above is it's easy enough to apply a correction factor. For RPM, the author uses a correction of 3.3. (my 22RPM spin up EpicKOM would become a more realistic 76RPM)
For Wattage, the author of that setup is using a correction of 1.25x. Is this "virtual doping?" Does it matter? Using, say, a 4x correction would clearly be over the line but 1.25 seems similar to what PainSled was applying.
Untested Wildcard Option
OK, so I have the NPE-CABLE wireless bridge up and running but there's another option I'm considering just to see if it would work: "LiveRowing Connect" to link a PM3, PM4, or PM5 to an iOS device via Lighting connector. https://liverowing.com/store/
I have no idea if that cable supports PainSled or solely the "LiveRowing" app so i'm loathe to spend the money to find out. Does anyone own one of these and want to test it? (connect it, open PainSled and see if the app sees the rower data)
This option still doesn't negate the possibility the PainSled connectivity issues weren't with the PM5 but rather between the iOS device and AppleTV but I imagine we'd find out in a hurry. (and you could test it by going wirelessly, waiting for a dropped connection, then going wired and repeating the row)
SUMMARY
Well, there you have it - rowing (albeit slowly) in Zwift!
I posted a photo album of the process, here:
https://imgur.com/a/r7UCNKL