Can no longer select updated data field newly compiled with SDK 2.1.2 on watch

Former Member
Former Member
So i've just sat down to update my data fields to the latest SDK 2.1.2 and i'm having some serious issues.

BACKGROUND: I've updated Eclipse and the SDK in Eclipse to the most recent versions as of today. I've done the developer key thing through Eclipse as described here. All of my fields compile and open in the simulator. My watch is a 735XT, with all software up-to-date (FW4.20 etc, verified on watch).

ISSUE 1: Some of my fields no longer behave the same way as they did with SDK 1.2.11 in the simulator. For example, i have one that shows the timer using info.timerTime. The code is very simple and worked as expected before updating. Now in the simulator the timer stays at 0:00 when playing a file or simulating data. Same for distance. HR and cadence data update fine, so i know things are playing. What's happened?!?

I don't know if this is a simulator issue or some new issue with the data field implementation itself that will be reflected on the watch. I can't check this because ....

ISSUE 2: I keep most of my fields "Pending" in the store so i can test preferences and how they work before implementing the code into my public versions (and some i just use for myself, and want to change preferences in GCM rather than side-loading all the time). I've recompiled each, check that they work in the simulator (modulo ISSUE 1 above for some - others work fine), updated them in the store (still pending), then updated them on the watch (tried both GCM and GE). They show up on the watch but i can't select them into a field (activity settings->data screens->etc). When i try it doesn't stick (reverts back to the field property it was meant to be replacing).

I assume this has something to do with the new app signing and the watch is rejecting the field selection. How can i get my fields to show up? I'm pretty sure i've followed all the instructions correctly.

Please help! :(
  • For #1, when you are in the sim in 2.1.x there's actully something new when it comes to playing back /simulating .fit data. To "start" as far as the DF, you actually click on the "start" button on the watch shown in the sim. Also look under "Data fields>Timer", as you can do thinks like force a "onTimerLap()" for testing.

    for #2, is there anything in garmin\apps\logs\ciq_log.txt on the watch?
  • Former Member
    Former Member over 8 years ago
    For #1, when you are in the sim in 2.1.x there's actully something new when it comes to playing back /simulating .fit data. To "start" as far as the DF, you actually click on the "start" button on the watch shown in the sim. Also look under "Data fields>Timer", as you can do thinks like force a "onTimerLap()" for testing.


    Wow a very strange update. You can start a previously recorded run without the timer going, or the timer without the run HR or cadence. That seemed to do the trick though, at least in the simulator. Thanks!

    for #2, is there anything in garmin\apps\logs\ciq_log.txt on the watch?


    Interesting. I find the following repeated for (i think) the fields i've been trying to add:

    ERROR: Too Many Arguments Error
    DETAILS: Failed invoking <symbol>
    STORE_ID: c8164abf831746fb9fbb123f1c5afd4d
    CALLSTACK:
    @PC = 0x00000000


    Poking around the forum here it seems that onStart() now needs an argument, so i might need to explore that. Why it doesn't crash in the simulator i'm not sure. Do you know if all now need arguments? E.g. initialize(), onShow(), onHide() etc?

    UPDATE: Still can't be selected as a field on the watch, giving the above error, even when i add dummy arguments to every function without one :(
  • Poking around the forum here it seems that onStart() now needs an argument, so i might need to explore that. Do you know if all now need arguments? E.g. initialize(), onShow(), onHide() etc?


    onStart() and onStop() are the two. They both now need an argument, so onStart(state) and onStop(state)

    And as far as the DF thing, I'm sure it's realted to the simulator actually saving a .fit file in 2.1.x - It's needed for the new FitContributor functionality.

    Also, like I said you can cause the sim to call things like onTimerLap() in your data field so you will know when manual or auto laps occur. (the lap button on the watch in the sim triggers this)
  • Former Member
    Former Member over 8 years ago
    onStart() and onStop() are the two. They both now need an argument, so onStart(state) and onStop(state)


    Just this change seems to have done it. Thanks Jim!!