Samsung Galaxy Watch 4 HR_RAW sensor processing

I’m developing an app to retrieve PPG information from Samsung Galaxy Watch 4. I noticed HR RAW sensor ( generates data at 25 Hz and each data point is an array of 16 floating values.
What do each of those 16 values represent and what king of filtering or post processing should I perform in order to retrieve the PPG information?

There is also PPG Batch sensor ( However, when I’m trying to retrieve the data from this sensor no data is generated. What is the purpose of this sensor and how do I retrieve data from this sensor?

I couldn’t find any documentation on these sensors anywhere.

Appreciate the help.

The sensors Data API is documented in Android Developer Documentation. Here is one for Health Sensors

Samsung Developer Relation

I have already looked at the android documentation. I can get the heath and fitness data such as heart rate, blood oxygen, steps, sleep, etc. However I’m unable to make it work for getting PPG signal. There is no health data type defined for PPG in the Android Health API.
So, the only option I can think of right now is to directly process the raw sensor values from the above mentioned sensors.
However, I’m unable to make sense out of those senor values as there is very little to no documentation available online for those specific senors.
Is there any documentation or datasheets available for those sensors?
A code snippet or techniques or algorithms for retrieving or filtering PPG signal from the sensor is much appreciated.

Thanks for the help

I’m having the same issue, Tizen web apps would allow retrieving PPG signals, but WearOS Watch 4 apps doesn’t seem to have access to PPG signals just yet (although the sensor exists programmatically).

Did you find the fix yet?

To anyone : does this question best fits WearOS Google Help Community or Samsung Developers Forums? I’m thinking that sensor access is related to OS, so I will be also posting this question on Google Help Community.

I plotted all raw values from hr_raw sensor. values at index 5 (6th element from the start) somewhat resembled the distorted PPG signal.
I have applied Butterworth filter on the signal to extract somewhat clean PPG.

The values at index 1 (2nd element) and index 4 (5th element) resembles the 2 channels of the PPG

However, I’m not sure and for the other values I have no clue.

I’m still searching for answers

@kevv96 Have you gotten any luck? Can you post the link to Google Help Community where you asked your question