I’m trying to parse raw data from the CMS50N Bluetooth Pulse Ox. I couldn’t find any documents online describing the format, so I’m stuck reverse engineering.
Can someone please help interpret the data?
Here’s what I could gather so far:
Device sends 2 packets per second
Each packet is 9 bytes long
First 8 bytes look like unsigned ints, and roughly match a Photoplethysmogram graph also seen on the device’s screen
Last byte is varying a lot, no idea what it means.
I guess calculating the heart rate can be done by counting the number of peaks per second (assuming 16 readings measured at the periodic interval = 1 second), but I have absolutely no idea of how to calculate SpO2 or Perfusion Index.
Can anyone guide me to the resources where I can find formulas for this or just general info? Also some examples with real data would be really nice so I could just try to guess what these numbers mean by plugging them in different formulas and seeing what fits.
Hi @SergeyPoznyakAkvelon , I’m not sure this will help, but I see there is an app that interprets the data from the CMS50FW - I know that’s a different model than yours, so I’m not sure if the data format is the same. Anyway, that app looks like it’s open source, so I took a quick peak at the github repository https://github.com/albertcbraun/CMS50FW - I’m not much of an Android developer but it looks like they are parsing the dataFrame in this format: