MR60BHA1 - Heart and respiratory rate higher than 100 after decoding?


I have tried to analyze the data using Python.
During the decoding [simple conversion using int(value, 16) in Python] I got partial values at the respiratory rate of up to 30. Heart rate ranges from 62 to 105. Does anyone have an explanation for this? Checking the check sum shows no abnormalities.

Kind regards

Hi, maybe there is a conversation error with rounding/truncate?

Are you willing to share the python code? do you run the mcu (and module) with circuitypython?


thanks for your reply.

So this is the section of my code, where data conversion takes place:

Switch case für Umwandlung der wichtigsten Daten

def switchCase(self, typ, value):
    result = 0
    new_meaning_typ = typ
    # Python3.9
    if(typ == "Body movement parameters"):
        result = [int(value, 16)]
        new_meaning_typ = "Body Movement"
    elif(typ == "Human distance information"):
        result = [int(value, 16)]
        new_meaning_typ = "Distance"
    elif(typ == "Human orientation information"):
        x = int.from_bytes(bytes.fromhex(value[:4]), byteorder='little', signed=True)
        y = int.from_bytes(bytes.fromhex(value[4:8]), byteorder='little', signed=True)
        z = int.from_bytes(bytes.fromhex(value[8:]), byteorder='little', signed=True)
        result = [x, y, z]
        new_meaning_typ = "Orientation"
    elif(typ == "Heart rate values"):
        result = [int(value, 16)]
        new_meaning_typ = "Heart rate"
    elif(typ == "Heart rate waveform"):
        result = [int(value[i:i+2], 16) for i in range(0, len(value), 2)]
    elif(typ == "Breathing values"):
        result = [int(value, 16)]
    elif(typ == "Breathing waveform"):
        result = [int(value[i:i+2], 16) for i in range(0, len(value), 2)]
        #print unfiltered data in console
        print('Ungefilterte Daten vom Typ: ' + typ + ' mit den Werten: ' + value)
        result = [value]
    return result, new_meaning_typ

So based on the user guide I gave a table of keys. Since I only want some parameters, I convert them.
So I use a checksum to compare whether the data is coming in correctly.
Then I sort by the table and finally convert the data.

Is the conversion incorrect? The script runs parallel to the measurement recording

Thanks in advance