Infrared Pulse Sensor

IR pulse sensor and oscilloscopeLast week, I bought something I’ve wanted for quite some time: an oscilloscope. I’ve been doing more projects where a scope would be useful, such as audio amplifiers, PWM, and AC-DC rectification. And besides that, oscilloscopes are just plain cool. Of course, a scope by itself isn’t much fun, it needs something to measure. Something like an AC sine-wave, or an audio signal, or maybe… a person’s pulse rate? It’s possible, with the right sensor. Sean Michael Regan shows us how in the latest MAKE Weekend Project. I knew right away that it was perfect for trying out my scope. It was a bit of work, primarily because I modified the circuit, but the finished sensor is a lot of fun, and there is a lot of potential for doing more with it.

IR pulse sensor topThe circuit is pretty simple. An IR emitter/detector combo measures the amount of infrared light reflected by the blood circulating in your finger. The result is cleaned up by a couple op-amps, amplified by a transistor and then sent down a wire where it can be read by a scope, microcontroller, robot or whatever you may have. The MAKE article provides a detailed walk-through on building the circuit and viewing the results with an Arduino and a Processing program. If you follow the directions as-is it’s a pretty simple circuit with a good layout, and shouldn’t be too difficult to build. As Sean points out though, the circuit is based on a slightly more complicated one from Let’s Make Robots! (LMR), and after comparing the circuits, I decided I wanted to build my circuit based on the that one while using the layout from the MAKE article.

IR pulse sensor bottomI used the LM358 Op Amp used in the LMR circuit, which required some careful changes to the layout and wiring as the two op amps have significantly different pinouts. It was worth it though, as it cleared up some space that would otherwise be wasted by the unused portion of the LM324. I used this space to install a 100uf electrolytic capacitor across the power supply rails. I changed the location of the first tantalum capacitor to make room for the first Op Amp’s feedback resistor, which was excluded in the MAKE circuit. I used some free space in one of the corners to install a 10k trimpot, which is wired in between the two Op Amp stages, allowing for finer control of the output signal. My final modification was the addition of a small power indicator LED.

IR pulse sensor traces

I don’t know how much of a difference the power supply cap and additional feedback resistor make, but as the above image shows, adjusting the 10k potentiometer can have a noticeable effect. Over most of the range it doesn’t seem to do much, but if you tweak it a bit towards the high side it will sharpen the peaks. It makes the scope look somewhat like an EKG machine, which is cool when demonstrating the circuit to friends, but otherwise it doesn’t seem too useful. I’d probably skip it if I built this sensor again.

A lot of the projects I build aren’t too interesting to my friends and family, but everyone seems to really enjoy this one. They can put their finger in the sensor and see their pulse displayed on the screen, which makes it fun to interact with. It also gives them some sense of how sensors “see” things and translate what they see into an electrical pulse. I enjoyed building and testing this circuit, and it wasn’t too expensive to do. Now that it’s complete, I look forward to getting it hooked up to an Arduino and seeing what I can come up with.


If you’d like to see full-resolution photos of the sensor, I have some in this set on flickr.

Also, check it out: my modified pulse sensor has been featured on MAKE’s website!

10 thoughts to “Infrared Pulse Sensor”

  1. Hey I am planning on building this for my Biophysics project at my university – how would you connect the IR Pulse Sensor to just an Oscilloscope? – let me know please!

    1. Hi Max! If you look at the top photo, you’ll notice a breadboard connected to everything. It’s not very clear in the photo, but what I have on the breadboard is a 5v regulated power supply. The red power wire from the sensor goes to 5v and the black ground wire goes to negative (0v). The scope’s ground clip is also connected to negative, and the probe is connected to the white wire. Hope that helps and good luck!

  2. hey scott i need help the time when i compile the program it showed error
    readstringuntil(char) does not exist in the line String inString = myPort.readStringUntil(‘\n’);

    1. Hi shashidhar mishra!
      If you still need it, the readstringuntil(char) error has been reported as a Processing bug and they will fix it for the next release. Yo can try a workaround they suggest:

      String inputString = new String(myPort.readBytesUntil(‘\n’));

      If that doesn’t work for you, depending on your OS you can try downloading the previous processing version o modify the serial library yourself.

      Hope that helps

      1. Thanks sthalo for offering some help! I didn’t actually use the program myself (since I used the oscilloscope) so I have no experience with the program from MAKE’s site.

    1. Sorry, I don’t have any additional information except what I’ve posted here. You can view the schematic for the original circuit on the Make site, which I’ve linked to.

Leave a Reply

Your email address will not be published. Required fields are marked *