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
  • Great app!

    Is it possible to differentiate between Aerobic & Anaerobic Training effect?

    Thanks

    Chris
  • Can you add function for adding special symbols or text symbols like "V" or "^" that can help
    I use this datafield 2 instances on fenix 5x in yacht racing for race timer and speed averaging for 30 sec and it is so gooood !!!!
    Thank you for hard work !!!!!
    Pavel
  • Thanks for the suggestion. Text support is something I have considered in the past, but I wasn't sure if it would be useful.

    A couple of notes:
    - Probably won't add this feature for older devices (Fenix 5X will be fine)
    - The label will remain fixed.
    - I don't want text support to conflict with FIT file recording, so the formula will probably remain numerical. I would probably add a "Custom Display Format" which would be one of two things (or a combo of both):
    1) 2nd formula (which would allow you to manipulate the result and optionally add text). This would allow you to change the text conditionally.
    2) Display format string (something like Excel, printf, or String.Format). This would let you add fixed text.

    Can you give me a specific example of how you would use text in your formula, and how you would expect it to be configured? Do you need text that's always the same or text that changes?

    Does anybody else have a use case for text?

    Can't make any promises, but I'll look into it.
  • Yes I wants make something like this
    if averagespeed 30 sec > averagespeed 40 sec write averagespeed 30 sec " ^ " else write averagespeed 30 sec " v "
    so i know if average speed 30 sec increasing or decreasing during yacht race
    I would prefer colour changing but i know that it not possible
    Thank you for hard work race timer works perfect with yours sugestions !

  • Yes I wants make something like this
    if averagespeed 30 sec > averagespeed 40 sec write averagespeed 30 sec " ^ " else write averagespeed 30 sec " v "
    so i know if average speed 30 sec increasing or decreasing during yacht race
    I would prefer colour changing but i know that it not possible
    Thank you for hard work race timer works perfect with yours sugestions !



    If this is difficult for symbols, maybe it would be easier to show messages like fast or slow, up or down, good or bad, positive or negative, etc.
  • Hey, thanks for the suggestions. There is really no issue per se with writing code to display symbols or text in the data field.Simple characters such letters, numbers, and basic symbols that you can find on a physical keyboard are doable.

    The real issues are:
    A. Fitting the code in older devices. Probably won't happen.
    B. Designing it in a way that's intuitive to users
    C. Allowing people who want to record data to the FIT activity file to also display text. This means that there needs to be 2 formulas: one for the numerical value and one for the text value.

    B and C are sort of at odds. I have a couple of ideas, though.

    In any case, I'm a bit busy right now, so maybe I'll cook something up in 1 or 2 weeks.
  • My bike is equipped with Shimano Di2 with D-Fly and my Edge 520 can read the selected gear positions. Unfortunately this data is not written to the FIT file. Would be great if AppBuilder would have variables for front and rear gear positions so these can be written to the FIT file.
  • Very useful app! Would it be possible to add a variable for the weight, like UserWeight, similar to userRestingHR? That would be useful since together with EnergyExpenditure
    it would allow to display O2 consumption in ml/(kg min).
  • My bike is equipped with Shimano Di2 with D-Fly and my Edge 520 can read the selected gear positions. Unfortunately this data is not written to the FIT file. Would be great if AppBuilder would have variables for front and rear gear positions so these can be written to the FIT file.


    This is something I can def add for CIQ2 devices, which would include Edge 520.


    Very useful app! Would it be possible to add a variable for the weight, like UserWeight, similar to userRestingHR? That would be useful since together with EnergyExpenditure
    it would allow to display O2 consumption in ml/(kg min).


    Which device do you have? Adding new variables for newer (CIQ2) devices is not too much of an issue, but I'm not sure if I want to make any changes for older devices, since memory is at a premium.

    I am still pretty busy, so I probably won't make any changes until 1-2 weeks from now, at the earliest. But I'm still open to any suggestions for improvements!

    Can't make any promises, but if/when I find some time to make changes, my list of priorities will look something like this:
    1) New variables for CIQ2 devices (95% likelihood)
    2) New features (e.g. display arbitrary text) for CIQ2 devices (60%)
    3) New variables for CIQ1 devices (30%) -- I'll only do this if I can find ways to save an equal amount of space in existing code
    4) New features for CIQ1 devices (5%) -- only realistic if I can save lots of space in existing code