Quickstart
Overview
AppBuilder is a data field that you add to a built-in sports app on your Garmin device, such as running or cycling. It adds information to your sports app, it doesn't replace it. Unlike most apps in the store, AppBuilder doesn't do anything on its own (except display Cadence divided by 2, if that's the kind of thing you're into.) AppBuilder basically allows you to display anything you want, provided you know the formula (and it's not too complicated.)
"cadence / 2" is a basic example, and the reason this app exists. Another example would be "8-second power average": timeavg(power, 8)
Or elevation change (based on the difference between total ascent and total descent):
totalascent - totaldescentIf you look at some of the examples they probably almost look like the math we're all familiar with from high school, but with a twist: much like Excel, AppBuilder has its own special functions for averaging data, adding it up, or taking the minimum or maximum values, for example. AppBuilder also has its own variables, which represent Garmin activity data such as Speed, Power or Cadence.
Once you learn how to use the functions and variables (by looking at the examples and reading the rest of the documentation, you can create almost anything you want.) The only limitation is that the formulas can't be too long or complex, unfortunately, due to platform limitations. Despite AppBuilder's name, you're not gonna implement the next Strava Routes, dwMap or Dozen Run inside of AppBuilder, unfortunately (I wish!).
Getting Started
- Download AppBuilder from the store
- Decide what formula you want to use. For example - 5 second average speed: timeavg(speed, 5)
- Set up AppBuilder:
- Open the Garmin Connect app on your phone
- Tap the picture of your device near the top of the screen
- Tap Activities and App Management
- Tap Data Fields
- Select AppBuilder
- Make sure AppBuilder is actually installed. (Sometimes when you download a Connect IQ app from the store, it doesn't install fully until you tap Install in the Garmin Connect app.)
- Select Settings
- Under Profile 1:
- Set the label you want to see (e.g. Speed5)
- Paste the formula you want to use. e.g. timeavg(speed, 5)
- If you want to record the data to the FIT file, so you can look at it in Garmin Connect later, go ahead and check that box
- Save your changes
- On your watch, add the AppBuilder data field to your running, cycling or other built-in sport:
- Open the sport (e.g. Running)
- Hold UP for Settings
- Select Run Settings
- Select Data Screens
- Select a data screen with an unused field
- Select the field you want to use
- Select ConnectIQ Fields
- Select AppBuilder
I have a Garmin 920XT and it seems I can only have one formula. When I go to settings on the app I dot get the "Profile 1" option it just goes straight to the formula window where I can program the window and save it. Please advise.
ReplyDeleteMultiple profiles are only available for CIQ 2 (and higher) devices, such as 645, 735XT, 935, Vivoactive HR, VA3, etc.
DeleteSorry, I should've made that clear on this page.
This app is really great. When the data shows up in the connect app, it seems to label it "AppBuilder 5" rather than the name given to that profile. Am i missing something about how it works.
ReplyDeleteThanks! Unfortunately, due to Garmin limitations, the label for the activity data is fixed when the app is submitted, which is why it says "AppBuilder 5". If you look at the summary, the label should be displayed there under the field called "Label".
DeleteFantastic app. I have a Fenex 3 but considering upgrading to get the most out of this app.
ReplyDeleteThanks! Glad you like it.
DeleteI want to create a data field during multisport (swimrun) that is the summary of all the swims and runs during a session. Can this be done with this app builder? In swimrun you swim-run-swim-run-swim..... There is today a Multisport Time field, but no Multisport Distance AFAK...
ReplyDeleteHi. I know you said about ANT+ sensors, but I was wondering about the Tempe sensor as F5 etc have an internal temperature sensor. Is temperature data available?
ReplyDeleteThanks
Hi, do you plan to support the vivoactive 4/4s watches? Your app seems great!
ReplyDeleteThank you
Thanks! Sorry for the very late reply, but VA4/4S are supported by AppBuilder 5.
Deleteis it possible to show the best avg heart rate for 20 minutes or any other pre defined interval ?
ReplyDeleteSorry for the late reply.
DeleteIf you mean the "best 20-minute average HR", then yes. (i.e. I assume the period of time applies to the average and not the best value.) If you mean "best average HR in the last 20 minutes", then no.
The formula for 20 minutes would be:
MAX(TIMEAVG(HR, 20 * 60))
Note that this takes a bit of memory and may not work on lower-specced watches.
I'm working on a speed via power formula. Trying to build up some sort of rolling average for coast time plus instant speed. Here's where I am at so far.
ReplyDeletetimeavg(power, 14)*0.08+6
This works fairly close it's a bit fast but with some minor tweaks could be better.
I've been trying to make it two parts short term+long term to get a instant speed with coasting factor in this way....
timeavg(power, 3)*0.18*0.8+timeavg(power, 10)*0.06*0.2
But I'm considering using the newer prevn function....
timeavg(power, 14)*0.08+6+prevn(power,5)*.07
Update! Threw the polynomial out the window for an exponential function.
Deletehttp://www . xuru . org/rt/PowR.asp
Here's my Data(Power,Mph):
60 12
80 14
90 15
125 16
174 19
190 21
1500 38
Resulting in :
3.04367*timeavg(power, 8)^0.35017
With that working out acceptably, I'd like to record this value(mph) as speed.
DeleteI see through the docs that nativenumber for speed appears to be 6.
However, neither
record(3.04367*timeavg(power, 8)^0.35017,6)
nor
record(3.04367*timeavg(power, 8)^0.35017,6,"Speed")
Are writing speed data to the fit file in garmin connect or in runalyze.com
Any help would be appriciated, thanks in advance.
For completeness I'm using a Edge 530 & AppBuilder 5(B) Version 5.23 with Assioma Duo's for power.
DeleteHi Chrisgo,
DeleteDespite the use of the native number for speed, I'm guessing that no site actually accepts 3rd-party data for speed. This is similar to how Garmin Connect itself does not respect "nativeNum", and how Stryd only accepts Power data from its own apps. Sorry, wish I could help you.
Hi, i did a formula that estimates the avg power. The data displayed at the edge 1000 is a little different of the data at the fit file. Why?
ReplyDeleteHmm not sure. I can tell you that AVG(X) is basically the sum of each value of X (1-second samples), divided by the number of seconds in the activity (not including pauses). This includes values of 0.
DeleteIf you want the "native" average power, you can use the "AvgPower" variable.
Hello, please can you help. I have a formula that I can't get to work for the 5th lap. I have been running parkrun and pressing my last buttom at a know point from the end (about 4.800) or 250m from the end), I want the data field to show how far behind/ahead 29 minutes I am as I'm running around. This formula wokrs fine for the fisrt 4 laps (until I press the lap button). IE: ifs ( LapCount gte 5 , ( (timer / distance) * (4.250+lastlap(lapdistance) )) - 1740 , LapCount lt 5 , ((timer / distance) * 5.030) - 1740 )
ReplyDeleteis there a way to only get the last X minues of activity? for instance I want to get the 3sec average power for the most recent 60 minutes only. Thanks for your help
ReplyDeleteApp is simple to setup, thanks a lot for doing this.
ReplyDeleteI’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!
"AppBuilder5" creates 1 datafield, while "AppBuilder5+" creates a page with 6 fields. Maybe easiest to try "AppBuilder5+".
DeleteHi,
ReplyDeleteI want to make my open water swims in m / km but be otherwise unchanged from the normal settings. I don’t want to change to overall data field.
Hi , awesome App , many thanks - is there any chance you can update the 5+ version to newer watches I.e enduro 2 ?
ReplyDeleteHey, is there a way how I can update the field more often than once a second?
ReplyDeleteNo, all Connect IQ apps sample the data at 1Hz, update the display at 1Hz, and write data to the FIT file at 1Hz. A pseudo exception is that faster accelerometer data can be sampled into a vector, but the vector is saved at 1Hz.
DeleteAppBuilder5+ is an excellent app! Running on my Edge1030.
ReplyDelete- Is there a way to have fewer than 6 datafields? More than 6 datafields?
- It would be awesome if AppBuilder5+ can be enhanced to support "press" or "long press" on a datafield to change a global state e.g. gvar1=press(50,100,200); gvar2=longpress("meters","feet"); to choose among alternatives. Using profiles is a pain.
- Can AppBuilder5+ be enhanced so there is an easy way to share/publish a complex 6-field page with another user? Maybe export & import on Settings?
Many thanks :)