Best pulse sensor

I’m ISO a pulse sensor that will work with the Particle library. I’ve seen one from, but it’s $25 a piece (which is fine for 1, but my director will balk if I ask for 36 of them for my students and me). OTOH, I do want a quality product. Does anyone have any recommendations? (No jokes about robbing a bank, please :slight_smile:

@mprogers, I prefer using a MAX30100 pulse oximeter like THIS ONE on a AliExpress. It uses I2C and I find it quite reliable and easy to use. There are numerous libraries available. The one I use is this one:


Thanks, @peekay123. I take it this will work with the Photon (my knowledge of I2C needs work). Will the MAX30102 also work? I’ve seeing those advertised too …

@mprogers, I have it working on a photon and I can share the web IDE library if you want :wink:

That would be awesome, thank you!



1 Like

Excellent! I know your link sent me to the (apparently newer) MAX30102, but your library says it’s for the MAX30100. Are you using the MAX30102?

@mprogers, I’m using it on a MAX30102 board without issues.


I’m trying to use the MAX30102, according to which I am currently … dead :roll_eyes:

I’ve got SCL connected to D1, SDA to D0, VIN and GND connected. Do I just put my fingertip down on the glass window in the center of the board? I’ve noticed that if I disconnect GND, I get a reading:

BPM: 0.00 | SaO2: 98.97%

but when I reconnect it, nothing.

I notice that D2 (well, in the code it’s just 2, but I presume D2) is being set to output, I’ve got that connected to nothing at all.

Thanks for any assistance (from the great beyond, aka Missouri :grinning:)

@mprogers, the MAX30102 board I bought from AliExpress iscalled a MAX30102 but the silkscreen on the board shows MAX30100! The app I linked to should work for either. However, I need to add 4.7K ohm pull-up resistors to the I2C lines. Did you do the same?

I did not, but I will give it a try, thank you!

1 Like

Still no luck, with 4.7k resistors going from D0 and D1 to 3V3, I have no output (except when I disconnect from GND – that still produces the output I listed above).

  1. Does this board (I’m assuming we really do have the same one) have LEDs? Nothing lights up at all on mine, and I read a discussion on an Arduino site about there being LEDs.
  2. I am just putting my finger on the glassy surface in the middle of the board – is that all I need to do to trigger a pulse? It seems like I’d need to do more.
  3. Finally, I’m using 4 pins – GND, SDA, SCL and VIN – but there are 4 on the other side of the board labeled INT, IRD, RD and GND (and I read some discussion of connecting IRD). Do I have to do anything with those?

Thanks again for your help, I really appreciate it!

Thanks to my brilliant and underpaid assistant, the problem has been resolved — it turns out that those pins on the other side of the chip do matter, in particular RD.

1 Like

A small addendum: the glassy area became skin-burning hot when I tried to take my pulse, so … we’re not quite there yet.

One question: does it work?
On sellers website is an “Test wiring”-picture with I2C, but without using IRD and RD.

Thanks for asking, but, alas, no, I still can’t get it to work. I’ve tried it as shown in that diagram, and it outputs BEAT once and then … nada. When I hooked up RD the red led lights up, but it gradually gets too hot to touch.

I may just try and scrounge up an Arduino and see if I can get it to work on that, since there seems to be more Arduino-MAX 30100 documentation than Photon-MAX 30100 documentation. I will also ask the vendor …

To summarize, I believe I have rediscovered the maxim, you get what you pay for :roll_eyes:

You bought 36 pieces - test another :wink:

Actually, I guess I need to apologize to the vendor. I hooked it up to an Arduino, and working through the SparkFun tutorial, I’m getting numbers that … look right … although that’s for a MAX 30105, I guess it’s compatible?

For the record, I’ve hooked up just 4 pins: 3V3, GND, SCL and SDA, and the red led glows (but much less intensely when I was getting my finger burned😉)

Could you post a pic of the wiring?
I have the same questions with this sensor.

Are you sure, none of the examples I’ve seen uses the pins on the other side?