This sensor is surprisingly difficult to use but I still learned a lot. As suggested, I took a look at the raw data from the sensor using an M5Stack Arduino program. Although you can see the pulse data, it is very unstable, noisy and has a varying offset. Here is a very good description of what it takes to make the MAX30100 work. https://morf.lv/implementing-pulse-oximeter-using-max30100 In addition to what the article says, the two Heart sensors I have behave differently and would require individual calibrations.