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
  • Shoot I should've asked you what device you're using. Unfortunately PREV() and TIMEAVG() aren't available for older devices. None of the stuff that samples older data is.

    Unfortunately, just converting the formula you type in to something the watch can use takes up a lot of space. I might be able to bring one or two "advanced" functions over, but to get the full functionality on older watches, I would probably have to look at a web app for "compiling" the formula to free up space for extra functions. But it would instantly make the field less convenient.

    I'll take a look at seeing if I can at least fit PREV() in.

    I'm not sure why the data field crashes when you set it. It might be because the file size is getting pretty big (not just the amount of memory it uses when running). (It works in the simulator for the FR230, which should have the same amount of memory as the Fenix 3.). All of the older watches have the same memory limit for data fields, which is half of what newer watches allow. There should be no problem adding the field, so I'm surprised about that. I would only expect to the see IQ error in place of the field if you run out of memory.

    Please let me know if something simple like Cadence / 2 still works, as I don't have an older watch (any more) to test with.

    And yes, you can use decimals in constants.

  • I've got the formula set to "Distance" and I'm getting the IQ! error in the Layout page of the app settings and in the app. This is after uninstalling it and reinstalling it from the watch. Sorry to be the bringer of bad news.

    EDIT: Then it crashed the Row app so that it said 2 CIQ fields were in use after I had removed it. I had to uninstall the app to restore normal service.
  • Hmmm sorry about that! Maybe there's something different about the Fenix 3 compared to the 230 (which is what I usually use in the simulator for testing older watche). I will try Fenix 3 in the simulator later. If that doesn't give me a clue about what's wrong, I'll rip out the newer stuff from older devices (HR zones).

    Could you do me a huge favour and try a couple more things?
    - blank formula
    - one constant (e.g. "5")

    Edit: nvm I can see that probably wouldn't work for you. Let me try it out in the simulator and I'll get back to you.
  • Blank field gives no error. 5 gives an error.
  • Okay, I removed the HR zone stuff for old devices and uploaded a new version -- 2.3.7. I don't understand why this is happening, because the current version should take less memory than what you had on Wednesday , even with HR zones, due to some optimizations I made. My only guess is that the simulator is lying to me somehow. As I thought, there's no difference in the simulator between 230 and Fenix 3 (except for the picture of the watch and the fonts).

    Please try it when you have a chance.
  • Using 2.3.7 and the formula set to "5" it gives IQ! even on the layout page of the settings,.
  • Could you please try resetting your watch? You won't lose any settings. (it's basically a reboot, or like turning it off and on)


    http://www8.garmin.com/manuals/webhelp/fenix3/EN-US/GUID-626CD309-6FCC-4960-81DE-382682FFEC60.html
    Hold LIGHT for at least 25 seconds.
    Hold LIGHT for one second to turn on the device.
  • Also, if/when possible, could you attach your watch to a PC/Mac with USB, and copy the following file:
    /garmin/apps/logs/ciq_log.txt

    If you could post that or PM it to me, that would be helpful. Thanks!

    Also, in case it matters, what is your firmware version?
  • I tried to upload the file but the Forum s/w didn't like it. The file consists of lots of the following messages:

    WARNING: Failed in data field compute
    STORE_ID: deb4b87248be409cb91a9b8485d2fc80

    interspersed every so often with this message.

    ERROR: Unexpected Type Error
    DETAILS: Failed invoking <symbol>
    STORE_ID: deb4b87248be409cb91a9b8485d2fc80
    CALLSTACK:
    @PC = 0x00000000
    @PC = 0x00000000
    @PC = 0x00000000
  • Okay, let's try this.

    1) Keep that copy somewhere and rename it (e.g. ciq_log_old.txt)
    2) Delete it from your watch
    3) Make the app crash again
    4) Grab the new ciq_log.txt

    Please email both of those files to me. I'll PM you my email address.