Screen update issues with Forerunner 735XT

Hi guys,

recently I get feedback from users that my stopwatch app is not working properly on the mentioned device. When it starts the time does not update correctly. What I am doing is to call the

Ui.requestUpdate

every 50ms (lowest time possible). Might this cause issues? In simulator this is not reproducible and also other devices seem to work correctly.

Anybody else facing this issue?

Thanks!

Bye
  • One quick thing I'd try to narrow things down is maybe try changing the screen update from every 50ms to something like every 200ms, and if that works, try values in between. It could be something like with calling Ui.requestUpdate() every 50ms and onUpdate() taking more than 50ms, and something getting confused.

    With 1hz WF's, keeping onPartialUpdate() under 30ms can be a challenge, and there you have access to things like setting clip regions.
  • Former Member
    Former Member
    It is most likely something is going on with the device, especially given that it was previously working.

    If you schedule a timer event for 50ms, and your callback runs for more than 50ms, the pending timer events will simply get blocked and lag behind the requested rate.
  • @Brian: ok, that means that in fact when I fire a timer every 50ms and the processing time of onUpdate takes more than 50ms it is cancled and thus the screen does not get updated? I would assume that simply the second call to "onUpdate" will not be fired if the first update has not yet finished. Would be nice to know how this exactly works to avoid problems like this in the future.

    Thanks!
  • Former Member
    Former Member
    ok, that means that in fact when I fire a timer every 50ms and the processing time of onUpdate takes more than 50ms it is cancled and thus the screen does not get updated?


    No, that is not correct. I don't believe what I said above should imply that at all.

    I would assume that simply the second call to "onUpdate" will not be fired if the first update has not yet finished.


    This is basically what happens. A timer event will trigger after 50ms, but if the VM is still in the process of running the previous onUpdate() (or anything else), it will be unable to run until the current execution completes.

    If the event takes an exceptionally long time to complete (e.g. over 100ms) then multiple timer events may trigger while VM execution is still running. In this case, multiple callbacks are not queued. The extra callbacks that were triggered will be lost.

  • Former Member
    Former Member
    I haven't been able to reproduce this yet. I'm on software 8.30 testing on both:

    Widget: https://apps.garmin.com/en-US/apps/f879d6e8-0261-4ebe-be13-342e7f3549bf

    and

    App: https://apps.garmin.com/en-US/apps/ab786a33-f914-409e-bb9c-23e8c4ef4e52

    Can you give a description of the exact behavior that I'm looking for. What I am seeing is a timer that appears to be running normally. I can mark "laps" and view a list of them with a menu press, reset the timer after stopping it, etc.

    Thanks,
    -Coleman
  • Hi Coleman,

    this is what should happen, but since a few days users are complaining that with the Forerunner 735XT the timer is not updating (stays at 00:00:00) when stopwatch is running, but when pressing the lap-button, the lap is stored correctly. I have not heard about any other watch model having this issue with the widget. As I do not own a Forerunner 735XT and the simulator is working fine, I am not able to reproduce it. But if you take a look at the previous posts, users are still facing this issue.

    Thanks!

    Bye
  • Three more observations, which might (or might not) help get onto the right track:

    1. The small time-of-day info at the top of the display does update correctly, regardless of whether the stopwatch is running or not.
    2. The sum of lap times (the first row below the main timer) shows in negative numbers (eg. "00:-15:-07" instead of "00:15:07").
    3. Once the widget times out and returns to the watchface the stopwatch is reset to initial state (i.e. stopped and set to 00:00:00).

    So there seems to be more things wrong than just the timer display not updating. Is there a way do something like a factory reset for the installed widget? Maybe there is some corrupt state info residing in the watch or something?
  • The first row below the main timer value is the "best lap" from all laps created in the current run, it is not a sum of all of them. But the issue with negative value is strange... Can you tell me the steps to reproduce this?

    Thanks!

    Bye
  • Former Member
    Former Member
    Hey,

    That is really strange. Do you know if this is an APAC version of the 735XT? There is not a reset of an installed widget, but you could uninstall and reinstall it. You can force an uninstall by deleting the widget .prg file out of the Garmin/Apps directory on the device as well.

    -Coleman
  • The first row below the main timer value is the "best lap" from all laps created in the current run, it is not a sum of all of them.


    It does not show best lap time in my case. It shows a sum of all lap times, i.e. total time without current lap time, but with negative values.


    But the issue with negative value is strange... Can you tell me the steps to reproduce this?


    Ummm, nothing special really. It is 100% reproducible on my device. I just start the timer and then after pressing the lap button the value appears (as I described above) in negative. Maybe tomorrow in the evening (CET time zone) I'll post a link to a video demonstrating the behaviour.