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
  • This is great !! I'm using plotaroute timer to pace my mountain trail runs too and I would like to use a field to compare virtual course timer at current position vs current timer to calculate a robust AHD/BHD time... Do you think this is possible ? Because native AHD/BHD field is reset every time the GPS track is lost (which unfortunately happens quite often on a long course...)

  • Hi!

    In Plot a Route type in the ETE in each wayp.: like this: "0h25m - Bridge"

    Make a Field with AppBuilder like this: ETE_AT_NEXT: ((distanceToNextPoint_raw/timeavg(speed_raw, 60,0,1))+ElapsedTime) / 60

    You'll see in the screen: NEXT WAYPOINT: "0h25m - Bridge" and ETE AT NEXT: 0h21m,

    so you are even faster than initially planned! Grinning

  • Thanks !
    I wonder if there isn't an easier way to calculate the time ahead / behind

    When you use plotaroute the virtual partner timer is embedded in the fit file, and the timestamp for each point is used to pace the course. So if this timestamp was available as a variable in appbuilder, you could just compare your actual timer to see how much time you are ahead or behind of the virtual partner...

  • Yes, this would be great if it was possible, but I don't think it is. These are the variables I find in the doc. ciq-appbuilder.blogspot.com/.../variables.html

    Advanced navigation devices only (e.g. 935, Fenix 5, but not VA3 or 645):
    distanceToNextPoint, distanceToDestination, elevationAtNextPoint, elevationAtDestination, Bearing, BearingFromStart, CourseOverGround,

  • I guess Flowstate could add this variable to Appbuilder if it is available in the connect IQ sdk - but I have absolutely no idea if it is ! Fingers crossed Slight smile

  • Unfortunately that information isn’t available to Connect IQ apps. Thanks for the interest!

  • Bummer. Thanks anyway ! I'll try to find another way to handle this :)

  • Hello FlowState,
    another request : would it be possible to display the battery percentage remaining ? (with 2 decimals)
    It would be useful to me to do some testing for battery optimization...
    Thanks ! 

  • Hi,


    I'm trying to set up multiple data fields on an Edge 1030 screen using AppBuilder5 clones. The field I set for the first clone works fine but any I define after that using B,C or D don't display correctly.

    I've named them and added formulas in Garmin Express but they just show up as a blank field on the screen labelled AppBuilderB, C or D. I've check the formulas in the formula checker and it shows no errors. Anyone know what might be the issue?

    The fields I'm trying to set are :


    "Stopped Time" : ElapsedTime - sum(speed_raw lt 0.89408) displayed in Time (HH:MM:SS) - This works.
    "Moving Average Speed": distance/sum(speed_raw gt 0.89408) displayed in Decimal - Shows as AppbuilderB with two dashes in the field.
    "Moving Time" sum(speed_raw gt 0.89408) displayed in Time (HH:MM:SS) - ASHows as AppbuilderC with two dashes in the field.