Picture of Electrocardiograph & Heart Rate Monitor
This instructable shows you how to make an electrocardiograph and a heart rate monitor. It is intended to be a fun science project only. Of course, it should not serve as a medical purpose.

PLEASE NOTE : To avoid any risk of electric shock, only use battery alimentation. Electrodes are theorically isolated from the circuit by the instrumentation amplifier, but play safe. I'm not responsible for any accident that may happen. 

This is a simple design that fits on a single breadboard. You are free to experiment and to custom it for your needs.

Since it's my first Instructable and also since English is my second langage, don't hesitate to contact me if you find an error or if you want some clarifications about a section or another. I will be happy to edit my project for the better!

Step 1: List of Materials

Picture of List of Materials
- (1) Instrumentation amplifier INA128
- (1) Operational amplifier 741
- (1) Arduino Uno
- (1) 16x2 characters Liquid crystal display
- (1) Voltage regulator 7805
- (1) 8 ohms mini speaker
- (1) Brigth LED (I use a 10 mm one)
- (1) Diode 1N3064
- (2) 9V Batteries with connectors
-  Breadboard
-  Jump wires
Resistors :
- (2) 100 ohms, 1/4W
- (1) 470 ohms, 1/4W
- (1) 1 kiloohms, 1/4W
- (2) 10 kiloohms, 1/4W
- (2) 100 kiloohms, 1/4W
- (1) 1 Megaohms, 1/4W
Capacitors :
- (1) 10 nF
- (1) 47 nF

For the electrodes :
- About one meter of speaker wire
- Antistatic wrist strap
- Medical tape
- Aluminum paper
- (2) metallic paper clips
- Shower gel (a substitute for electrocardiogram gel)

Optional but recommended:
-Oscilloscope, for the electrocardiography part of the device
1-40 of 120Next »
I am trying to make this project can you tell me about that which type of oscilloscope you used
ReD62 months ago

Hello birdyberth! Congratulation fantastic project!

But I have a problem...my project detects only the first beat immediately after printing "<30 you're dead". I copied the same as both the code and all cables: what may depend? (I have, however, a screen with i2c)

sorry for my english XD

birdyberth (author)  ReD62 months ago

Are you getting a pulse? The LED is supposed to flash at each pulse. If it is not the case, check your circuit connections, especially the connections of your electrodes. If you have an oscilloscope, use it to see what is going on.

ReD15 birdyberth2 months ago

Thanks for response birdyberth! Connections appear correct, but it seems that the electrodes are the problem because they do not send any signal (I have done as you did and how it was explained here: "http://www.instructables.com/id/How-to-make -ECG-pads-conductive-gel / " but I can not get anything. the light is always on, LCD always print "<30" and sound of minispeaker is ongoing. The only difference is that I use the LCD with I2C and then use the battery connected to the jack and not to 5v Arduino. may depend on what?

Thanks in advance you're very kind!

nck6662 months ago

Hi, I'm building this project for my final in my robotics class. I can get my LCD to print <30 you're dead and the speaker to make the flat tone, but I can't seem to have the electrodes translate any signal into the circuit, and I'm using real ECG electrode pads. I did remove the LED since it wasn't lighting up and everything else still works.

Any tips?

responding ASAP would be preferable since my project is due in like 3 days

birdyberth (author)  nck6662 months ago

Lol "my project is due in 3 days" you have a great sense of humor since you're copying all my work for your final. Your project huh? I hope it will receive a good grade! And most of all you want me to respond ASAP! Hahaha! Open source does not mean it's ok to plagiarize. Maybe a bit of reading of the current licence of this project can help you : https://creativecommons.org/licenses/by-sa/4.0/

ReD6 nck6662 months ago

I have same problem! Do you have solve?

nck666 ReD62 months ago

I don't!

Somebody please please help us!

OrkemY3 months ago


I trıed to use your code and cırcuıt schematıc ın my project. but ıt dıdn't work. I tested components as well everythıng ıs fıne. the problem ıs ıt ıs always showıng below 30 bpm, and LED ıs not blınkınd ıt ıs alwyas on, and on the LCD ıt ıs always showıng "dead". I cannot fıgure out the problem.can you please gıve me any ıdeas ?? Thank you, apprecıate ıt !

birdyberth (author)  OrkemY2 months ago

It's because you are dead! Seriously, check the electrodes connections, it's a bit tricky to make them pick up the faint heart signal.

ReD6 OrkemY2 months ago

I have same problem! Do you have solve?

SiR34 months ago

Bonjour birdyberth merci pour cet tuto,

j'ai une question pour la masse de circuit: est ce que toutes les masses du circuit sont reliées à l'électrode de référence ou seulement la masse de l'amplificateur qui reliée à l'electrode??

corradini SiR33 months ago

(translation for others:)

"I have a question about the circuit grounding: are all the grounds connected to the reference electrode, or just the amplifier ground?"

birdyberth (author)  corradini2 months ago

(translation for others:)

Yes, all the grounds are connected to the reference electrode. You could add a virtual ground between the circuit and the reference electrode if you like, but I've not tested this.

birdyberth (author)  SiR32 months ago

Oui, toutes les masses sont reliées ensemble! L'électrode de référence est reliée à la masse générale du circuit. Mais si tu veux vraiment être puriste tu peux rajouter un circuit de "virtual ground" entre les masses du circuit et l'électrode de référence, ça peut peut-être améliorer un peu les performances, je ne l'ai pas essayé.

nasdly.diaz4 months ago

Hi. thanks you tuto is good, i have a doubt the 741 is used as virtual ground? and I don't understand diode use.

birdyberth (author)  nasdly.diaz2 months ago

No, the 741 is used as a comparator. The diode is a protection for the Arduino input pin, preventing the voltage to drop below ground.

Hi birdyberth,

Could you explain how the Arduino is able to read continuous data such as heart rate through the digital pin even though it's more of an analog signal?

ie. I thought that any data input through the digital pin will either be high/low (on/off) - how are you able to display the ECG wave through the digital pin rather than the analog?

Kind Regards,

birdyberth (author)  footballfanatic2 months ago

I'm not able to display the ECG wave with the arduino, for this task I'm using an external oscilloscope. You are right, the digital pin samples only high and low states. In my circuit, I'm generating a transition from low to high at each heart pulse. The arduino then measures the time between those pulses and computes the frequency of the heart beat.

SiR34 months ago

Merci birdyberth pour cet tuto, svp est ce que je peux changer l'INA128 par l'AD620?

birdyberth (author)  SiR32 months ago

Probablement. Cependant, il va peut-être falloir que vous ajustiez la résistance du gain pour obtenir un bon résultat.

DusanPaun4 months ago

I dont have an oscilloscope, can I use a programs that simulate oscilloscope on mine PC and still have a real time communication between them two?

birdyberth (author)  DusanPaun2 months ago

Yes, because my project works at a low frequency you can easily sample the signal with the sound card of your computer. I'm sure you can find a lot of tutorials on how to do this on the internets.

ck79sg5 months ago

Hi, I would like to know, what is the purpose of using another OpAmp 741?

Also, can I use OpAmp INA126 instead of using INA128?

birdyberth (author)  ck79sg4 months ago

Hi, you can use the INA126 instead, just adjust the gain resistor to have something similar to my values. The 741 is used as a simple comparator to find the peak of the heartbeat and output a near 5V pulse to the arduino wich acts like a frequency meter.

ck79sg birdyberth4 months ago

Hi, I have few enquiries:

(1) I've assembled the circuit, instead of using a oscilloscope to view the waveform, I have connected a digital-millimeter at the filter area. Now, when I remove(disconnect) the digital-millimeter, the LCD Screen will show <30bps, LED stopped blinking and speaker sounding a 'dead' pulse. My friend create another identical circuit and encountered same issue as mine. The only components that we uses different from yours is the diode (1N4001). I read your earlier post, diode should not post any problem.

(2) I've to convert my Arduino codes to Atmel Studio because I'm using a Atmel Development Board, do u have any codes that can run in Atmel Studio? Or do you have any website/guides that can help me?

birdyberth (author)  ck79sg2 months ago

Is it working when the DMM is connected to the circuit? If you reset after your manipulations (i.e. unplug the batteries and replug them) does it restart to work? Maybe try to add a high value resistor between your DMM and the circuit.

For Atmel Studio, sorry, I can't help you.

lovebes4 months ago

On the V- lead at the INA128, Do I just add the GND lead of the 9V battery to it? I don't have a voltage regulator..

birdyberth (author)  lovebes2 months ago

No. If you absolutely want to use a single supply you have to make a ground point in the middle of a voltage divider. I don't know if it'll work with my circuit, though.

sathya12854 months ago

Hi i am using ATMEGA-164A can you please explain how to use it?

please can you send for us the programmation of the arduino= stp donnez nous la programmation de l'arduino

birdyberth (author)  kawtherch.chrigui4 months ago

You can find it in step 3. Or in the attached file.

Merci pour ce tutoriel birdyberth, svp pouvez vous me donner plus d'information sur les électrodes utilisées???

Pourquoi tu as choisi ces amplificateurs ??

est-il possible d'utiliser des électrodes prêts ???

birdyberth (author)  Marwa.Abderrahmene4 months ago

Oui, c'est possible d'utiliser des électrodes commerciales. L'un des buts de cet instructable était de montrer qu'il est possible d'obtenir d'excellents résultats avec des électrodes faits à la main avec des matériaux pouvant s'obtenir facilement. J'ai choisi ces amplificateurs un peu pour la même raison, parce qu'ils sont vraiment pas chers et se trouvent facilement. Vous pouvez essayer d'autres amplificateurs qui ont à peu près les mêmes caractéristiques si vous ne trouvez pas ceux-là, ça ne devrait pas poser de problème.

can i get a pcb layout of this project plz

jekseni.jilty5 months ago
merveozden346 months ago

This is a great project and i prefer make for graduation project.I have resarched it for a long time.I really need more details. Suddenly, researching this site is open. I am very happy. :) Please more detail about this project. :) my email: ee.mrvozden@gmail.com thank you

How to connect my laptop instead of
1-40 of 120Next »