Technogym Skillbike: smart trainer usage and trying to get useful data out of it

published (revision history)

We recently moved to an apartment building in London that happens to include a gym as a shared amenity. There’s Technogym equipment, including the Skillbike, a stationary bike somewhat capable of speaking the smart trainer ANT+/BTLE protocols. As it happens, getting it to actually do something useful isn’t straightforward, so here’s a summary of my attempts.

Table of Contents


What I’m actually trying to do:

Last but not least, it’s a “new toy”, so I also just want to try it and see if it’s any good. Many of my cycling friends already have a smart trainer and use it with one of the apps made for them.


Technogym Skillbike

Technogym Skillbike

The Skillbike is a predecessor of Technogym Ride—recently reviewed by DC Rainmaker (recommended read to get an idea what it is). They both look very similar from the outside. The display on the Skillbike is much smaller and runs simpler, less capable software. This, however, makes space for a phone holder, which is useful to run 3rd party apps like Zwift, control podcasts or watch videos. Unfortunately it seems that Skillbike’s implementation of smart trainer protocols is worse, so not all 3rd party apps work. More about that later.


Skillbike itself

The simplest thing I could do would be to just use what the Skillbike itself offers. That isn’t much, but at least it’s free (gratis) and I can watch videos on my phone while training. Unfortunately the “not think” and “get data” goals aren’t satisfied here, as it doesn’t sync into Garmin Connect.

I’m not sure if that’s because their mywellness cloud doesn’t even attempt to sync into GC and just pulls data out of it (weight, daily movements summary, …), or whether that’s because they generate a malformed TCX. I tried to fix that TCX and upload it manually. That works but unfortunately doesn’t result in Garmin’s Physio TrueUp syncing the data back into my watch, so I can’t use any of Garmin’s training features.



Garmin watch

Suggested workout on Garmin Fenix 7S

Suggested workout on Garmin Fenix 7S

Skillbike manual says that it can be connected to Garmin devices via ANT+ and to Zwift via Bluetooth, so I tried that, in that order. When the Skillbike isn’t in “Home mode” (which it isn’t, it’s in a gym), its ANT+ identification changes every time the devices dialog is opened, requiring new pairing with the Garmin and cluttering the list of sensors. What’s worse, with my Garmin Fenix 7S (firmware 8.37) the connection gets lost shortly after I start pedalling. I wasn’t able to figure out what’s wrong, and eventually gave up.

Good news is that Garmin is interested in resolving this issue, so this may be revisited, if/when time allows. There are other potential disadvantages of having the Skillbike be driven by a watch, though.




Next thing to try is Zwift. My current smartphone (Samsung Galaxy S22) doesn’t support ANT+ (the previous one, S10e, did) so I was worried this might not work at all. Turns out Zwift connected to the Skillbike over Bluetooth immediately, and everything just worked perfectly on the first try. Sync with Garmin and Strava also worked fine, so my Garmin watch started showing training metrics/features for cycling almost immediately. Good!

When I tried Zwift for the second time, I struggled to connect it with the Skillbike, but I think this may have been caused by my previous experiments with ANT+ and Garmin. After connecting/disconnecting the watch once, I haven’t encountered this issue again. Another time I tried to use Zwift, my free trial kilometers ran out, and while I was able to complete the workout (FTP ramp test), the resulting FIT file was corrupted and wouldn’t sync to Garmin. After trying some online FIT repair tools suggested by Zwift’s support, I was able to repair the file manually using FitCSVTool from the official Garmin FIT SDK.

These were hopefully one-off issues, but I still kept searching for a better alternative, because Zwift is primarily a video game made for larger screens, and I’d like something more training-focused that doesn’t waste screen space—there’s just a phone holder on the Skillbike, no place to hold a laptop. If I carried a fan, a laptop and a laptop stand to our shared gym, I’d look like a mad man.




Next on the list is Rouvy, a competitor to Zwift developed in my home country, Czechia. The main difference between the two is that Zwift is virtual reality while Rouvy is augmented reality. There are (video recordings of) real-world cycling routes in Rouvy. This slightly less game-y focus also means the user interface is less distracting, there are no virtual fans cheering me to “go go go” while I’m listening to a podcast, and as a bonus the fonts can be enlarged to be readable on a small screen. In theory, Rouvy should be better (for me) than Zwift in all aspects. In practice, I ran into several issues that I haven’t been able to resolve.

When I tried to set up sync with Garmin and Strava, in both cases it asked for permissions to pull data out of those in addition to just uploading rides done in Rouvy. I disabled those permissions, which resulted in Strava not being connected at all, and Garmin connected in a weird state where Rouvy thought it can only receive data and not upload (the opposite of the permissions I allowed), but there’s still an option to trigger the upload manually. Despite this weirdness, rides would sync to Garmin Connect just fine, often automatically. One would expect GC to then sync them to Strava (just as it does with rides recorded on the watch), but on one occasion that didn’t happen.

I reported this to them and I’m sure they’ll fix this eventually. Meanwhile, I could sync manually whenever the auto sync fails. Annoying, but tolerable, I thought, and enthusiastically changed into lycra and went to the gym to try an FTP test with Rouvy. “Cannot launch workout — unknown error occurred.” Did I try turning it off and on again? Yes, sure, I did. Time to contact the support for the second time. Apparently this is affecting more people and should be fixed sooner than the sync issues.

Well, okay, but my free trial is running out and I’m not entirely convinced I want to put it my credit card details… :-/




After having success connecting the Skillbike with both Zwift and Rouvy, I thought anything that connects via Bluetooth would just work. TrainerRoad has a reputation of being an excellent option for people who train seriously. They don’t waste time on pretty virtual cycling features and instead focus on being the best for effective training. Machine learning and all that. Sounds good, maybe I’d be able to watch a video in split screen and get the most out of the time spent pedalling.

Long story short, it doesn’t work with the Skillbike. It took several tries to connect with it (both Zwift/Rouvy connected almost immediately) and even then, it was only connected as a power meter, not as a controllable smart trainer, so it didn’t adjust resistance or set target power in ERG mode.

At this point I’ve already wasted a lot of time so I didn’t bother contacting support and just asked for a refund. I really do wish this worked, however, because TrainerRoad would be ideal for my goals. Perhaps I shall revisit this later.




There’s an alternative to TrainerRoad from Wahoo: formerly called the Sufferfest, now Wahoo SYSTM. On paper, it should be more or less the same style as TrainerRoad: no-bullshit training focused app. In practice, it’s indeed the same—only treats the Skillbike as a power meter, but cannot control it.

Unlike TrainerRoad, they responded to my feedback with a note saying that getting this working likely involves some help from Technogym, and that they’d be glad if I complained to those as well. And that I can get in touch so we can work together on resolving this. If/when time allows, I might…



Wahoo RGT

Wahoo RGT, a recent (2022) acquisition of theirs, is a virtual cycling game like Zwift. I managed to log into the app exactly once, but when I changed into lycra and made my way down to the gym, it started crashing, and no amount of force stops and reinstalls would help.

Another half an hour of standing in the gym with a smartphone in my hand, having others ask me whether I’m waiting for the equipment they’re currently using… I did end up looking like a mad man after all, it seems. Can’t be blamed for not following up with Wahoo’s support, can I? :-)



Skillbike itself revisited

I think I’ve tried everything but still don’t have a winner:

Well actually, there’s one thing I haven’t tried yet…

In the short time I had outside of standing in the middle of a gym with a phone in my hand, I did a little experiment: if Physio TrueUp won’t sync the fixed TCX to my watch, what if I upload it there using a USB cable? Didn’t work either. Actually, not only were training metrics not updated, the watch didn’t show the activity at all. A-ha! The watch doesn’t understand TCX, what if I gave it FIT instead?

A weekend of hacking later, I had a Python script that loads the not entirely valid TCX file from Skillbike/mywellness and uses the Garmin FIT SDK (via jpype, a cross-language bridge to allow using the Java library directly from Python) to generate a FIT file with faked source as Zwift to trick Physio TrueUp into syncing it to the watch:

And guess what? It worked on the first try! (Except for a little mistake in timestamp conversion. Syncing a ride 20 years in the future wiped the training metrics from the watch, so I had to ride some more to get them back.)




After having spent a weekend hacking the TCX→FIT conversion tool, I’m obviously a victim of the sunken cost fallacy and will prefer riding the Skillbike workouts for some time. Objectively speaking, however, learning about FIT and jpype was worth it anyway, and I will reevaluate some of the mentioned apps later. Perhaps some of my friends will nudge me into riding Zwift with them in winter, and I’ll revisit the option of strapping a tablet onto the Skillbike. Rouvy may well fix all the problems by that time, too, and we can ride there instead.

Until winter, DIY Python script it is, though!

(Also, now that I know how to generate a FIT file, I can try to sync Skillrow workouts as well. Those are only visible in the mywellness cloud, however, so it’ll be more involved than just downloading a TCX from Strava.)

Appendix A: Technogym/mywellness apps and logging into the Skillbike

In order to not disrupt the post with unimportant details, I didn’t mention one other hurdle when connecting the Skillbike with external devices. Despite its instruction manual claiming otherwise, it’s necessary to log into the Skillbike using a mywellness account before the devices dialog can be used.

At first, the Skillbike was offline, and thus useless. Fortunately, the manual documents how to access the hidden configuration screen and I managed to connect it to WiFi.

Then, there are two apps which can be used for the login:

I didn’t even try the first one. The second one works, although only using the QR code (a fallback), not using NFC/Bluetooth (which is what the app tells you to do). A sub-4.0 rating is well deserved.

That being said, there are some cycling training plans in the app, so perhaps it can be used to load more interesting workouts onto the Skillbike. My wife successfully managed to let the app launch a treadmill workout (although she couldn’t really choose what workout…), adjusting the speed and incline throughout, so it’s not entirely useless. I’ll experiment with this later, once I no longer feel bad for playing with my phone in the gym. :-)