[HR] tag measures constantly in Wear OS 4 [BUG]

My understanding was 1.4.20 is deliberately were using the Active Data because that was what users expect. But you are saying that the WFS coding is correctly using passive data but the firmware is not correct.

I would argue that constant update is what people want and expect based on the complaints that we previously got for the Tizen based watch faces and early Wear OS based watch faces. If they wanted a passive data they would click a button to see the data.

Since Pixel watches has always shown the updated Heart Rate perhaps they also meant to show the passive heart rate.

Do I have it right this time, or am I still confused. :slight_smile:

Ron
Samsung Developer Relations

Can you confirm that WFS 1.4.20 is using Exercise data? I don’t think so.

Anyway. I’m using PassiveDataListenerCallback in my Heart Rate Complication app. (The one I strongly believe is used in WFS 1.4.20 because both watch faces and my own app were working exactly same on Wear OS 3.

As a Wear OS app developer, this is what I expect from Passive Data on Wear OS 4 device:
Passive data updates | Android Developers

Passive data updates are suited for apps that need to monitor Health Services data in the background. They are intended for use cases that span hours, days, or even longer. If you need to store or process health data when your app isn't running and the user **IS NOT EXPLICITLY ENGAGED IN AN EXERCISE**, use Health Service's passive client.

What I get from Galaxy Watch 6 firmware? Watch will start constantly measuring HR after Callback is registered. (Usually after BODY_SENSORS permission is given). Definitely WRONG.
Why I think that WFS 1.4.20 is using Passive Data too (for HR) (and Passive Goals (for steps goal)? Because it acts exactly as my app. Exactly.

It would be great if someone from WFS could confirm this.

Devs here like @Matteo_Dini @SMZ confirmed that current behavior on Galaxy Watch 6 is wrong.
There is something wrong with watch software or Health Services. Same behavior is not happening on stock Wear OS 4 emulator with synthetic data.

About Pixel Watch, yes, it measures all the time but it measures all the time also in the Fitbit and Heart Rate Complication… There is no way to adjust it.


If everything you said is what users wanted, then why Galaxy Watch does not act as Pixel watch and not measure all the time (without watch face)? Why is there also heart rate measurement interval in the settings?

You also wrote that

People mostly want to see same heart rate measurement in watch face and in Samsung Health app. With this error, it’s not possible. There will be unhappy users, I’m pretty sure. Also, most users want to control heart rate measurement interval. Constantly measuring watch faces will be uninstalled by lot of people because they will think (rightfully) that these will ruin their watch battery life.

Tomas

1 Like

Here: how it should work: stock Samsung Info Board watch face (Galaxy Watch 6 - Wear OS 4)

Here: how WFS 1.4.20 watch faces are working with [HR] tag (Galaxy Watch 6 - Wear OS 4)

Still perfectly user friendly?

@Matteo_Dini , what do you think?

1 Like

@amoledwatchfaces

I think this side definitely needs to be fixed. The heart rate measurement should reflect the user’s settings, exactly as it did in the days of Tizen.

If it doesn’t get fixed somehow, expect tons of complaints, emails, and negative feedbacks.

2 Likes

I can confirm that this is an issue with Wear OS 4, nothing specific to the Galaxy Watch6. I’ve had this issue running Wear OS 4 on Galaxy Watch5 (Beta update). I have definitely had more battery drain caused by the constant heart rate updating.

3 Likes

This is what will most people ask when they experience Wear OS 4 from Samsung and watch faces with [HR] tags. Well done.

I’ve wrote the Watch Face Studio team about this. My feeling is that if people want a watch face with a Heart Rate showing they want the active measurement otherwise it is just decoration. But if it does use more battery life then I can understand the passive measurement.

I verified it does not have anything to do with IHRM (I did not install that option).

I’ve asked for clarification if it does ore does not use any extra memory (It appears not to from my empirical observation using a watch with the HR Tag for an hour and one with a complication for an hour)

and I created a suggestion to have [HR_A] and [HR_P] tags and let the designer select which one to use.

I’ll let you know if I learn of anything.

Ron
Samsung Developer Relations

1 Like

Hi @r.liechty_SDR , problem is, that even if they create something like [HR_A] and [HR_P], both will work the same way as I’m trying to explain to you that I’m using Passive Listener in my Wear OS app and Passive Listener is not working correctly on Wear OS 4 (Galaxy Watch 6). I don’t know what’s so hard to understand about it.

Now that you explained it in one sentence I don’t either.

Ron

WFS is currently using Passive Data afaik (PassiveListenerCallback or service).
On Wear OS 3 it works correctly, on Wear OS 4 NOT. (acts like active)

When they create HR_A and HR_P as you wrote and HR_P will continue using PassiveData, it will act like exercise data anyway because there is some bug on Wear OS. I’m explaining this bug since the 2 Aug (my GW6 arrived).

Sumary:

Why I know there is some issue or problem on GW6 Wear OS 4 firmware? Because I’m not experiencing same behavior on Wear OS 4 emulator (using synthetic sample data).

To test or understand it again. Create WFS 1.4.20 watch face with HR tag and test how it behaves on Watch 4/5 and Watch 6. On Watch 4/5 it works correctly, syncs value passively only when Samsung Health measures - correct behavior of Passive Data. On Watch 6, your watch will measure indefinitely which is certainly not how PASSIVE DATA should work.

Now test this watch face between Watch 6 and Wear OS 4 emulator. (with synthetic data). Boom, on Wear OS 4 emulator - watch face takes values passively, on Watch 6, NOT.

Also, I believe you’re using my HR Complication app
this one:
SCR-2
It uses Passive Data. Test it on Watch 4/5 and on Watch 6. See how it works.

I found an answer for the [HR] tag being continuous on Wear 4

The measurement cycle has been changed to continuous for the accuracy of heart rate values from Wear 4 OS, which may be different from Samsung Health’s policy.
Now we’re asking if the measurement cycle of Samsung Health can be matched

I personally do not believe that this affects battery consumption in the same way it did on Tizen based watches. But I don’t have any way to test this

Ron
Samsung Developer Relations

I own a 5Pro and I can personally say that it doesn’t waste my battery at all. I still make my 3 days with AOD.

With all Galaxy Watches there is a learning time for the battery consumption so for the first month or so the battery consumption is higher. I bet some people think the initial extra memory use is because of the HR because that is what they notice.

I see improved battery performance in my Watch6 in just 10 days but still not like my Watch5 Pro

Ron
Samsung Developer Relations

Is the continuous reading HR already fixed in GW6? I’m receiving feedback from users regarding this issue. Or any temporary fix?

The continuous reading of the HR is because of Wear 4 guidelines. The Watch Face Studio team has contacted the Health team about this.

This should not cause any extra battery drain because the data is collected by the Health Services by the system.

Ron
Samsung Developer Relations

2 Likes

I just got my GW6 and did have a chance to test today if continuous HR is not affecting battery. With this parameters:

  1. AOD on
  2. Brightness 45%
  3. Wifi and Bluetooth on (connected to phone)
  4. Wifi debugging is turned off
  5. SH HR interval is set to Manual
  6. Watch Face: BALLOZI VERO
  7. Physical device: GW6 Classic 47mm
  8. Activity: Sitting down in my workspace

The result is it did affect the battery. 3% for 1 hour and 2 minutes. 100% battery would only last 1.44 days and maybe less if the activity of the user is outdoor.

Unlike the watch face build in 1.3.13 without the continuous reading but HR interval is set to very 10 minutes with same parameter above, the result is far way better. 1% for 1 hour and 15minutes and full battery could last 5.20833333 days and maybe less depending on the activity of the user.

This continuously HR reading issue only exist in GW6. I also ran the watch face to GW4 and GW5 physical devices using WFS 1.5.7 without crazy HR readings. I hope it will be fixed soon. I believe the problem is there with GW6 firmware as @amoledwatchfaces cited in his posts.

1 Like

@Ballozi This. Seems like they completely forgot about watch faces and content rendering based on [HR]. Last reply to my support ticket:

RESPONSE 1: The HR value measurement cycle has been changed to continuous for the accuracy of heart rate values from Wear OS4, which may be different from Samsung Health’s policy. This is not a bug and this will not drain extra batteries.
However, WFS team is discussing with the Samsung Health team if the measurement cycle feature can be matched with the new policy.

I’m explaining them for about 3rd time that yes, continuous measurement itself is most probably implemented well in Watch6 but… only measurement! When you have some [HR] text in your watch face plus some progress bar or hand with movement set based on [HR] tag, these are updating endlessly every second —> re-rendering content which, based on @Ballozi report surely causes battery drain issues.

Also, they are not able to explain why only when PassiveDataCallback is registered, watch face measures all the time. When you don’t have watch face with [HR] tag applied, you will not see watch sensors flashing constantly. No one was able to explain this. That’s why I think there is an issue with Health Services or Watch6 firmware.

My other reply:

REPLY 2: Do you mean that Samsung Health will show constant measurement too (measurement interval setting removed)?
Or so that measurements will work just as they were working on Wear OS 3 and it will be possible to set interval in S Health?

How’s it even possible for Samsung Health on Galaxy Watch 6 to set measurement intervals (manual / 10min / constant) if the watch measures all the time?
I’m not seeing sensors flashing constantly when I have a watch on my wrist, only when I register PassiveListenerCallback. Maybe there really should be just a change in how the system responds to PassiveListenerCallback.

Right now it looks like watch thinks (or Health Services as these are porting values) that it has to measure indefinitely when PassiveListenerCallback is registered (by watch face or any 3rd party app).

About constant measurement and battery usage you can’t look at it from a measurement perspective. Yes, constant measurement is obviously implemented fine on Galaxy Watch 6 so measurement itself doesn’t drain much battery. But did you consider how some complication services or watch face renderers react? Constant measurement would mean constant rendering on a watch face, re-rendering every element which uses heart rate data every second. This will certainly cause larger battery consumption. I think Samsung engineers should take this into measure and revert the changes so users can choose.

Samsung last reply:

The WFS team is discussing with the Samsung Health team. We don’t know what they are planning to do. We get to know the continuous HR value is a feature of Wear OS4 for many users request. And this is not a bug for WFS.

If WFS and Samsung Health team make any decision, you will get it on forum notice. Please let us know if you have any further queries.

Based on last reply it looks promising but I’m not really sure if we’re talking about same thing. :smiley:

@r.liechty_SDR , please check @Ballozi post above.

1 Like

If you just got your GW6 then the battery use is still in learning mode. I also used about 70% a day the first week or so and now 3 weeks later I its down to 20% a day and still improving.

The watch system learns how to use it for example it checks for my activity more in the morning because it knows I walk in the mornings and doesn’t check as frequently for activity while I’m working. Let me know what it does after 2 weeks.

If @amoledwatchfaces is correct about something updated based on heart rate ever second how much power does it then take for a sweep second hand. I am sure it does take more but it can’t be that dramatic.

Finally the number one complaint for watch faces designed by GWD or WFS is that the heart rate was not continuous.

Just my opinions

Ron

1 Like

Sorry, but this is a complete fabrication and I don’t know in whose head it was born. From the beginning, we developers wanted the values to be synchronized with S Health, definitely not continuously without option to set measurement interval.

WFS team finally got it done with WFS 1.4.20 only to have it completely broken in Galaxy Watch6 Wear OS 4.

Since I don’t know what decided the continuous measurement anymore, at least give the user a choice.

If what you write was true, developers like MD, SMZ or Ballozi would not be contributing here.

Tomas

1 Like