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

@app4g , it’s clear to me that a field I’d like to see is respiration rate once the tech provides BT/Ant broadcast to all apps. :+1:

1 Like

@Howie I did find this tho…

and based on what I’ve seen on DFA1, that’s not something I will pursue anymore

Agreed. I’m waiting for better tech, i.e. https://www.tymewear.com/

@app4g I would like to perform a test such as the 20min FTP test or similar. In doing so I would like to have all the preparation warm up laps done in ERG mode and switch to slope mode (i.e. to switch ERG off) for the 20 min portion only.
Is a command line (in intervals.icu) such as “-20m freeride 105%” interpreted by BreakAway as “switch ERG off”? Or there is another way to do it? Or do I have to do the whole workout in slope mode in BreakAway (without transfer it from intervals.icu)?
Thank you

Hi @Alessandro_Cella thanks for your question. In the current architecture for BreakAway, it is only able to do EITHER

  1. ERG Mode
  2. SLOPE mode

It is currently not able to do switching between the modes automatically. It is something which I have been thinking of implementing but as of current, it is still not implemented.

Part of the challenge is the way I have architected the App, and another is due to there being no available workout builder which is able to do the ERG → SLOPE → ERG mode switching using MRC/ERG files. (I know there is one that is doing it via ZWO file format, which I do not support)

The other challenge is also i have yet to test how the trainer behaves when given 2 different kinds of targets. eg: ERG mode… then sending SLOPE Mode command. Will it be confused?

w/ regard to the ERG/MRC file format (which does not support ERG → SLOPE), I am thinking of hacking the file format to implement this option. Something like

Typically MRC format specify it as TIME - % FTP
[COURSE DATA]
0.00 40
10.00 40
10.00 83
[COURSE DATA]

I am thinking that since most SLOPE mode are < 10% gradient, I can utilise the logic that if the %FTP is <10%, then I will use that as a SLOPE target. It Seems to be quite simple change, tho I really need to code it up and test it before I can commit to it.

1 Like

All - I’ve just finishing on 2 new features for the app.

  1. Audio Cues (@Knut_Petter_Svendsen maybe this would be beneficial to your treadmill runs)
  • Now I am able to have user preference on ability to Announce the next Intervals via spoken audio. (and also announce any custom interval cues present in the MRC/ERG file) eg:
    Prepare For Next Interval
    Power Target - 120 to 150w
    Interval Duration - 30seconds
    Keep RPM steady at 80 - 90rpm
  1. Ascenders (Karoo has their Climber, Garmin has ClimbPro) - I am calling mine "Ascender"

  • Basically what it does is it takes your FIT/TCX/GPX file (in slope mode), processes it and then classifies any climbs that it sees (some options user configurable).
  • The Algorithm is fully dependent on the altitude data from the original FIT/GPX/TCX file and knowing that barometric altimeters are also prone to weather patterns / GPS noise etc, there would invariably be some delay or errors. I also try to smoothen out the altitude and the resultant slope so it’s not too “spiky”.

eg: London, BoxHill.gpx climb Vue GPX Smoother (this is actually not as bad, some files I see spikes of 80% gradient)

Here are 2 screenshots of it. In the first screenshow, it will start to show distance to the next climb as you approach 300m to the climb, and then once you reach the climb, the chart will switch (zoom) to the climb itself. (user configurable) and the display will also show the Average Gradient of the entire climb (2.6%), distance of climb remaining (19.93km) and the remaining Altitude to climb (529m)

Tx

Hi @Raphael can you provide some feedback on the split screen feature and have your trainer connect to both BreakAway as well as Zwift or something else since your Elite Zumo has multiple BLE connection capability.

Tx

Hi @Howie I’m coming back to your HR “cap / target / Limit” request.
(Yes, i understand your request is for a “cap”, however there’s another request for “target / upper Limit” - which to me is quite similar.)

I will re-iterate this tho, the challenge for this “HR Mode” is that there is no ability to put a HR target or a Cadence Target/upper/lower limit or any other form of targets/limits within the current MRC/ERG file formats. The only way for me to do this automatically would likely be to invent some special file format (adding a new column to ERG/MRC file formats) and users will need to

  1. Manually create / edit the workout in notepad / text editor
  2. use/load workouts directly from DropBox (instead of syncing from intervals.icu) [ you will lose out on being able to see the workout “profile” as dropbox support has FIT/TCX/GPX in addition to ERG/MRC and processing FIT/TCX/GPX takes a couple of seconds and thus it’s not ideal to show the workout profile)

The other alternative I’m thinking is, currently i have this intervals.icu logo (created for a diff purpose) overlaid on the screen (moveable / draggable) and somehow use this as a trigger for “I have reached my HR Upper limit / Target / Cap” and when this button is enabled/pressed, it would switch to HR mode and use the current HR (or have a setup somewhere that says, this current HR + 5bpm) is the max HR for this intervals. Then the app will continually loop and check the average HR for the past 2min window(?) or lap HR for that interval (lap HR is a lot easier since its already a calculated data field) and then adjust the Wattage jumps automatically using the preset +/- button watt jumps.

thots?

In any case, I’m working on seeing if I’m able to get support for the Kurt Kinetic Road Machine trainer. (got a request from @Steve_Shikaze)

This is exactly what I am looking for as well for sustained endurance workouts.
The simple approach that @Howie points out would work and would not need ERG/MRC type files… Just set the HR target using the app up/down buttons and let the app control the trainer accounting for the HR lag to power. Would have to longish time windows for averaging the HR since the HR drift is a slow time scale thing. The older Wahoo Kickr app had the ERG mode on power and you used up/down buttons…… same principle…

Let me clarify, you guys are asking for another selection on the SETTINGS page for the “smart trainer mode” something like the below mockup? (the yellow addition)

When in HR mode, the Up/Dn button will be used to set the HR Upper Limit? But the app will still have ERG mode control. There will be another data field needed (called HR Target, in parallel to current Power Target data field that you will need to show on display tho)

This will still be a bit complicated due to architecture of the current system. Also, this will not be automatic switching, user will still need to press a button to go from ERG mode to HR Mode for the Up/Dn Buttons.

Possibly the best compromise I can think of right now is to use the moveable/draggable icon to toggle the Up/Dn button from ERG Watt Steps to HR bpm Steps. (possibly using the same number eg: 5w increment == 5 bpm increment / decrement) So once you’re in the interval you wish to have the HR cap, you press the moveable/draggable icon to go to HR BPM steps and you set the max HR for that interval(5bpm steps). Once in HR Mode, app will use the same steps (5bpm == 5watts) to continually adjust the ERG mode target based on the Lap HR

Note : HR Target Mode will be an “advanced option” setup. (or basically just put the option as ?use Up/Dn button for HR target in ERG mode. It won’t be something intuitive to users for sure.)

is this for Power ERG Target or for HR? AFAIK, it’s for ERG.

Speaking for myself….it is even simpler….

You are correct that there is a new mode: the HR mode with up/down steps.
In this mode, you use the up/down to set your HR target for the workout (the lower limit could be your resting HR and upper limit could be HRMax or anything).

Once you set the HR target at which you will do the workout, the app needs to adjust the watt set point (the trainer is in erg mode) to the trainer to ensure that the HR is not changing (within small error band around target HR). When the HR drifts up during the workout, the app lowers the watt set point to the trainer to bring HR back to target. You have to do this carefully since HR lags power changes by a minute or so…

Re: the Wahoo app, yes it is standard ERG mode on power. I just used it as an example to illustrate the up/down control and simplicity…

1 Like

Exactly. The trainer is still ERG controlled as usual. Nothing changes there. No new file types. The trainer doesn’t need to have any idea about who/what is triggering power changes (user or app).

Think simple: the app just acts as the user’s proxy for determining when to change the trainer power. The user sets a HR then the app keeps track of what’s going on. If the HR exceeds (for a given number of minutes) the user’s defined cap then the app decreases the power of the trainer (instead of the user having to do it). If the HR drops below the user’s set point (continually for a given number of minutes) then the app triggers an increase in power, as defined in the existing watts increments settings.

Again, think simple: it’s standard ERG mode with an app smart setting that watches for the need to trigger power changes instead of the user having to do it. Of course, the HR set point needs to be changeable during the ride. That’s why I suggested a separate +/- button for HR (assuming that HR proxy mode is enabled).

BreakAway successfully uploads completed rides to Intervals but the app is not downloading workouts, either for the day or the week.

Any guesses as to the reason?

Hi - Sorry about that. I’m not sure why that it, since it’s able to download.
I tested on my phone and it works. (download)

Could you try putting in “logcloud” and doing the “pull down to refresh” to do the download and see what gets logged into the logfile? You can either paste the output here or just send the logfile to me (app4g dot devel@gmail.com).

Is it giving any errors? Did you login (again) on another device? (intervals auth mech only allows 1 device at any time Intervals.icu OAuth support - #14 by david and have highlighted it to David) so if you did login to another device, it won’t work anymore on the previous device. (but you mentioned that it uploads fine so I’m not too sure)

How do I “put in” logcloud" and then view the logfile? I can’t find a “logcloud” anywhere in the app.

OOps… sorry… should be more descriptive:

Please enter “logcloud”(no quotes) within the SETTINGS tab on the developer Text Field (all the way at the bottom of the SETTINGS tab)

The do the “pull to refresh” to do the download.

The Logfile will get generated and will be in the HISTORY tab as a plain text file. I think it should be called as LogCloud.txt

Got it.
CloudLog. Check your inbox. :+1:

1 Like

Hi. Just posting to say I’m really liking your app. Used it for 3 or 4 workouts so far. The app/medal model seems reasonable to me, as does the purchase medal option.

Seeing as I’m posting, a bug I have noticed is that if I set smart trainer to ‘slope’ mode, the app force crashes when I click on library. It doesn’t affect me as I intend to only use ERG mode, but thought I’d mention it

2 Likes

TQ for testing and usage of this app.
I tested the version on the APPStore and yes it indeed had this bug (I thought i had it squashed) when I tested the fix some time back.

The funny thing here is, using the same Revision of code that I used to upload the the store, compiling and running it directly, the error is not present.

TQ for the report and I do roughly know where the issue is, and will fix.

Sorry for the inconvenience.

Hey,

today I tried BreakAway and had some issues.
I used my Forerunner 945 with HR belt and send the HR to my Ipad.

The Cadence Sensor dropped out really often. Because of that the time in Intervals is false?!
Another Problem is that the virtual GPS doesn’t worked.

I also had a Bike and a Run file in strava.

Normally I use TrainerDay with the same setup and there I have no problems.

Thanks for the help! :slight_smile: