If I create a data field that has the fitcontributor permission (so it can write developer fields to the activity fit file); can I later upload a .fit file with those same fields to my connect profile and would they be visible?

Let's say I publish a data field that has a developer field "doughnuts earned". Assuming a user installs the data field, if that user later uploaded a .fit file (that is created elsewhere) that has the doughnuts earned field (and the same App ID as the data field), would it display in Garmin Connect?

  • 1. why don't you try? Upload your app as beta, and you can test it.

    2. Just having the fields created in the code doesn't mean the fields exist in the fit file. IMHO they're only created when the 1st setData is called.

  • 2. Just having the fields created in the code doesn't mean the fields exist in the fit file. IMHO they're only created when the 1st setData is called.

    I don’t think OP suggested otherwise. I think they’re asking if they can create a “synthetic” FIT file (outside of the device) with developer fields (and the app id of the corresponding CIQ data field), have the user manually upload it, and still have Connect recognize those fields.

    I think the reason they mentioned installing the data field is so that the Connect/store infrastructure knows that the user has the data field (to ensure the associated FIT contributor metadata will be used.)

    I’m guessing they’re asking bc they don’t want to go through all the trouble of writing code to create a FIT file if it’s not going to work.

    Assuming a user installs the data field, if that user later uploaded a .fit file (that is created elsewhere) that has the doughnuts earned field (and the same App ID as the data field), would it display in Garmin Connect?

    That’s a good question. If the FIT file is indistinguishable from a file that was created on the device with the same CIQ data field installed in the activity, and with the same developer fields present, I don’t see why not. I assume you will create the FIT file programmatically with your own code (general-purpose, not CIQ).

    The only way I could see it not working is if Garmin purposely ignores developer fields for manual uploads. A quick test could be to create a dummy activity on the device with developer fields, sync it to Connect, grab the FIT file (e.g. Export Original from the Connect website), delete the activity on Connect and upload it manually. If the developer fields are still there, that’s a good indication that your idea would work.

    You could further refine the test by trying to edit the activity timestamp (I don’t have the details of doing this), which should serve as a unique ID for activities, to eliminate the off chance that Connect remembered that the activity was originally synced from a device.

  • When you download the fit file and delete the activity and then upload it then it's gonna be there.

    However I thought about this again and I'm not sure I understand what would be the usage:

    1. you install a datafield/app

    2. you don't use it, but instead some other thing will generate a fit file

    3. you upload the fit file to garmin connect

    4. you use garmin connect (web or mobile) to view the uploaded fit file as an activity

    Am I right more or less? Why do you need Garmin Connect? Only to display the stats/graphs? If that the only reason, then I imagine there could be better ways. For example there are some websites, like https://www.fitfileviewer.com/ or https://runalyze.com/tool/fit-viewer and some more

  • I don‘t think that it is possible to show a fitfile with IQ contributes in GC if this fitfile was not produced by the IQ app.

    Garmin Connect knows, which device and which datafield was used to create the fit file.
    See picture above.

  • yeah, but that's exactly why the OP asked the question to take care of that: the user 1st installs an app that has the relevant fitcontributor.xml file

  • I did following test:

    -Used my old Edge 1030 which is not registered to my actual GC account anymore, but has my up to date IQ datafield ebike downloaded from the store using a dummy account.
    -recorded a dummy activity using my IQ app ebike which contributes battery and ebike assist
    -copied fit file from device to my PC
    -checked with fitfile repair tool if the IQ datafield are there
    -uploaded this fit file to my regular Garmin account which knows my IQ ebike datafield. (It is installed on all my active Edge devices)
    -Garmin Connect does not show the IQ fields - which are in fit file

    EDIT:
    further test:
    -downloaded the uploaded fit file back to my PC using "Export Original"
    -checked if IQ datafields are gone: no, are still in the fit file!

  • There might be numerous reasons for that. I think that doing the "opposite" could be useful:

    record an activity with the same DF on the regular account, and save it. Then try to compare the two. Maybe there's some data inside, like the account id that recorded it.

    BTW I just thought about something: let's say all this thing will work out (when the "thing" that generates the fit file will know exactly how to generate it to be compatible with GC) then there might be no need to have tha app/DF installed on the device. Why? Because if I record an activity with a DF and then I uninstall the DF the activity will still be correctly displayed in GC.

  • then there might be no need to have tha app/DF installed on the device.

    I think that’s pretty obvious, but it doesn’t really answer OP’s question.

    When you download the fit file and delete the activity and then upload it then it's gonna be there.

    Yeah probably, but it’s the simplest possible test, and as I mentioned, it’s just the first test you would do. If that test fails, there’s no need to try anything else.

    That’s why the next suggested test was to change the timestamp. But mcinner1’s test is better:

    I did following test:

    -Used my old Edge 1030 which is not registered to my actual GC account anymore, but has my up to date IQ datafield ebike downloaded from the store using a dummy account.
    -recorded a dummy activity using my IQ app ebike which contributes battery and ebike assist
    -copied fit file from device to my PC
    -checked with fitfile repair tool if the IQ datafield are there
    -uploaded this fit file to my regular Garmin account which knows my IQ ebike datafield. (It is installed on all my active Edge devices)
    -Garmin Connect does not show the IQ fields - which are in fit file

    Thanks for trying that out! I think it could be bc Connect sees that the FIT file was created by a device that was not registered to the account. In that case, OP could get around this check by spoofing the user’s device ID (if they are willing to share it.)

  • 1. The OP is a "XY problem" IMHO (https://en.m.wikipedia.org/wiki/XY_problem)

    2. Uploading a fit file that was created using a device that is not registered to the account is probably not a problem. Though it's a bit tricky, because I never tried it with a fit file that was actually recorded on another device, but I did download my activity's fit file and used the "device changer" in fitfiletools.com and then uploaded it (first the original activity has to be deleted) and it shows the activity as it was recorded with another device (I never seen in my life)

    That's why I think that the reason mcinner1's test failed probably has another reason.

    3. Yes, I think too that it is possible to create a fit file that should be recognized by GC.

    4. But again: why? What's the real goal you want to achieve? What is this donuts earned field and why do you want to see it in GC if it's not generated by a Garmin device?