SELECTION GUIDE ArduinoGravity

DFRobot Heart Rate Sensor Selection Guide: ECG vs. PPG & How to Choose

DFRobot Apr 24 2020 267645

When building a wearable health monitor, a smart fitness tracker, or a remote patient monitoring prototype, choosing the right heart rate sensor is the most critical step. However, with various technologies like ECG and PPG available, finding the perfect match for your Arduino, ESP32, or Raspberry Pi project can be overwhelming.

In this selection guide, we will break down the differences between ECG and PPG technologies and compare four popular DFRobot heart rate sensors to help you make an informed decision.

 

1. Core Technology: ECG vs. PPG

Before diving into specific modules, it is essential to understand the two primary technologies used in heart rate monitoring: ECG and PPG.

  • ECG (Electrocardiogram): This technology is used to measure the electrical activity of the heart. It requires physical contact with the body via electrode pads to capture the electrical signals generated by each heartbeat. ECG is highly accurate and is excellent for charting real-time electrical activity.

 

  • PPG (PhotoPlethysmoGraphy): This is a simple and low-cost optical technique used to detect blood volume changing in the microvascular bed of tissues. It typically uses light (LEDs) and a photodetector. When your heart pumps blood, the volume in your capillaries changes, which alters the light reflection. PPG is non-invasive, requires only a single point of contact (like a finger or wrist), and is widely used in smartwatches.

 

2. DFRobot Heart Rate Sensor Lineup

DFRobot offers a range of sensors tailored for different development levels, from basic analog readings to advanced I2C modules with integrated algorithms.

 

SEN0213 (Gravity: Analog Heart Rate Monitor Sensor (ECG) for Arduino)

If you want to understand the electrical functions of the heart, this is your go-to sensor.

  • How it works: It captures the electrical activity that can be charted as an ECG and output as an analog reading.
  • Key Feature: ECG signals can be extremely noisy, so this module includes an AD8232 chip which will generate a clear signal from the PR and QT Intervals.
  • Best for: STEM education, biological signal study, and visualizing plotted ECG output on a PC using the Arduino IDE "Serial Plotter".
Gravity: Analog Heart Rate Monitor Sensor (ECG) for Arduino

 

SEN0203 - Gravity: PPG Heart Rate Monitor Sensor for Arduino (Analog/Digital)

This is an entry-level, thumb-sized heart rate monitor designed for microcontrollers.

  • How it works: It relies on basic PPG optical techniques to detect the pulsatile component of the cardiac cycle.
  • Key Feature: It is an extremely simple and low-cost option that you can wrap on your finger, wrist, or earlobe. It adapts a Gravity Interface to allow plug & play.
  • Best for: Beginners, basic IoT projects, and low-cost wearable prototypes. (Note: This sensor is designed to work when the user is not moving).
Gravity: PPG Heart Rate Monitor Sensor for Arduino (Analog/Digital)

 

The Game Changers: Integrated MCU & Algorithms (SEN0518 & SEN0344)

One of the biggest pain points for developers using the popular Maxim MAX30102 sensor is writing complex algorithms to convert raw optical data into usable heart rate and SpO2 (blood oxygen) values. We solved this by integrating a microcontroller directly into the sensor module.

 

SEN0518 (Gravity: MAX30102 PPG Heart Rate and Oximeter Sensor (I2C/UART))

  • Key Feature: This module integrates the Maxim MAX30102 chip and an MCU with a heart rate and blood oxygen algorithm. Data is converted internally and output through I2C or UART, making the sensor easy to use and greatly reducing resource occupation of the main controller.
  • Best for: Developers looking for plug-and-play SpO2 and heart rate data without writing complex math libraries.
Gravity: MAX30102 PPG Heart Rate and Oximeter Sensor (I2C/UART)

 

SEN0344 (Fermion: MAX30102 PPG Heart Rate and Oximeter Sensor V2.0 (Breakout, I2C / UART))

  • Key Feature: It packs the exact same integrated heart rate and oximetry algorithm as the SEN0518, but in a highly compact breakout design measuring only 18 x 22mm.
  • Best for: Deep integration into custom wearable electronics, portable healthcare devices, and projects with strict size limitations.
Fermion: MAX30102 PPG Heart Rate and Oximeter Sensor V2.0 (Breakout, I2C / UART)
Quick Comparison Matrix

Product Name

Gravity: Analog Heart Rate Monitor Sensor (ECG) for Arduino

Gravity: PPG Heart Rate Monitor Sensor for Arduino (Analog/Digital)

Gravity: MAX30102 PPG Heart Rate and Oximeter Sensor (I2C/UART)

Fermion: MAX30102 PPG Heart Rate and Oximeter Sensor V2.0 (Breakout, I2C / UART)

Figure

SKU

SEN0213

SEN0203

SEN0518

SEN0344

Technology

ECG

PPG

PPG

PPG

Measures SpO2?

No

No

Yes

Yes

Output

Analog

Analog/Digital

I2C / UART

I2C / UART

Built-in Algorithm

N/A (Uses AD8232)

No

Yes (Integrated MCU)

Yes (Integrated MCU)

Form Factor

Gravity Module (Plug&Play)

Gravity Module (Plug&Play)

Gravity Module (Plug&Play)

Fermion Breakout

Add to Cart

Add to Cart

Add to Cart

Add to Cart

Add to Cart

Disclaimer: None of these products are professional medical devices and should not be used to diagnose or treat medical conditions.

 

Final Verdict: Which should you buy?

Choose SEN0213 (Gravity: Analog Heart Rate Monitor Sensor (ECG)) if you want to explicitly measure and visualize the electrical ECG signals of the heart.

Choose SEN0203 (Gravity: PPG Heart Rate Monitor Sensor) if you need the most budget-friendly, simple optical pulse reading for a static project.

Choose SEN0518 (Gravity: MAX30102 PPG) or SEN0344 (Fermion: MAX30102 PPG V2.0) if you want professional-grade PPG tracking with blood oxygen data, and you want to skip the headache of algorithm coding. Choose the Gravity version for quick prototyping, and the Fermion version for miniature wearable integration.