Data Field: AppBuilder

By user request, this app lets you define your own data field, based on a simple math formula like cadence / 2.

If you want to get fancy, there's conditional expressions (like IF in Excel), functions for data analysis (like MIN and AVG), and the data field can also display the text of your choice. The resulting data can be (optionally) written to the activity FIT file.

With AppBuilder, you can implement almost any field that involves math, such as: calculating normalized power and saving the data to the FIT activity file, showing the average pace for even-numbered laps, or recording the amount of time you sprinted.

Full documentation and examples here:
http://ciq-appbuilder.blogspot.com/

AppBuilder 5:
Now with new features! AppBuilder 5 is a completely new app, so please check it out in the store if you are interested in any of the new features.
https://apps.garmin.com/en-US/apps/fd690281-9c22-4fee-a81e-3b7f39aa67c5

- Store up to four formulas per app. Switch between formulas directly on the watch, without using a phone or PC. With four clone apps, you can store up to 16 formulas total
- User variables. Allows for powerful formulas where information can be stored at one point, like the start of a lap, and used later. e.g. Lap elevation change
- Improved timeavg() options. Allows for simpler, more flexible normalized power function
- More functions and variables

4 clones of AppBuilder are available in the store, so you can have 2 formulas in the same activity
  • Hello,
    After months (years ?) of struggling with Garmin's virtual pacer, I think I have finally managed to get the data field I was looking for with AppBuilder (so thank you FlowState!)

    I have been looking for a simple, yet reliable way to calculate the time ahead / behind compared to the pace used for calculating time barriers on ultra trail races (may vary, but usually 4 or 5 km/h on mountain races).

    The following formula gives the time behind a virtual pacer, at your current position, based on a (unique) variable set to the time limits speed (here, the value set to 4 km/h but you can change it to what you want). Negative value of course means you are ahead.

    ((distance/avg(speed))-(distance/4))*3600


    I tested it and it seems to work fine, if I have some time to dig into the code I'll try to split the formula to manage courses with time limits based on different paces.

  • App is simple to setup, thanks a lot for doing this.

    I’m using an Edge 1040 solar. I’m not seeing a way to add more than 1 field on a data page per clone of AppBuilder, so I think I’m limited to 1 field per clone, correct? I do see the ability to add up to 4 formulas per clone, but when adding the field via Data Screens I’m only able to add the first field of each clone. Any guidance is appreciated!

  • Is it possible to alternate between 2 words being displayed in the data field, changing when the lap button is pressed? Maybe even inverted (black background, white text) on one of them? 

  • Backgound no, but with formula based on if lap is odd or even, you can change what is displayed.

  • That's not going to work, the pause is still part of the lap, I want it to distinguish between active phase and pause.

    There seem to be timer functions that can start when in a pause or active phase, I would like a custom text instead of a timer based on the activites state. 

  • I was writing a reply with an example of what phoglund suggested but (after being called away for a bit), hit send then saw your response (so deleted mine).  I'm not actually clear on what you are asking for as you originally just talk about changing displays when lap button is pushed but have now added in a pause? I think there are a lot of limitations on actions that can be done when paused.  i had requested years ago the ability to monitor speed while paused and set a warning if it looked like you had started running but forgot to unpause and it was not possible,

  • I just tested the pause timer but it does not engage when paused only when stopped.

    Yes I want a datafield that can tell me if I'm in the active or paused phase of a training, like with some native apps the screen invertes when paused, I want a text telling me.

  • Ok, you didn't ment lap button, you ment start/stop button.

    Try use timer value and check if last second value is the same as new value. If they are the same, then you are in pause. Probably there are other solutions. 

  • No I mean the lap button, that's used to switch through the training stages. 

  • Ok, rest in strength. If you always have one active and one rest following one another,  then you can use.

    This is a simple one that I've used that show Act=1/Rest=0 (I don't remember why I wanted to div with max(timer). Some kund of average active time...)

    recordsummary(sum(getv(1) eq 1)/max(timer)); setv(1,(Lapcount+1) mod 2)