Config
AppBuilder Errors/Crashes
If AppBuilder displays the "IQ!" logo or a message with "!" (such as "!Name"), please refer to the troubleshooting section.
Older CIQ1 Devices vs Modern CIQ 2 Devices
- FR230/235, FR630, FR920XT, Vivoactive, Fenix 3 (HR), D2 Bravo (Titanium), Quatix 3, Tactix Bravo
App Configuration
AppBuilder Options
- Label: the data field label. e.g. "Cadence (1 leg)"
- Formula: the math formula used to calculate the data. e.g. "Cadence / 2"
- Display Format: how your data will be displayed: e.g. Number ("310") or Time ("5:10")
- Record Data to FIT File: saves formula result to the FIT file, so you can see your data as a graph in Garmin Connect.
- The label will appear in the summary
NOTE: The Garmin Connect website has a long-standing bug which incorrectly displays the label as "0". You should be able to see the correct label on the Garmin Connect Mobile app. - The current value will be automatically recorded to the activity graph. Use the record(value) function to choose your own data to record (e.g. current power). Use the norecord() function to disable automatic recording to the graph
- Use recordsummary(value) to record a value to the summary data (e.g. maximum power)
- Use recordlap(value) to record a value to the lap data (e.g. lap average power)
FIT recording is disabled by default, and takes additional device memory. If a formula crashes with an !IQ error (out of memory), you may need to disable FIT recording.
[CIQ2] CIQ2 devices also support recording data to the lap data (e.g. lap average cadence) and summary (e.g. average cadence).
recordsummary(max(hr)) ; recordlap(lapavg(hr)) ; record(hr)
e.g. Record max HR to summary, don't record anything to the activity data, display current HR:
recordsummary(max(hr)) ; norecord() ; hr
Note for advanced users: CIQ1 devices don't record the label to the summary, to save memory, but all versions of AppBuilder will set the internal FIT field label to "AppB:YOURLABEL". You can't see this in Garmin Connect, but if you download the original file, you can open it in Notepad or TextEdit and search for "AppB". (This will be a little messy, so I recommend using the FIT SDK FitToCSV tool to look at FIT files.)
- Select Profile: choose one of four profiles to use.
Select Auto if you would like AppBuilder to automatically select a profile based on the sport: running, cycling, swimming or other. This works on devices which have sport-specific HR zones. - Quick Profile Select Hotkey: this setting controls the hotkey used to enter profile selection mode, on the watch. Enable the hotkey if you want to select profiles directly on the watch.
AppBuilder 5 versus Classic
For older CIQ1 devices, AppBuilder 5 still has new features but not as many as modern devices (e.g. multiple profiles are not supported).
[AppBuilder5] means that a feature is supported by AppBuilder 5 and not Classic.
Quick Overview
e.g. How fast could I be running if I max out my heart rate (assuming my max is 195)?
195 / hr * speed
This will display your "max heartrate-adjusted speed", calculated once per second.
(Okay, I'm sure the actual formula is more complicated...)
e.g. Maximum speed during activity:
max(speed)
This shows you the highest speed that is seen during the activity (sampled once per second).
e.g. Number of seconds (amount of time) spent sprinting (running faster than 16 km/h -- assuming device speed units are set to km)
sum(speed gt 16)
This works because:
- The formula is evaluated once per second
- "gt" (greater than) returns 1 if the condition is true, and 0 if the condition is false
"speed gt 16" would display 1 whenever you are sprinting and 0 when you are not.
"sum(speed gt 16)" adds up all those 1s and gives you your total time sprinting.
Display Formats
- Auto: Decimal or number
- Decimal: 2 places. e.g. 90.12
- Number: no decimals. AKA "Integer". e.g. 90
Values are rounded to the nearest integer
e.g. 90.49 rounds to 90
90.5 rounds to 91 - Pace: displays speed (distance/hour) as pace (minutes:seconds/distance).
e.g. 12 km/h becomes 5:00 (/km). 8 mph becomes 7:30 (/mi)
(Note that the distance units are irrelevant. Any distance/hour becomes minutes/distance.) - Time: displays seconds as hours, minutes and seconds:
e.g. 310 seconds becomes 5:10
3710 seconds becomes 1:01:50
7200 seconds (2 hours) becomes 2:00:00 - Time2: displays seconds as minutes and seconds:
e.g. 7200 seconds (2 hours) becomes 120:00
NOTE: CIQ1 devices can use this option on AppBuilder Classic, not AppBuilder 5.
Switching between formulas [AppBuilder5]
Selecting profile for single field
- In the app settings, set the Quick Profile Select Hotkey to "Double-click START once"
- Select a sport with AppBuilder on a data page
- Double-click the START button before the activity starts — or within the first 10 seconds — to enter "configuration mode".
If the timer is now paused, AppBuilder will display "Press START".
Press START to start the timer. - AppBuilder will display the profile number and label: e.g. "1:AppBuilder"
- Press LAP repeatedly to switch profiles
- Double-click START to save your changes.
AppBuilder will display "Cfg Saved" - Discard the activity
The next time you start an activity with AppBuilder, your new profile will be in effect.
If you accidentally entered config mode or you want to lose your changes:
- Discard the activity without double-clicking START
or - Double-click START again, without selecting a new profile. AppBuilder will continue as if nothing happened.
Selecting profile for multiple fields
If you have multiple AppBuilder fields in the same activity, you can configure them in sequence by changing the Quick Profile Select Hotkey for each one. e.g. Suppose you have 3 fields — we'll call them A, B, and C
- Set A's hotkey to "Double-click START once"
- Set B's hotkey to "Double-click START twice"
- Set C's hotkey to "Double-click START 3 times"
- When you want to change the profiles for one or more fields, start the activity containing those fields
- Double-click START before the activity starts, or within 10 seconds after it starts
- Field A will display "Press START" (if the timer is not running), or the profile number and label (e.g. "1:AppBuilder"). Press START to start the timer, if necessary
- Press LAP repeatedly to change A's profile. (If you don't want to change A's profile, don't press LAP — skip to the next step.)
- Double-click START to save any changes to A's profile. (If changes were made, A will display "Cfg Saved", otherwise A will return to normal). This will also enter B's config mode
- Repeat the above for B. When you double-click START to save B's changes, that will also enter C's config mode.
- Repeat the above for C.
- Discard activity when done
The first double-click can come any time before the activity starts, or within 10 seconds after the timer starts. The next 3 double-clicks have to come within five minutes of the start of the activity.
(I'm open to suggestions on how this whole process can be improved. I want there to be some sort of time limit, because I don't want this feature being triggered in the middle of a long run or a ride, because your AppBuilder fields will be unusable after you change their profiles, until you restart the activity.)
Troubleshooting
Formula Issues
- !Name: Unknown/misspelled variable or function (e.g. "timmer" instead of "timer"). Or, you used a variable not supported by your device (e.g. power, distanceToDestination).
- !Syntax: Syntax error (e.g. "10 / 2 -"), or a function has too few arguments.
- !Args: A function has the wrong number of arguments, or there are missing/mismatched brackets in the formula
- !AdvFn: Formula contains a function which is unavailable on older devices
- !AdvVar: Formula contains a variable which is unavailable on older devices
IQ! Errors
If an IQ! logo is displayed, the field has crashed because it ran out of memory or took too long to process the formula. This is especially an issue on older CIQ1 devices. You can try a few things to simplify your formula:
- For newer devices (Edge, 645 Music, Fenix 5X, Fenix 5 Plus), converting your text formula to code will allow AppBuilder 5/5+ to use longer/more complicated formulas
- Disable FIT file recording
- Reduce number of samples to timeavg(). Anything much more than 100 will probably not work on older devices. For very large samples, consider using an approximation
- Use ifs() instead of if()
- Use find...() instead of ifs()
- Eliminate duplicate parts of your formula with user variables: getv() / setv()
Known Issues
This normally works okay, but it makes things complicated in some cases. If you need to combine distance, altitude, or speed with any other variable in the same formula, it might be better to use raw units, which never change.
- Memory is a little tight on older CIQ1 devices, so certain not-unreasonable formulas can crash the app. E.g. "Distance to next milestone" with 40 checkpoints, or timeavg(X, 300).
- WHEN() is defined awkwardly. It should probably use debouncing instead the current "enter/exit" thresholds
Resolved Issues
In the past, Garmin Connect Mobile for iOS had some issues with certain symbols such as +, < and >. It also had some issues accepting formulas containing words like IF and ALERT. These issues should be resolved by now, but in case you are still having trouble:- Use PLUS instead of +
- Use EQ, GT, LT, etc. instead of =, >, <, etc.
- Configure on Garmin Express (PC/Mac) or use an equivalent formula:
- IF(X, Y, Z) is the same as IFS(X, Y, 1, Z)
- IF(X, Y, null) is the same as IFS(X, Y)
- ALERT(X) is the same as WHEN(X, 1, 1)
- ALERT(X, Y) is the same as WHEN(X, 1, 1, Y)
- ALERT(X, Y, Z) is the same as WHEN(X, 1, 1, Y, Z)
Comments
Post a Comment