Best pulse sensor


#1

I’m ISO a pulse sensor that will work with the Particle library. I’ve seen one from PulseSensor.com, 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:


#2

@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:


#3

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 …


#4

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


#5

That would be awesome, thank you!


#6

Voila!

https://go.particle.io/shared_apps/5a9b1286ffd30675440004b6

:rocket:


#7

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?


#8

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


#9

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:

BEAT
BPM: 0.00 | SaO2: 98.97%
{P2|BPM|255,40,0|0.00|SaO2|0,0,255|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:)


#10

@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?


#11

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


#12

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!


#13

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.


#14

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


#15

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


#16

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:


#17

You bought 36 pieces - test another :wink:


#18

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😉)