I did a indoor ride on the trainer (Fulgaz), and recorded the ride with my garmin 530. The uploaded ride from the garmin is using the indoor ftp. I have also uploaded the fti-file which Fulgaz sends after every ride. But this ride uses the the outdoor ftp value. Why?
The Garmin one has “cycling” and “indoor_cycling” in the .fit file whereas the Fulgaz one just says “cycling” and “generic”. You could log that as a bug with them.
When I create my FIT file for my app, I initially used
sport - cycling
subsport = indoor cycling
but this didn’t work well when uploaded into strava. For Strava, I am using Virtual Ride (as it’s an indoor virtual ride) such that the “fake” gps won’t interfere w/ any of the Strava’s KOM/LeaderBoard/Segments stuffs. When using subsport = indoor_cycling, Strava will use that and then i will get that ride into Segments etc (not good)
I ended up having to remove the subsport and just use cycling.
There’s no difference for Garmin Connect(there’s no virtual ride option for GC), only for strava.
I’ve yet to figure out how to mark a ride as a VirtualRide within the FIT file. (Virtual Ride is a Strava moniker I think)
Example w/ subsport=indoor_cycling
There is a subsport: VIRTUAL_ACTIVITY((short)58)
Intervals.icu will make a “Ride” a “VirtualRide” for that. Additional Intervals.icu heuristics to set the “trainer” (indoor) flag:
if (activity.type.contains("Virtual")) {
activity.trainer = true;
} else if (sub_sport != null && sub_sport.name().contains("INDOOR")) {
activity.trainer = true;
} else if (!hasLatLng && (at == ActivityType.Ride || at == ActivityType.Run)) {
activity.trainer = true; // assume indoor if no GPS data
}
Thanks for this. I missed this entirely. It was marked as “virtual_activity” hence I didn’t even think it was applicable. Fixed it now. This way, when uploaded to Strava (manually) and to intervals.icu, it will automatically use the indoor_ftp number.
BTw, for this, I know of some people who uses GPS during their indoor trainer session. Hence, there would be GPS data. (instead of choosing indoor ride, they choose “ride” not sure if it’s a lack of indoor profile or basically just didnt bother)