Creative Commons images are CC BY-NC-SA 3.0

Description: The AD8232 SparkFun Single Lead Heart Rate Monitor is a cost-effective board used to measure the electrical activity of the heart. This electrical activity can be charted as an ECG or Electrocardiogram and output as an analog reading. ECGs can be extremely noisy, the AD8232 Single Lead Heart Rate Monitor acts as an op amp to help obtain a clear signal from the PR and QT Intervals easily.

The AD8232 is an integrated signal conditioning block for ECG and other biopotential measurement applications. It is designed to extract, amplify, and filter small biopotential signals in the presence of noisy conditions, such as those created by motion or remote electrode placement.

The AD8232 Heart Rate Monitor breaks out nine connections from the IC that you can solder pins, wires, or other connectors to. SDN, LO+, LO-, OUTPUT, 3.3V, GND provide essential pins for operating this monitor with an Arduino or other development board. Also provided on this board are RA (Right Arm), LA (Left Arm), and RL (Right Leg) pins to attach and use your own custom sensors. Additionally, there is an LED indicator light that will pulsate to the rhythm of a heart beat. Biomedical Sensor Pads and Sensor Cable are required to use the heart monitor and can be found in the Recommended Products section below.

Note: This product is NOT a medical device and is not intended to be used as such or as an accessory to such nor diagnose or treat any conditions.


  • Operating Voltage - 3.3V
  • Analog Output
  • Leads-Off Detection
  • Shutdown Pin
  • LED Indicator
  • 3.5mm Jack for Biomedical Pad Connection


Recommended Products

Customer Comments

  • does this heart rate monitor sensor board, leads and the cable follow any industrial standard (e.g., during the design, manufacture and post manufacture quality test? how safe is it to connect to a human body directly following your hookup guide? is there any known potential risk when applied to human?

    • We followed all precautions outlined in the datasheets. Our internal testing procedures look for circuit faults, manufacturing defects, and general functionality. Following the hookup guide I had one stuck to me for a few hours in various spots (looking for ideal placement of sensor pads). Since this is more of a demonstration board and less of a medical device, we can’t offer the same guarantee as a medical device company. As our disclaimer states: This product is NOT a medical device and is not intended to be used as such or as an accessory to such nor diagnose or treat any conditions. Let me know if this answers your question.

      • CaseyTheRobot, thanks for the reply! I read and understand the disclaimer statement of your website. But for a hobbyist or a student that use or plan to use this this heart rate monitor in their biomedical exploration, what is the safety guidance for them if they hook up on their own bodies? I understand the required supply voltage of the sensor is pretty low. but how do you ensure the electrical current flow through the electrodes near the human heart is always low within safety range? For example, can this device be safely used in a university classroom on students for teaching and learning purpose?

        • I just looked over the schematic and the resistors being used are pretty big (between 180k and 10Mohm). These are to help isolate the person from the circuit. However, it is VERY IMPORTANT to use a completely isolated circuit. In short, do not attach this in any way to anything plugged into a wall outlet. This must remain battery operated for safety reasons. If you need to get serial data from the MCU then you are stuck either doing it wireless or through USB/serial on a laptop that IS NOT plugged into a wall or Ethernet cable.

  • How difficult would it be to have the rate be displayed on a 16x2 LCD ?

  • Does anyone know if I can use Arduino Uno ?

  • This works great for me!

    However, I ordered my own PCB that was identical to yours (I copied the eagle brd file) and tried populating it myself and it didn’t work..

    I’ve tried both reflow and hand soldering and neither method has produced a working board for me.

    Do you have documentation on how you populate your boards? Did you run into any similar problems when first working with this IC?

    • The only special consideration we have taken was with the GND pad of the AD8232. We reduced the solder paste size greatly because we found the chip floating and making bad connections. Try reducing or removing the solder from the GND pad.

    • How are you soldering it? This chip’s max temperature rating is 140 C. At that temperature most solder pastes will only start melting… and the max rating is only for a few seconds! You will need a special service to solder it I think, I have been trying to do something similar unsuccesfully… But I am looking for a service that would solder components on one or two boards… Not requiring at least 100 boards min

  • Hi,

    I’ve been trying to get a proper output of this board, and all I get is a square wave ranging from 200+ to 800+… does anyone know why this may be? I’m setting !SDN to 3.3V since I’m not using the functionality to turn off and on… and I set AC/!DC to GND that’s the only difference I did…

    Thanks in advance for the help

    • If you are using our breakout, the !SDN is tied to 3.3v by default. The AC/!DC line is tied to ground by default as well. The square wave you are seeing is the “Lead Off” Detection. You may need newer sensor pads if all three are not making good contact with skin.

      • I’m using 3 boards, 2 are yours one is mine, one of yours and mine give me the square output wave, the other one from you gives me a good ecg signal…

        Also, the leads off detection should only display a flat lined output at half or almost the potential, which it does on the good sf board, but I can’t get to seem to get an ecg waveform at all from one sf board or mine… And this output is quite intriguing me….. I want to say emi but why on two only and not the other?

  • with operating voltage at 3.3V, what is the analog output range of this Single Lead Heart Rate Monitor - AD8232 (0-1.5V)?

      • thanks! after carefully read the AD8232 data sheet. I derived the range similar as your answer. According to the data sheet, the voltage at the analog output terminal (OUT) swings in between 0.1 Volts and Vs – 0.1 Volts, where Vs is the supply voltage. If using 3.3 Volts as Vs, the output range is 0.1 – 3.2V.

  • Have connected this to a Arduino pro mini 328 and that in turn connects to a Raspberry Pi to run the processing. Both the Pro Mini and AD8232 run off of the 3.3v GPIO, whilst I get a good trace I also pick up 50hz (UK) noise and although adding a few caps diminishes it is still quite noticeable.

    Any thoughts of how to lower the noise? For example would it be good to run the Arduino and AD8232 from their own 3.3v regulators and have these use caps to lower the noise also? Any help would be appreciated as the pro mini 3.3v 328 & Pi make a great combination.

    • I reduced the noise by giving each component a 3.3v through a regulator off of the 5v Pi line and also moving things around so that the 3 sensor leads didn’t come near or cross any other signal or power traces.

      Oversampling also reduced the noise.

  • Any idea the difficulty to solder this with the SparkFun hot air rework station? Also the actual or best temperature to warm the hot air rework station at? I know I should look at the datasheet, but anyone got any first hand experience? sometimes real-life experience works better than datasheets… and these chips don’t grow on trees :)…


    • Are you planning to remove the IC from the board?

      • No, I was planning on playing around with the IC on other applications since it’s an instrumentation amplifier and its tiny, and it’s not bipolar! See the possibilities there? I bought a bunch of them and printed a breakout board for these tests! I’m just wondering how I should proceed to solder it….

        • Well… I almost succeeded on my first try…. I’m only making ONE short circuit… damn… I gotta re-try it again… its so hard even being ambidextrous to control both the 500x microscope and the hot air rework station and without a helping hand… and no components/local stores are near me to buy one asap…. hmmm… gotta unsolder it and try again I guess… its funny how the packaging of the AD8232 says you have 164 hours from when you open the package to solder the pieces otherwise you’ll need to oven them first… I guess humidity does play a big factor…

          • Try turning down the air flow, sounds like you are blowing the chip off the board. lots of flux and don’t add much solder to the ground pad, without a stencil and paste, it can be tricky. you should be able to melt the solder and use surface tension (and a nice toothpick or tweezer end) to poke the chip in place. Good luck!

            • Thanks! I got the air flow at 3 it wasn’t really blowing, I did put a bit too much solder that was what I did wrong! it just squeezed on to the pads but as it squeezed solder started flowing out and making contacts lol… will try again tomorrow but wondering whether the flux will reach the gnd pad? or I should try a different IC and PCB… hate wasting…

              Thanks again for the response!

  • I plan to use this without a micro-controller. Any suggestions on how to power this? What is the voltage range it will actually accept, still function and not burn? Is 3.3V a hard upper limit or will it accept 5V or 9V? What about in the other direction, like 3.0V from a coin battery or 2xAA betteries?

  • In the tutorial, the pin connection table shows LO- is connected to Pin 11 on arduino and LO+ is connected to Pin 10. However, on the connection diagram graph, LO- is not connected to arduino and LO+ is connected to Pin 11 in green wire. ??

  • can i connect the pads to the wrist? or do the 3 pads have to be connected at the heart area?

  • Great little module: Works as advertised with sample code. Thanks!

  • Added a few lines to Casey’s excellent processing code to give multiline, 200ms tick marks, and screenshotting

    Demo Program for AD8232 Heart Rate sensor.
    Casey Kuhns @ SparkFun Electronics
    Some mods by Humphrey Gardner
    Now five lines of EKG, tick marks every 200ms, click on frame to save to the executable's directory
    The AD8232 Heart Rate sensor is a low cost EKG/ECG sensor. This example shows
    how to create an ECG with real time display. The display is using Processing.
    This sketch is based heavily on the Graphing Tutorial provided in the Arduino
    This program requires a Processing sketch to view the data in real time.
    Development environment specifics:
    IDE: Arduino 1.0.5
    Hardware Platform: Arduino Pro 3.3V/8MHz
    AD8232 Heart Monitor Version: 1.0
    This code is beerware. If you see me (or any other SparkFun employee) at the
    local pub, and you've found our code helpful, please buy us a round!
    Distributed as-is; no warranty is given.
    import processing.serial.*;
    Serial myPort; // The serial port
    int xPos = 1; // horizontal position of the graph
    int tick=millis();
    float height_old = 0;
    float height_new = 0;
    float inByte = 0;
    int baseheight=100;
    void setup () {
      // set the window size:
      size(1600, 800);
      // List all the available serial ports
      // Open whatever port is the one you're using.
      myPort = new Serial(this, Serial.list()[1], 9600);
      // don't generate a serialEvent() unless you get a newline character:
      // set inital background:
    void draw () {
      // everything happens in the serialEvent()
    void serialEvent (Serial myPort) {
      // get the ASCII string:
      String inString = myPort.readStringUntil('\n');
      if (inString != null) {
        // trim off any whitespace:
        inString = trim(inString);
        // If leads off detection is true notify with blue line
        if (inString.equals("!")) {
          stroke(0, 0, 0xff); //Set stroke to blue ( R, G, B)
          inByte = 512; // middle of the ADC range (Flat Line)
        // If the data is good let it through
        else {
          stroke(0xff, 0, 0); //Set stroke to red ( R, G, B)
          inByte = float(inString);
         //Map and draw the line for new data point
         inByte = map(inByte, 0, 512, 0, height/16);
         height_new = inByte;
         line(xPos - 1, baseheight-height_old , xPos, baseheight-height_new);
         height_old = height_new;
         //tickmark for 200 mseconds
         if (tick+200<=millis()){
           stroke(0, 0xff, 0); //Set stroke to green ( R, G, B)
           line(xPos, baseheight-20, xPos,baseheight+20);
        //screen print if wished
        if(mousePressed) { 
          // at the edge of the screen, go back to the beginning:
          if (xPos >= width) {
            xPos = 0;
          if (baseheight>height-100){
            xPos = 0;
          else {
            // increment the horizontal position:
  • Is it electrically isolated from the power supply?

  • When I followed the tutorial to try it, the plot is upside down. Any idea?

  • Why does this use RL (right leg) i stead of the commonly used LL (left leg) for 3lead ECG

    • That was pointed out by a med school friend of mine as well. I tried reading into it and didn’t get far. I didn’t know there was a prefered placement until it was pointed out.

      • Both are acceptable methods of electrode placement, this is because they both generate a relative signal reference to either left arm or right arm, you could also place the leg electrode on the right elbow or left elbow and this would still be acceptable. In a left leg electrode, It is used to monitor the voltage between the right arm electrode and the left leg electrode… similarly the other way around…

  • hey!…. the last answer is 38 minutes and 20 seconds…. Awsome video! I love you SparkFun. Thank you Robert to be on time every friday. You make me dream, thanks a bunch!

  • If my calculations are correct, the Cut-off frequency of this device is at or around 41Hz…. I’m just wondering if that seems a bit low? or I guess since its within the 0.5 - 150 Hz range shouldn’t matter? Smart… then you remove most of the 60 Hz signal noise

    • Although “clinical” grade ecgs are sampled up to 250 Hz sometimes, the majority of useful data is less than 25 Hz. LPF @41 Hz will give you a recognizable ecg signal

  • The github repo doesn’t appear to exist!

  • The eagle files link takes us to the schematic, and the github link to a 404 website. Just letting you know, in case you can modify this.


  • On the Connecting the Hardware page of the tutorial for this, it says: “The four pins you need are labeled GND, 3.3v, OUTPUT, LO-, and LO+”

    Um…, that be five pins, folks. :-)

  • Primary protection against electric shock is provided by the resistors in series with the arm and leg leads. SF should confirm that those resistors also are rated for >36V insulation resistance and that the clearances of the leads are sufficient for that voltage. Although SF customers are generally savvy, my rule for design of such devices is that they should not conduct even if an idiot user touches 120V and the device is earth-grounded.

  • Did you add the AD8232 and 3.5mm stereo jack to the SF eagle library?

Customer Reviews

4 out of 5

Based on 2 ratings:

5 star
4 star
3 star
2 star
1 star

1 of 1 found this helpful:

Nice design but beware of ESD

I was experiencing heart palpitations so I thought I would try this product out and do some self diagnosis. I hooked it up to an Arduino nano. Since my symptoms occur mostly at night I hooked myself up when I awoke at midnight in bed and immediately fried the first unit I bought, evidently by ESD from static generated by my bedsheets. You might beware of the potential for ESD and discharge yourself to ground before hooking yourself up with this product.

So, after buying a replacement unit I successfully got traces of my heart events. I matched my EKG waveform to traces I found online and guessed that my symptoms were caused by Premature Ventricular Contractions (PVC) which typically has onset in men my age. My self diagnosis was later confirmed by a cardiologist after reading data from a clinic provided 24 hour Holter monitor.

Very cool board!

I developed atrial fibrulation last November and have been in a permanent afib state since then. This board and project gave me my first opportunity to work with the Processing application for Windows. Works like a charm, gives a recognizable EKG when wired as directed and clearly indicates my particular condition. Working on controlling or reversing the afib under my cardiologist’s care, but it’s fun to make and use an actual tool for viewing the data.

Related Tutorials

AD8232 Heart Rate Monitor Hookup Guide

July 17, 2014

Learn how to create your very own heart rate monitor.