homemade pulse sensor for detecting hartbeat?

Hi guys! I do not know if this is the right place for this type of question, but I try! I'm trying to buid an homemade pulse sensor, following the schematics in this webpage


As you can see, the device is very simple and done with common electronics: some capacitors, some resistences, etc. It is a very nice sensor, as shown in the video. Obviously, I write here because I built it........ but it does not work!!!! I double checked with other people (expert in electronics) if my wiring is correct, and it seems so. I suspect there is some mistake in the electronic diagrams in teh webpage, but I'm not an expert in electronics and so I cannot debug it. The webpage furnish both Arduino code (very simple), and the Processing code for visualisation.

I was wondering if some willing guy is going to build it, test it, and find and fix the bug!!! If this is the case, I will be extremely happy to share with the community the right schematics of this sensor. Thanks a lot!!!! Valerio

Dont these usually shine the IR LED THROUGH the fingernail, causing an increase in absorption if there is blood in the finger tip?

The reflecting IR seems like a very low signal/noise to be anywhere near reliable or even produce a signal.

The article gets a few things wrong and isn't very complete.

That is not a photodiode, it is a phototransistor. I'm going by what Radio Shack's website says about that pair:


What parts are -you- using? The most critical parts are in that set of IR LED and IR phototransistor. Any substitution of the phototransistor is likely to prevent it from working.

Can you measure the voltage at the bottom of the 39k resistor with a fingertip on top of the LED and phototransistor? It should be somewhere between 1 and 5V when your finger is on top of the LED and phototransistor.

Note the symbol and orientation. Rely on the literature that came with the pair for the orientation, if it is different from this:

Thanks a lot for your interest. Well, I'm using this pair of phototransistors:


When i test them in the darkness, what I read is a voltage between 2.90 and 0.1 Volts (readings from GND and 39k resistor), according with the distance between my fingertip and the receiver. As I understand, they act as a "Sonar", the detector reading the reflection of IR light from the emitter. If this is usefull for you, I can send as soon as possible a pic of my wiring, and a short video of the Processing visualization, and the complete list of electronic stuff I'm using. I think it would great to find the bug, because this is a very nice sensor!!! Thanks again, Valerio

Not sure, but you could try shielding the emmiter from the sensor using a strip of black plastic or tape.

There is a risk that the sensor is being saturated (sideways) by the IR from the emitter???

I need a picture. Those are side looking IR phototransistors and LEDs, but you need them to both point up, not at each other. As AnalysIR says, there should be something blocking between them to prevent IR from passing over directly.

Yes, the IR is supposed to diffuse into your fingertip. Then some bounces back to the phototransistor. The amount of blood in your flesh affects how much bounces back, so your heartbeat can be seen in the current flowing through the phototransistor.

Sorry, I was going by the picture of the Led & emitter in the linked 'make' article (not the flat sideways ones).

Putting your finger between the flat ones & making sure their orientation is correct, might also help. (They are both unidirectional)

I attached here a pic showing the disposition of my IR emitter detector.
As you can see (I hope, bad quality pic!), they are placed side by side, both looking
in the same direction.

In this video

I see what are sensor readings if I directly pick the signal between IR detector and 39k resistor.
On the bottom right you can see the IR dtector emitter, my beautiful fingertip, and on top left you can see the Processing visualisation of data.
Note this is just a test for emitter detector signal.
As you can see, the signal represent (as expected), the distance between my fingertip and the IR emitter detector.
The signal seems to me very clear, so I assume the IR emitter detector are placed correctly and working in the right way.

In this other video

I test the complete circuit of Hearbeat sensor. Here I pick the signal on the Emitter of 2N3904.
Note I’m actually using a BC547C, but they should share the same features.
In this test I push my fingertip on the emitter detector. As you can see the signal is extremely noisy, but
it is clearly sensible to my fingertip. Obviously…no trace about my heartbeat!!!
One curious thing: it is clearly present a wave in the signal…but this is not related to hearbeat, given that
the wave is present even when my fingertip is not there.
Hope this helps!


Nice post...tnx

You need to make sure that the receiver is not picking up stray IR interference, by physically shielding it from the emitter and any other sources of IR.

Try putting the receiver & emitter facing each other, then place your finger between them(try different orientations for your finger). Press tight on the receiver, but not so tight that blood stops flowing. As menetioned before, this approach 'shines' IR into your finger and 'reads' the reflected IR based on the amount of blood flowing in the finger.

When testing cover you finger & sensors with something to block out any stray light or interference sources.

(TIP: I sometimes use modelling clay, blue tac or play-doh to build a basic enclosure to shield IR receivers from emmiters).

You may also try placing them closer together, by putting them head to head. But with an opaque something between them. I suspect they are simply too far apart for the phototransistor to pick up much of the IR from the LED.

The clear case on the phototransistor may be a problem, as it will then also respond to visible light.

The signal you are seeing may be AC hum. What frequency is it?

Hi again.
I did some experiment…I’m quite sure it is not a problem in the emitter detector displacement.
I’m confident too it is not a problem about IR light in the ambient.
I continue to think the major problem is in the circuit.
Here I attach a comparison between the two schematics showed in the makezine webpage:

As you can see, there is a mismatch in the two, missing a 1k resistor in the second schema.
I assume the correct diagram is the first, given that without that resistor I get absolutely nothing from the sesnor.
I guess there is still some error in the configuration.
I then attach some pic of my circuitry: I guess my arrangement (pic A), is correct ad follow the first schema.
NOTE, very important, I put the emitter detector one in front of the other (pic B, pic C): this means my fingertip
must be put between them…I’m quite confident the IR light from emitter can pass through my fingertip and reach the detector, see the next experiment:
Just for playing, I picked the signal directly from the capacitor in pic D (red circle). Yes I know…this is crazy but my knowledge in electronics is equal to 0!
Interestingly, I have a veeeery weak (and noisy) signal from Arduino. I mean values between 0 and 3… so I visualized on
Processing these values (enanching the values). This is what I got:

Even if the signal is extremly noisy, what I see in the visualiser seems my heartbeat rythm!
So, after this experiment, I’m quite convinced:

  1. the error is in the schematics furnished in the makezine webpage.
  2. The IR signal passing in my fingertip is usable (even if I need to clean it from noise and amplyfy it)
  3. I need some basic electronic issue to make the sensor work: a noise filter, and a signal amplyfier.

I’ll continue to perform experiment…now what I’ll try to do is to amplyfy the signal (ok, this is was the sensor supposed to do! ),
probably trying to rearrange the schematics.
If some guy can furnish me a basic example about Arduino and LM324 wiring, I’ll be very happy!

Yes, that 1k resistor should be there.

Leaving the other sections of the LM324 floating is a bad idea. Tie the noninverting inputs to ground, and the inverting inputs to the outputs (keeping them separate from each other). Otherwise, they are likely to do weird things like burst into oscillation or draw large amounts of current.

uhmmm … thanks but I’m not expert… do you mean somethingh like that?
If yes, do I have to repeat this even for LM324 pin 12, 13 and 14?
Thanks again!


Yes. You never want to leave inputs floating.

There is not much to like about this design. For one, there is no need for the output transistor – the emitter follower has a voltage gain of 1, which is not at all useful when connected to a high impedance input.

Is the detector ground connected to the Arduino ground?

I simulated the circuit using LTSpice to see how sensitive the input is to variations in the assumed values of the input current pulse through the phototransistor (represented in the attached circuit by a current source) and find that it is extremely so. The circuit works well with an assumed current pulse of 10 uA through the phototransistor, but not so well with other assumed values (e.g. 1 uA or 100 uA), so the selection of the phototransistor and the IR light source are likely to be critical for proper operation.

If you are interested, the LTSpice circuit file is attached, along with a snapshot of the output.

photodiode_amp.asc (2.15 KB)