More FW/CIQ weirdness testing odd stuff that does happen!

Ok, so yesterday I was testing battery life when running my app, and found a way to crash the VA from the GCM mobile app (see https://forums.garmin.com/showthread.php?313136-CIQ-app-that-s-recording-gets-messed-up-from-the-cell-phone-GCM!)

Today, I fully charged the VA and started the battery test again.. When the battery got to 10%, I got a message of "low battery" on the screen (7h 50m) and all was fine.

About 30 min later, I looked at the screen and it was blank. I pushed the power button, and I got the first data screen of the std walking app, that was then replaced by a standard "save/discard" dialog. Picked save and all was saved.. But based on what I saw in the past could have different results.

How should "low battery" be handled? What I saw was odd, and could be very odd for an end user. I know this is a FW issue, but should CIQ add something like a "onLowBattery()" and "onCriticalBattery()" method?

Stuff I'm finding could explain some of the odd errors reported in the app store...
  • I have reported this issue to the vivoactive team for investigation, because I'm not certain what the correct behavior should be. I agree that your experience probably isn't the intent.

    I've also submitted a ticket to suggest the onLow and onCritical methods you mentioned. The answer may be to check the battery level through the system status regularly and handle a low batter condition that way, but having some methods for these cases would be more convenient.
  • I have reported this issue to the vivoactive team for investigation, because I'm not certain what the correct behavior should be. I agree that your experience probably isn't the intent.

    I've also submitted a ticket to suggest the onLow and onCritical methods you mentioned. The answer may be to check the battery level through the system status regularly and handle a low batter condition that way, but having some methods for these cases would be more convenient.


    That's basically what I did for now. if the battery level is under 10% (when I got the message from the FW) I display a message, and may add something like an "auto shutdown" of the app below something like 5%.

    Also added the display of the battery level in the app itself, as well as my "guess" at the battery being charged I mentioned in another thread (if the level is going up, it's charging...)
  • Today, I fully charged the VA and started the battery test again.. When the battery got to 10%, I got a message of "low battery" on the screen (7h 50m) and all was fine.

    About 30 min later, I looked at the screen and it was blank. I pushed the power button, and I got the first data screen of the std walking app, that was then replaced by a standard "save/discard" dialog. Picked save and all was saved.. But based on what I saw in the past could have different results.


    Hi Jim,

    I need some clarification on this issue. It sounds like you were testing your app, the watch battery ran low and the device turned off, and then when you powered the device back on, it had retained the recording activity, but was in the native Run app instead of your app. Is that correct?
  • Hi Jim,

    I need some clarification on this issue. It sounds like you were testing your app, the watch battery ran low and the device turned off, and then when you powered the device back on, it had retained the recording activity, but was in the native Run app instead of your app. Is that correct?



    That's what I recall.
  • I've had a very similar experience with the 920 XT a couple months back. I was working with the Garmin guys by email on a Generic Ant crashing issue and this came up in the middle of that so I had reported to them through email instead of on the forum (my bad). Anyway, here's the quotes from the emails that described what I was seeing.

    I had 1 Moxy and only the 920XT paired and I went for a walk outside using the MoxyRun app (side loaded from "Build for device", but otherwise exactly the same as what's on the app store). About 3 minutes in, the watch beeped and vibed. When I looked at it, I saw the Garmin logo like it was turning on (NOT the IQ crash logo) and then it came up in the middle of a native running app rather than the MoxyRun app. I'm quite sure I was using the MoxyRun App to start with. A few seconds (like 2-5) later, it put up a low battery notification. (I had a low battery indication before I went on the walk too).

    I WTFed for about a minute then walked a little bit more to see that the native running app was actually working. Then, I stopped and saved the activity out of the native running app and restarted the MoxyRun App. It worked fine the short way home.

    I attached the .FIT file and it shows the whole walk, even the part where it was running the MoxyRunApp.

    As I think back, I had found myself in the native running app unexpectedly earlier today and just assumed it was a fat finger on my part. It's possible that was also associated with the earlier low battery indication but I just don't remember for sure. Of course, now my 920 is about half charged so I will need to wait to test that again.


    I was able to partially reproduce the funky problem of the watch unexpectedly being in the running app.

    When the 920 watch battery went dead, the watch shutdown. This time, I manually turned it back on and it came back up in the native running app with the data from my Moxy Run app showing. Apparently, earlier today the watch turned itself back on and came up in the native running app.

    I don't view this as a particularly problematic issue. Maybe it's even supposed to work this way to give you a last second chance to save or discard the data. Although I'm guessing many users would be confused and not recognize the opportunity.

    I have not run the VivoActive or Fenix watches dead to see how they act.


    reply from Brandon
    The device booting back into a native app after a crash is working as designed. We don’t have a way to boot back into a Connect IQ app, but since there was an active recording session at the time of the crash, it recovers to a native app. There are probably better ways we can handle this, but for now this is expected behavior.
  • Thanks for posting that, Roger. I recalled having a conversation about this before, but I couldn't remember the specifics. :)

    Jim: I know that it isn't idea, but does that answer your question?
  • Thanks for posting that, Roger. I recalled having a conversation about this before, but I couldn't remember the specifics. :)

    Jim: I know that it isn't idea, but does that answer your question?


    It does, but as Roger said, it might be a bit confusing for users. Something like having an onCritical() method might help, as the app should shutdown in a more user-friendly way. Of course that can be done today by just monitoring the battery, and taking actions to do a clean shutdown within the app (if the battery level is 2% or less, tell the user and shutdown..)

    Or maybe when the battery level gets to a certain level (2%?) the FW could put up the standard "save/discard", with a notice of critical battery? Do it before the power off and not after?

    The after coming back save/discard seems to be the way to handle a crash, but battery level is something that can be predicted. For example, the Forerunner I had did this IIRC - when the battery got too low, it let you know and allowed you to save/discard the activity
  • Former Member
    Former Member over 10 years ago
    I think our solution will ultimately be to automatically save any ConnectIQ activities that are in progress when the device shuts down. The devices aren't doing this now because native activities can be resumed after the device restarts. I think we have an active ticket to correct this behavior.
  • I'm adding my own "critical battery" stuff to shutdown cleanly when the battery is getting low (by watching the battery level in the app).

    What is the point that the FW does it's "Battery level is too low" shutdown, as I'd want to do this before that happens? Is it 5% or 1%?

    The FW on the VA give a warning at 10%

    I'm planning for 5% for my stuff, as that will give the user a bit of time to use a watchface before the screen just goes blank...
  • Former Member
    Former Member over 10 years ago
    The device does not use the battery percentage gauge to determine when to shut down. Battery drain curves are pretty complicated and depend on a lot of factors like the current load and the temperature. The percentage displayed is relatively accurate for devices these days, but a voltage threshold is a much safer value to use for power down, and is what our devices use to shut off.

    You should have very low risk of missing a shut down if you trigger at 5%, but depending on the application and the accuracy of the percentage gauge there may be a significant amount of run time remaining.