Overview
AppBuilder is a flexible app for Garmin watches (and cycling computers) that lets you create own your data field using a math formula. (Follow the latest updates and discuss the app in the forum thread.)
If you run or bike with a Garmin, there may have been a few times when you wanted to see more data, like "How fast did I run my work intervals?"
Thanks to Garmin's excellent Connect IQ app store, we've been able to download free apps to show us more information while we run or bike. Sometimes you know what information you want, but an app doesn't exist for it. If that information is based on a math formula (like "cadence / 2"), that's where AppBuilder comes in.
AppBuilder allows you to calculate almost anything you want, and record it to the activity FIT file, so you can view the data in a graph in Garmin Connect later. This is an improvement over many built-in fields, which do not record to the file.
Here's just a few examples of apps that have been created using AppBuilder:
Download AppBuilder from the Connect IQ store, for free.
If you run or bike with a Garmin, there may have been a few times when you wanted to see more data, like "How fast did I run my work intervals?"
Thanks to Garmin's excellent Connect IQ app store, we've been able to download free apps to show us more information while we run or bike. Sometimes you know what information you want, but an app doesn't exist for it. If that information is based on a math formula (like "cadence / 2"), that's where AppBuilder comes in.
AppBuilder allows you to calculate almost anything you want, and record it to the activity FIT file, so you can view the data in a graph in Garmin Connect later. This is an improvement over many built-in fields, which do not record to the file.
Here's just a few examples of apps that have been created using AppBuilder:
- Yacht race timer
- Marathon predictor
- Normalized power, Intensity Factor
- Distance to next aid station, with alerts
- Elevation grade
- 5 second countdown that repeats indefinitely, with beep/vibration alerts
- Interval rest timer (while watch is paused)
- Pace in opposite units (km or miles)
- Stride length
- Alternate between min and max HR, every 5 seconds
- Count sprints
Download AppBuilder from the Connect IQ store, for free.
Wow, thank you so much for this. I've need a "pace averaged over a short time" and here it is - along with a heap of other very useful stuff. Thanks for saving me the effort of writing it in raw MonkeyC - I really wasn't looking forward to that!
ReplyDeleteI have a couple of suggestions/requests:
* maybe make the "label" optional. It takes space on the display and you generally know what's where anyway.
* is it possible to access data stored in FIT files from other activities? The background to this is that my training regime has me running a certain effort (formula of distance and pace) each day but not necessarily in a single run. I'd like to have a field which took the distance and pace from previous runs today as well as the live data from this run and told me when I'm allowed to stop (!) - or more helpfully how much further I need to run at this pace to make sure my coach won't shout at me.
Again, thanks for this toolset.
Hey Calvin,
DeleteSorry for the late reply.
- Re: making "label" optional
I can't really do this for AppBuilder 5 (and not 5+), because AppBuilder 5 is a simple data field which means the CIQ framework takes care of rendering the field (and the label is mandatory.) AppBuilder 5+ is a complex data field which does its own full-screen rendering (and supports 4 layouts) but it's only available for high-end watches with lots of memory.
- On accessing data from other activities
Sorry, the CIQ framework doesn't allow this.
Thanks for interest!
Hmm, I'm not sure why I'm "unknown" above but I'm Calvin
ReplyDeletehttps://www.strava.com/athletes/calvin_sambrook
Hello Flowstate. I'm trying to display on an Edge 1000 when running a course the estimated time until the destination based on the average speed for the last minute. I'm using the expression distanceToDestination_raw/timeavg(speed_raw,60)
ReplyDeleteBut when the GPS is first switched on the field displays !Name. I have activated a course but I'm not actually moving. Have I done something wrong or do I need to be moving along the course for the field to display correctly?
On reading your documentation more I see that the error is beacuse distanceToDestination is not supported in the basic App. I tried the formula in the App 5 and it works!
DeleteGreat app! I'm having trouble creating a formula. I'd like to know instantaneous calories/hour, as a measure of effort. Thank you!
ReplyDeleteSorry for the late reply.
DeleteTry:
calories / timer / 3600
Hi - First superb app - many thanks for developing it. I am using it to test algorithms for mapping hr to power. I have got it working on my Vivoactive 3 using the App Builder 5 - but I cant get the same formula to work on my Edge 820 in the 5+ app. It appears to be the element "prev(hr)" ..... am I missing something?
ReplyDeleteHmm, that's strange. I tried it in the simulator and it seems to work. If you're still having problems, please send me an email.
DeleteThanks for a great app, you've allowed me to have a lot more freedom with my Garmin Edge. However, I'd like to install the AppBuilder 5+ on a Garmin Edge 830, but it's listed as being not compatible. Apparently, AppBuilder 5 is compatible with the 830, and the 5+ version is compatible with the similar 1030 and 820 devices, so I'm wondering if this is just an oversight or what's the problem. Thanks.
ReplyDeleteAppBuilder 5+ should be available on Edge 830. I'm looking at the store page now and seeing it. Shoot me an email if you're still having trouble.
DeleteHi, I would like to a timer that goes on when over some HR threshold and if I go down it resets. Could it be done?
ReplyDeleteI did somethink like:
Deletesetv(if(when(HR gt 155), 1, null), timer);
setv(if(when(HR lt 150), 1, null), 0);
if(getv(1), timer-getv(1), HR)
Awesome tool!!
Nice. Glad you found a formula that works for you :)
DeleteOne issue I have is that no matter the data page layout the fonts of the AppBuilder field are very small, do you have any insights? Also I made a calculation to show my drivetrain and it works great!! I'm so happy
Deletesetv(if(Cadence gt 70, 1, null), round(5.2 * Cadence / Speed));
Deletesetv(2, findeq(getv(1), 11,13,15,17,19,22,25,28,32,36,42))
setv(3, findgteindex(getv(1), 11,13,15,17,19,22,25,28,32,36,42) + 1)
'40x' + getv(2) + ' (' + getv(3) + ')'
With this I show my current gearing like: '40x13 (2)'
Where 40 is my chainring 1x11, my wheels are 700c (gravel)
Hey, if you have any non-numerical / text values in your formula, then the font will be a lot smaller, because Garmin watches have large fonts for numbers and smaller fonts for text. Sorry about that, there's nothing I can do except to import custom fonts, and most devices simply do not have enough memory for that.
DeleteIf you need to display multiple numerical values on the same page, then I recommend AppBuilder 5+, if your device supports it.
Thanks for sharing your formula! Glad you like the app :)
Hi Flowstate! Fisrt of all thank you for this app! it is great!
DeleteDo you know if we can configure a field: "Target Cadence"
?
This is a frustration for hundreds of garmin users that use structured workouts.
Coaches send us workouts like this:
200w at 85rpm
250w at 95rpm
200w at 100rpm
But there is no way to see this target cadence value.
Training peaks sends this information but garmin is not using it.
Zwift and Wahoo are capable of using it.
Thanks!!!!
Workout info such as target cadence isn't currently available in AppBuilder. What kind of watch do you have? This info is only available to newer watches (such as Forerunner 245), and even then, there isn't much room for AppBuilder to implement new features except possibly on the watches with music (such as Forerunner 245 Music).
DeleteI think Garmin's latest update has broken something. I went to update my FTP in the App and then I got a Syntax error on my 1030, 530 and Fenix6. A closer look revealed that when you save the string in the app Garmin removes all the parenthesis. I am not sure if this is the error but something has gone wrong for sure!
ReplyDeleteThanks for the feedback!
DeleteA bug report has been opened with Garmin. Please upvote the bug report (and add a comment if you like) - this will increase the likelihood that Garmin will direct their attention to fixing this issue.
https://forums.garmin.com/developer/connect-iq/i/bug-reports/regression-bug-connect-iq-store-version-2-12-android-characters-don-t-working-anymore
Thanks and done
DeleteI'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.
ReplyDeleteI'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.
Managed to sort it in the end anyway. Removed all the clones and added them one at a time and set the field up then disconnected the Garmin, reconnected and did the next clone. A faff but it did work.
DeleteNoob question, If I add Bearing or Heading fields to my hiking profile on my 5X, it shows me my heading in degrees (per compass setings). I have a 4 field page and I want my heading to display N, NE, ENE, etc. I couldn't find that data field available in compass or other fields online at https://www8.garmin.com/manuals/webhelp/fenix5x/EN-US/GUID-5176B6E4-F272-4437-BDA7-85B31231CB3E.html. I thought I'd create a long IFS statement to do that like ifs(Heading >= 0 , 'N', Heading >= 45 , 'NE' , Heading >= 90 , 'E' , ... but a) I ran out of room on Appbuilder, b) it fails with !NAME and c) there is probably a better way. Does anyone have an alternative, suggestions to make that shorter, maybe an index and divide heading by 12.5?
ReplyDeleteHello Friends! Great app! I used several years with a Fenix 5 with incredible results ! But now I upgrade to a Fenix 7x and connect says it is non compatible with this watch, does anyone can confirm it is correct ? Does anyone knows a solution or perhaps I am trying to install an old version? Thanks for your help
ReplyDeleteAppbuilder 5 has been updated with support for Fenix 7X and other new devices
DeleteSorry , I tried to place my question as a new query but it all was place it under comment as an answer , sorry!
ReplyDeleteany plan to for 1040 solar compatibility
ReplyDeleteAppbuilder 5 is now available for Edge 1040 / 1040 Solar
DeleteMerak123 Slot Online
ReplyDeleteMerak123 Slot Resmi
Merak123 Slot Gacor
I am 100 % new to this and have a couple of questions that maybe you can help me with.
ReplyDelete1.- When we set a formula, how often does it run? every second?
2.- How could I use a variable that continuously accumulates more value. For instance let's say the variable starts at zero. I want the formula to: capture the 3sec avg power (every second) divide it by 10 and add the result to the variable. so... Setv(1,0); Setv(1, getv (1) + Timeavg(power,3)/10)
would v(1) be reset to ) every time?
When will it be supported on edge 840?
ReplyDeleteCan Appbuilder create customised page layouts? I would like a page layout with 8 datafields but in an even 4x2 grid. Also can you format the display of each datafield , such as font size and option to remove the unit (eg. km/h)?
ReplyDeleteVery good question and comments!
DeleteHi, is there any way to display the time of sunset/raise ?
ReplyDeleteGreat app.. 👍 helped me shoehorn some ant+ data onto screen... quick question . Is the day and date accessible as a variable?.. I would like to tally my rides on a weekly basis.
ReplyDeleteI cannot get this to work. I tried to use this on an Epix Pro (Gen2) to get a cadence data field to the kayak profile (the Garmin kayak profile does not support cadence for some unknown reason).
ReplyDeleteMy paddle cadence sensor connects just fine and seems to work, however the data field with the AppBuilder data source does not show any values.
If the exact same configuration is used with a bike profile for instance (which supports cadence natively), it works. Is there a trick somewhere to get this to work or isn't it supposed to work at all if the profile used has no native support for cadence?
Hello, i have an Edge 1040 I installed Appbuilder 5. I tried many formulas with good results, but find one Problem:
ReplyDeleteElevationAtDestination shows my actual altitude and not the altitude of the routedestination.
The result is the same with route or without route.
Any Ideas?