BreakAway: Indoor Training App Now with Intervals.icu Calendar integration (Workout Of The Day)

Supports 10 minute scrolling zoom.

1 Like

Curious, did you do the workout in Portrait Mode or in Landscape mode? Landscape would provide a weee bit more space and the graphic would be a weee bit less compressed.

I typically like to see the entire workout view as sort of an “overview” and “how much I’ve progressed” vs a zoomed in view, but it’s something to think about as an option for users.

Buddhist thought says: “The past has passed, and the future is in the future. We should pay more attention to the present.”

:rofl:

Hi @app4g ,

Sorry if this was already explained (could not find it or understand it)… but the resistance mode is not clear for me, I don’t see the difference between slope mode and resistance mode (both use gradient %), please can you guide me or give me a link where this is explained in more detail?

  1. What is exactly resistance mode and how it works? It does not use “steps” like other software but instead uses % although if this is a slope %? How it differentiate from slope mode? (In free ride not with a route)

I know slope mode uses my weight and send the % to the trainer but does resistance mode use weigh too?

  1. Can I create a workout in Intervals using only (full) resistance targets? I want to do a ramp test using resistance mode that changes between intervals and do not want to use ERG mode not auto switch between modes or similar.

Thank you in advance!

I think this explains Resistance Mode. That’s where I first know about it - BreakAway: Indoor Training App Now with Intervals.icu Calendar integration (Workout Of The Day) - #131 by app4g

This was how @SaSha1103 explained it to me initially.

in slope mode, you are using an outdoor ride and riding it indoors w/ all the different gradients similar / same as that of outdoor. (BTW - now you can control the trainer realism as well - BreakAway: Indoor Training App Now with Intervals.icu Calendar integration (Workout Of The Day) - #158 by app4g)

In Slope in Free Ride Mode - Basically, no graphic to follow the target power.

Currently this is already possible using ERG+SLOPE mode. (Slope Based Structured Workouts Now Supported (BreakAway: Indoor Training iOS)) but the downside is there is no graphic of the target power.

I will be adding this possibility later on… (again as a hack - I’m thinking doing something like %%Slope 2%% to indicate this interval is using resistance)

right now, the semi solution is to define your workout, then use resistance mode and manually change it PER interval if needed.

Thank You @app4g,

As far as I understand then, Resistance Mode is the same Slope Mode in Free Ride with the Graphics?

Question 1:

Breakaway can sends to trainers:?

  • Target Power
  • Target Grade or Slope %
  • Target Resistance %

Question 2:

Please correct me if I am wrong: (simplifying)

  • ERG Mode: Breakaway sends the target power to the trainer, then trainer sets resistance to match the target power and user has just to pedal (does not matter gear selection). User can use up and down buttons to modify the target power.

  • Slope Mode in Simulation Mode: Follow a pre loaded GPS route with its climbs and descends and with its simulated grade % according with the file uploaded (allowing to control the realism % for up and down). User control power using gears according with simulated terrain.

  • Slope Mode in Free Mode: Breakaway sends to trainer a target grade % to simulate a climb with that grade %. There is no graph of any workout to follow here… User can use up and down buttons to modify the target Slope %. User control power using gears according with simulated grade %.

  • Resistance Mode: Breakaway sends to trainer a target resistance % based on the resistance for each trainer’s power maximum? (Thats mean 1-100%), or is resistance mode based on grade %? . Here there is a graph with the workout to follow. User can use up and down buttons to modify the target resistance %. User control power using gears according with the target power is looking for.

  • HR Mode: Breakaway sends to trainer a target resistance depending of the HR of the user to match the target HR of the workout. User has just to pedal.


My Opinion:

  1. If Resistance Mode uses Slope % to control trainer, then is kind of redundant with Slope Mode in Free Ride but with workout graphs and initial slope %…

  2. If Resistance Mode uses a % range of trainer’s power then it does make sense to me but the word “slope” in the app confuse me…

  3. Maybe I am wrong but I would think, TR uses Resistance Mode with a % of trainer’s maximum power or something similar, e.g. if resistance is set to 50%, and I am using a Tacx Neo with 2200 watts maximum, then it would set a resistance simulating 1100 watts that could vary according with the gear selection… Of course, 50% is very very high to begin… Normally ranges in resistance mode are 5-30% depending of the trainer.

Just to clarify… I am a happy user of BreakAway, just trying to understand well how it works and give my opinions if can help to improve the App a little bit. :+1: :clap:

Maybe I am very wrong, sorry if this is the case!!!

Great Questions and I must say you’ve summarised it extremely well. I"ll try to add on some clarifications to your Qs.

Q1:
BreakAway sends

  • Target Power
  • Target Slope %

Q2:

  • ERG Mode
    You are absolutely correct in your text

  • Slope Mode in Simulation Mode
    You are absolutely correct in your text

  • Slope Mode in Free Ride Mode
    You are absolutely correct in your text

The difference between Slope Mode in Simulation Mode vs Slope Mode in Free Ride Mode essentially boils down to the on-screen Graphic. With a pre-loaded GPS route, you can see the graphic w/ the

  • color coded climbs gradient
  • Ascenders functionality
  • Map overlays of your route and your current position on said route
  • Resistance Mode
    There are 2 methods to do Resistance Mode (based on my understanding of the Bluetooth FTMS Specs)
    • Resistance
      In this mode, AFAIK the trainer will have a set of resistance they offer(eg: min:0 max:200 inc:1). Much like a Target Power (eg: min:0 max:4000 inc:1). There is no data that I know of that translates what a resistance of 200 is equal to. It can be linear eg: 0 = 0w, 200 = 4000w or some other method. I don’t know.

    • Slope (%)
      In this mode, the trainer will use the simulation parameters sent to it (rolling resistance, wind speed, gradient etc) and do some internal calculation.

To me, essentially Resistance Mode == Slope Mode(Indoor Bike Simulation), hence Currently in Resistance Mode, BreakAway sends the Slope %

  • HR Mode
    You are absolutely correct in your text

Yes and No.
Free Ride Mode → Resistance Mode == Slope Mode
NON Free Ride Mode → Slope Mode = Slope Simulation Mode & Resistance Mode == ERG Style Workout w/ graphic but using slope % instead of target power.

If you’re on NON Free Ride Mode, then there will be a difference. Otherwise it’s the same.

Resistance Mode has 2 modes actually.

  • Resistance using a “level” (similar to those dumb trainers w/ the resistance knob of level 1/2/3/4/5 etc)
  • Resistance using Slope %

BTW - i think the Indoor Bike simulation mode (slope simulation mode) is a new addition. Previously trainers only have resistance mode hence i believe that resistance mode is the “more supported” option esp for older trainers.

Unfortunately I do not have a TR account and I can’t test it (I already used up 2 email logins to get the free trial), but I think you’re right.

You may be correct, but I have no idea because this is not documented.

I hope i’ve not confused you w/ too much text…

Thank you!!! @app4g

Now it is clear for me, basically you confirmed my point with this:

My confusion lay because I thought Breakaway sends both methods of Resistance Mode (Resistance “levels” and Slope “%”) but now it is clear that so far, Breakaway only uses the Slope % one.

My Garmin Edge has the whole 3 options to control my Tacx Neo (ERG, Resistance using levels and Resistance using Grade or Slope %), that is why I thought it was kind of “standard” for any software that control trainers… my bad!

I will try Resistance Mode with a workout to check how it works with my trainer…

I have tried the resistance mode (switched manually after loaded and began a workout in ERG mode), it worked very good as a way to have visually a target for power and intervals changes of the workout. :ok_hand:

The only issue I had was that the Slope % used was not real for me… in order to get power targets of 160w I had to use a 14% Slope (middle of cassette) and to get 240w-260w I had to use a 16-18% and change the gears down (harder)… I have moved the slide bar for realism to 100% (just in case) but same behavior… I think 14-16% is very high slope %, don’t know why this happen with may Tacx Neo.

This is a problem for me because when I have a planned Interval’s workout using mix of ERG and Slope targets to switch automatically, targets below 10% (to switch from ERG to Slope) did not give me a real resistance, it changes between mode yes, but the slope % is too “soft or easy” with a 10% or below…

Does not work for me the realism of the trainer in Slope mode :expressionless:

To Confirm, your trainer is a Tacx Neo and It’s connected as FEC or FTMS? (Can you please check?)

My Own Trainer is FEC only, so it’s easier for me to debug and figure out. And on my trainer, the slope % works). I will check on my end on the Trainer Realism to see if I screwed something up when implementing that. (edit: Seems like trainer realism at 100% is == 100%)

Your tests are done w/ a Structured ERG Workout but in resistance Mode correct? (Not Free Ride mode). Also - are you on the App Store Release or the BETA? Would you mind going on the BETA to help sort this out?

Only thing I found (at least for FEC) is that I’m not sending a specific rolling resistance to the trainer. I’m using the default. (specs says = 0.004crr). I wonder if The Neo programmed the default to something else.

I’m changing this to to 0.004 explicitly in the BETA

btw - Is there any difference when doing an actual Outdoor Slope workout? (GPX / FIT etc)

@SaSha1103 reported that his experience using Resistance Mode was Good w/ the slope values (but he didn’t mention what slope % was used for his workout) - can you share? He’s using a Wahoo Kickr.

Let’s see how to fix this. Else, will be the second “hack” to do ERG+SLOPE w/ proper visual graphic…

TX

Thanks for your help!

Yeap, it is a Tac Neo Smart (v1) and I thought is FTMS because it is a connection via Bluetooth from my iphone to Tacx Neo (as far as I understand FEC is an ANT+ protocol and FTMS a BLE one?). Please let me know how to confirm… I get confused with this…

Actually, I have tested both… resistance mode with and without a workout loaded. Same behavior with the slope % realism…

I am using BETA version at this moment…

Slope mode in simulation is the same, I tested already… The simulated grade % is too “soft” when climbing.

Yes you are right… FTMS is the official Bluetooth connection to Smart Trainers. (FEC is ANT+, but some trainers, like mine, uses a modified bluetooth connection called Bluetooth Over FEC) so I just name it as “FEC Smart Trainer” and “FTMS Smart Trainer”. There’s also “FECw Smart Trainer” which is Wahoo’s own extension to cycling power to make it controllable.

You can check via the /SETTINGS page at the “connected sensors” location.

Great… you’re on BETA… I’m literally testing it now (on my bike+trainer) and it just works… I can feel the difference between 1% and 2% Slope. (and I can feel between 0.0 crr (no rolling resistance) vs 0.0127 (possibly like roubaix kind of road?) and I’ve set it at 0.004 which is the default put in the Specs)

BUT, having said that, when I put it crr as default on my trainer, i can also feel the diff between 1% and 2% Slope. So maybe it’s down to Trainer Differences and what default they set. (either not follow bluetooth specs or I’m interpreting it wrongly)

New Beta Will be Up Soon. (another 1++…2+ hr) after my test ride…

Do you also use powerMatch? I have a new version of powerMatch algorithm (Still Tuning, esp on new intervals. The initial Offset is too much, need to clamp it down at least for the first 5-10secs) which looks to be more responsive. Would be great to get inputs as well.

I’ve also fixed some reported bugs. Not sure if it’s you, but when workout is started, You’re not supposed to be able to switch from SLOPE (Slope simulation mode) to RESIST mode even in Free Ride Mode. This crashes the app because of VirtualGPS)

Thanks @app4g ,

My Tacx Neo supports FTMS, so I don’t know why it shows FEC :man_shrugging:t2::

I am not using powermatch for my tests… Have both power meters but without matching.

Yeap, I had this bug yesterday, it crashes the app.

————————————————————

I can feel the difference below 10%, but the resistance is not real, I have to use very high slope % to get the right feel, I am doing another test right now…

Your NEO likely supports Both FTMS and FEC(over bluetooth). I’m choosing to only select FEC if it’s available as (I hope) it’s easier to debug since I also have this FEC type connection.

One way to really confirm is to do “loglevel10” (no quotes) in the box marked as Developer in the /SETTINGS tab. Make sure you turn OFF your trainer first. Only turn it on AFTER putting this into the Developer box.

It will generate a log file after a few moments (once it connected to your trainer), the log file would be in the /HISTORY tab. YOu can click it (log_debug.txt) and email it to yourself. It’s a plain text file and you should see some connections to your trainer…

1818 = cycling power
1826 = FTMS
xxxFECxxx = FEC over Bluetooth

if it has 1826 and FEC, i will select FEC

So it’s really true that the NEO needs a specific default for CRR.

let me know how it goes w/ your other test.

edit: YOu’re on the latest BETA version from TestFlight right? Should be 68.3 I think… aargh… just realised i didn’t finish submitting it…

so given that i’ve JUST only submitted it, i"m now wondering how come <10% you can feel now vs previously it was 16%. Even so… it’s weird when I can feel the difference between 1% and 2% and you need >10%

anyways… give the new version a try. This is w/ a specific CRR being sent as well.

Got it!

This is my log file as per your instructions: (I’ve just connect and disconnect the trainer…)

################################################################################

20230407-125501 VDA Ver:68[3][EA973C57-C4F0-4CB6-8F3A-0CC4D93A79CA]

################################################################################

BT didDiscover :sNAME:Tacx Neo 39043 sID:8A20A8C7-1C02-242A-C22E-5CBFD8A4B9D4 sSVC:[1818, Cycling Speed and Cadence, Device Information, 6E40FEC1-B5A3-F393-E0A9-E50E24DCCA9E] blackListed:false
– <<>> Connected UUID:8A20A8C7-1C02-242A-C22E-5CBFD8A4B9D4, Tacx Neo 39043

Smart Trainer [Cycling Speed and Cadence, 1818, 6E40FEC1-B5A3-F393-E0A9-E50E24DCCA9E]. Connect To

serviceTacxFEC
Found 2 characteristics for 6E40FEC1-B5A3-F393-E0A9-E50E24DCCA9E:

6E40FEC2-B5A3-F393-E0A9-E50E24DCCA9E: properties contains .notify
6E40FEC3-B5A3-F393-E0A9-E50E24DCCA9E: properties contains .write
6E40FEC3-B5A3-F393-E0A9-E50E24DCCA9E: properties contains .writeWithoutResponse

Processing 6E40FEC2-B5A3-F393-E0A9-E50E24DCCA9E Tacx Read char ------- Subscribing
Processing 6E40FEC3-B5A3-F393-E0A9-E50E24DCCA9E Tacx Write char ------- Set Target Power to ZERO

<><><><><><><><>>><><>><><><><><><><><><><><><><<><><><><>
<><> uWeightLSB:60 uWeightMSB:0
<><> Sending userWeightKG:60.0 [6000.0]
<><><><><><><><>>><><>><><><><><><><><><><><><><<><><><><>

– populateFoundBTArray - connectedBT i:0 name:Tacx Neo 39043 UUID:8A20A8C7-1C02-242A-C22E-5CBFD8A4B9D4 Desc:FEC Smart Trainer Paired:true
– populateFoundBTArray - BT Device Whitelisted
– btWhitelistUpdate - btWhitelist:[[“FF7E7FEE-4712-B50A-4632-F31DD667F067”, “Heart Rate”], [“E523D4FF-A853-8751-64AF-46189A2CEB00”, “Heart Rate”], [“3A69BBFA-E1FC-F5C5-23EA-47ECA147CD15”, “Heart Rate”], [“F05724BA-B941-7BDD-7C53-8394EC52936D”, “Cycling Power”], [“D492A3BB-A686-EA14-E349-D55C199F95F9”, “Heart Rate”], [“D7E5D872-EECF-80DB-379E-E768838AF3ED”, “Heart Rate”], [“8A20A8C7-1C02-242A-C22E-5CBFD8A4B9D4”, “FEC Smart Trainer”], [“22619CE3-2453-0FDC-BD46-18BDED666B08”, “Heart Rate”], [“D65238F0-CD43-BB39-6867-7F0BDA46E08B”, “Heart Rate”], [“E0D45721-7BE6-AEDC-48BF-60CA4DC03B35”, “Heart Rate”], [“CA409705-2653-0593-655C-72E65783827A”, “Heart Rate”], [“F2E3AE5D-79D9-815F-0EA5-1CCC11FBFBB6”, “Cycling Speed and Cadence”], [“3E6385D3-307B-9166-3672-52131A8FBF5E”, “Heart Rate”], [“0A8D0DE0-E5D4-7B6F-6DB1-119DB1E02500”, “Heart Rate”], [“62FBDDD6-72F5-38B6-1BB0-624A328143BB”, “Heart Rate”], [“C63EDE2C-A975-4DCB-04E4-EE8A0397549C”, “Heart Rate”], [“D0A79A1E-90E0-5AF9-A554-3ACAD5A6C484”, “Heart Rate”]] btBlackList:[]
– btBlacklistUpdate - btWhitelist:[[“FF7E7FEE-4712-B50A-4632-F31DD667F067”, “Heart Rate”], [“E523D4FF-A853-8751-64AF-46189A2CEB00”, “Heart Rate”], [“3A69BBFA-E1FC-F5C5-23EA-47ECA147CD15”, “Heart Rate”], [“F05724BA-B941-7BDD-7C53-8394EC52936D”, “Cycling Power”], [“D492A3BB-A686-EA14-E349-D55C199F95F9”, “Heart Rate”], [“D7E5D872-EECF-80DB-379E-E768838AF3ED”, “Heart Rate”], [“22619CE3-2453-0FDC-BD46-18BDED666B08”, “Heart Rate”], [“D65238F0-CD43-BB39-6867-7F0BDA46E08B”, “Heart Rate”], [“E0D45721-7BE6-AEDC-48BF-60CA4DC03B35”, “Heart Rate”], [“CA409705-2653-0593-655C-72E65783827A”, “Heart Rate”], [“F2E3AE5D-79D9-815F-0EA5-1CCC11FBFBB6”, “Cycling Speed and Cadence”], [“3E6385D3-307B-9166-3672-52131A8FBF5E”, “Heart Rate”], [“0A8D0DE0-E5D4-7B6F-6DB1-119DB1E02500”, “Heart Rate”], [“62FBDDD6-72F5-38B6-1BB0-624A328143BB”, “Heart Rate”], [“C63EDE2C-A975-4DCB-04E4-EE8A0397549C”, “Heart Rate”], [“D0A79A1E-90E0-5AF9-A554-3ACAD5A6C484”, “Heart Rate”]] btBlackList:[[“8A20A8C7-1C02-242A-C22E-5CBFD8A4B9D4”, “FEC Smart Trainer”]]

Right, from TestFlight… I did tests with 68.2 (I think so), I mean the previous one…

My tests with previous version int TestFlight:

First thing I have to say is that if I use a very hard gear (almost the smallest one), of course the feeling is more “real” than using the middle of cassette’s cog but for sure in the real world, I will never use that gear for a similar climb jeje. I don’t know if this is an issue of my trainer, maybe the software is OK but my trainer is not?

I did a ramp test using only slope mode in free ride mode: In the pictures you can see the power I’ve got and the simulated slope %… I must say, always use the same gear, no changes at all and in the middle of cassette (some similar as if I was doing a real climb):









Now testing with last version 68.3 (only two steps as I already finished my workout today…):


Kind of similar behavior between both versions…

Yeah… YOur NEO doesn’t support FTMS…

Thanks for the screenshots… It really doesn’t work on yours for some reason while it works on mine… when I’m on say 2%, I am already on the small chainring in front and like 19 at the back to push… definitely not large chainring and smallest sprocket at the front (13 tooth maybe?)

I presume that when you do a 2% slope on using your EDGE unit it feels accurate? What about when using Zwift?

I tried to sniff the bluetooth packets from Zwift yday when connected to my FEC trainer and it’s sending the same thing I’m sending (and it’s using the default CRR!)

would you mind sending me the log file? app4g.devel at gmail.com if you did log the entire ride.

actually 2 steps is more than enough and just 1min is also more than enough to test if it feels ok etc.

let me know about zwift and using your edge…

The bike I have on Trainer is single chainring in front… but for me I have to use 12 or even 11 tooth back…

I did not use Zwift more than than one year ago jajaja, so I’ve tested both:

Garmin Edge:

Zwift:

As you can see both works pretty good, actually with 100% difficulty in Zwift is harder than reality Jajaja :rofl:

I mean, I really feel the slope with both and they made me to push harder according with slope and most time was not close to 10%… Actually I had to use big cogs (28 tooth) and push hard.

That’s mean, it is not my trainer… because it works with Edge (Ant+) and Zwift (BLE).

I made another test with my Edge unit, testing the “resistance mode” option and it works good too:

It has 10 levels from 0-10 or 0-100% (every step is 10%)

With first steps it changes a lot the resistance…

Sent, thank you :+1:t3:

Tried to get a power between 130-160w today… so you will see several changes in slope during the 1h ride… sadly always more than 12% with BreakAway.

1 Like

Doesn’t surprise me. They likely have an actual unit to test and play with ;-p
BTW, on your Garmin - it says “relacion de marchas” which translates to Gear Ratio

How did you manage to set it to 2.73? How do you know? is this default or something? I’m fairly sure you didn’t input into Zwift right?

At least one thing which has been establish is, it does work, but unrealistic… so that’s still a “plus” :-p. Maybe can consider it as “resist” mode instead… lol…

I wonder if somehow these trainer apps are able to query the trainer to see if it supports GRADIENT, and if not, it sends a calculated (weight + gravity etc) wattage.

I think I will do a beta on sending RESISTANCE %, maybe using the downhill trainer realism as the slider, as a HACK just to see if it works/works better.

Thanks for the logs… didn’t help, but did confirm that trainer realism slider is at 100%