I'm experiencing heart rate wrong data during activity.

I'm experiencing heart rate wrong data during activity. I tested it with fenix 5x, 5x plus and 6x plus. It works fine for the very first 20/30 minutes then drop under 110 bpm and stays there until i restart the app. I tested with many app on store and also one i m developing. With my app i tried with a chest band and it works like a charm. Is there something with the whirst sensor??

thank you

  • OHR can have issues based on things like skin tone, tattoos, even how hairy you are,  It's also got two modes - a less accurate 24/7 mode and an activity mode.  You can tell which mode you in by peeking under the back of the watch.  If the green lights are flickering, you're in 24/7 mode and if on solid, activity mode.

  • i know about skin, tattoos and hairy whirst. I checked the mode and in my app the led is solid and so i'm certanly in activity mode. I can see it working fine in the very first 20/30 min or less and then slowly stopping retrieving data  remaining around 100-120 bpm. Moving the whirst or taking off the watch and wear it back restart the sensor and restart the correct data acquisition. Looks like it stuck at certain time... very periodically behaviour...

    I retrieve data as doc says:

                    var HRInfoObj=Toybox.Activity.getActivityInfo();

                 if (HRInfoObj.currentHeartRate == null)  {

                       ActualHRVal=0;
                     } else   {
                      ActualHRVal=HRInfoObj.currentHeartRate;
                   }
  • i can say also that if i use my app without doing activity at all (just starting the app and check it randomly) the sensor seems to work fine without any issue at all... :-( The sensor measure heart rate under 100 bpm and accordingly with my movements.

    very strange isn't it ??

  • I can add also that if i use a chest band it works fine. Can be different if the

    var HRInfoObj=Toybox.Activity.getActivityInfo();

    is inside the function reading the HR (so at the end of the function the HRinfoObj is destroyed) or i use it globally?

  • You shouldn't need Activity.getActivityInfo in a datafield, you get it for "free" in compute:

    public function compute(info as Activity.Info) as Lang.Numeric or Time.Duration or Lang.String or Null {...} // for SimpleDataField
    or
    public function compute(info as Activity.Info) as Void {...} // for DataField
  • mine is an app, not a datafield..:-( and compute is valid only for datafield

  • Then I don't even understand the question. Your app wouldn't even compile if you would try to use HRInfoObj that is a local variable in ANOTHER function. Besides you don't complain about some value being null but that it's below 100. How could anything like you mentioned above cause that?

  • thank you very much for the link... it is 1 week struggling with this problem!! Unfortunately reboot didnt solve...

  • i set the HRInfoObj as global. then in my function which retrieve HR i did this:

                HRInfoObj=Activity.getActivityInfo();
    which retrieve the activity data (instant hr, average etc). Everything works fine at first but after 10/15 or 20 minutes of activity the HR rate drop under 100 bpm and stay there for minutes. If you follow the link given by _psx_ others have the same issue