Cirkit Designer Logo
Cirkit Designer
Your all-in-one circuit design IDE
Home / 
Component Documentation

How to Use MAX30102 Heart Rate and Oximeter Sensor V2.0: Examples, Pinouts, and Specs

Image of MAX30102 Heart Rate and Oximeter Sensor V2.0
Cirkit Designer LogoDesign with MAX30102 Heart Rate and Oximeter Sensor V2.0 in Cirkit Designer

Introduction

The MAX30102 Heart Rate and Oximeter Sensor V2.0, manufactured by DFRobot, is a compact and highly integrated sensor designed for measuring heart rate and blood oxygen levels. It utilizes photoplethysmography (PPG) technology, which detects changes in blood volume by shining light into the skin and measuring the reflected light. This sensor is ideal for wearable health monitoring devices, fitness trackers, and medical applications.

Explore Projects Built with MAX30102 Heart Rate and Oximeter Sensor V2.0

Use Cirkit Designer to design, explore, and prototype these projects online. Some projects support real-time simulation. Click "Open Project" to start designing instantly!
Battery-Powered Heart Rate and SpO2 Monitor with OLED Display using MAX30102 and Arduino Nano
Image of smart watch: A project utilizing MAX30102 Heart Rate and Oximeter Sensor V2.0 in a practical application
This circuit is a portable health monitoring device that uses an Arduino Nano to interface with a MAX30102 heart rate and SpO2 sensor and a 0.96" OLED display via I2C. The device is powered by a 3.7V LiPo battery, which is managed by a TP4056 charging module and a boost converter to provide a stable 5V supply.
Cirkit Designer LogoOpen Project in Cirkit Designer
Raspberry Pi 5 Heart Rate and SpO2 Monitor with MAX30102 and OLED Display
Image of capstone: A project utilizing MAX30102 Heart Rate and Oximeter Sensor V2.0 in a practical application
This circuit uses a Raspberry Pi 5 to interface with a MAX30102 sensor for measuring heart rate and SpO2 levels, and displays the readings on a 0.96" OLED screen. The Raspberry Pi handles the I2C communication with both the sensor and the display, providing real-time health monitoring data.
Cirkit Designer LogoOpen Project in Cirkit Designer
ESP-8266 Based Heart Rate and Oxygen Level Monitor with OLED Display
Image of Digital Heart Rate Sensor-2: A project utilizing MAX30102 Heart Rate and Oximeter Sensor V2.0 in a practical application
This circuit features an ESP-8266 microcontroller interfaced with a MAX30102 heart rate and oxygen sensor and a 0.96" OLED display. The ESP-8266 uses its I2C pins (D1 for SCL and D2 for SDA) to communicate with both the sensor and the display, which share the same I2C bus. The MAX30102's INT pin is connected to the ESP-8266's D0 pin, likely for interrupt-driven measurements, while all components share a common ground and are powered by the ESP-8266's 3.3V output.
Cirkit Designer LogoOpen Project in Cirkit Designer
Arduino Nano-Based Pulse Oximeter with OLED Display
Image of Pulse Oximeter- Anurag Deb: A project utilizing MAX30102 Heart Rate and Oximeter Sensor V2.0 in a practical application
This circuit is designed around an Arduino Nano microcontroller, which interfaces with a 0.96" OLED display and a MAX30102 heart rate and oxygen sensor. The OLED display shows the user's heart rate and blood oxygen saturation, while the MAX30102 sensor measures these biometrics. A pushbutton is included to allow user interaction, likely for navigating the display or setting the device into a sleep mode.
Cirkit Designer LogoOpen Project in Cirkit Designer

Explore Projects Built with MAX30102 Heart Rate and Oximeter Sensor V2.0

Use Cirkit Designer to design, explore, and prototype these projects online. Some projects support real-time simulation. Click "Open Project" to start designing instantly!
Image of smart watch: A project utilizing MAX30102 Heart Rate and Oximeter Sensor V2.0 in a practical application
Battery-Powered Heart Rate and SpO2 Monitor with OLED Display using MAX30102 and Arduino Nano
This circuit is a portable health monitoring device that uses an Arduino Nano to interface with a MAX30102 heart rate and SpO2 sensor and a 0.96" OLED display via I2C. The device is powered by a 3.7V LiPo battery, which is managed by a TP4056 charging module and a boost converter to provide a stable 5V supply.
Cirkit Designer LogoOpen Project in Cirkit Designer
Image of capstone: A project utilizing MAX30102 Heart Rate and Oximeter Sensor V2.0 in a practical application
Raspberry Pi 5 Heart Rate and SpO2 Monitor with MAX30102 and OLED Display
This circuit uses a Raspberry Pi 5 to interface with a MAX30102 sensor for measuring heart rate and SpO2 levels, and displays the readings on a 0.96" OLED screen. The Raspberry Pi handles the I2C communication with both the sensor and the display, providing real-time health monitoring data.
Cirkit Designer LogoOpen Project in Cirkit Designer
Image of Digital Heart Rate Sensor-2: A project utilizing MAX30102 Heart Rate and Oximeter Sensor V2.0 in a practical application
ESP-8266 Based Heart Rate and Oxygen Level Monitor with OLED Display
This circuit features an ESP-8266 microcontroller interfaced with a MAX30102 heart rate and oxygen sensor and a 0.96" OLED display. The ESP-8266 uses its I2C pins (D1 for SCL and D2 for SDA) to communicate with both the sensor and the display, which share the same I2C bus. The MAX30102's INT pin is connected to the ESP-8266's D0 pin, likely for interrupt-driven measurements, while all components share a common ground and are powered by the ESP-8266's 3.3V output.
Cirkit Designer LogoOpen Project in Cirkit Designer
Image of Pulse Oximeter- Anurag Deb: A project utilizing MAX30102 Heart Rate and Oximeter Sensor V2.0 in a practical application
Arduino Nano-Based Pulse Oximeter with OLED Display
This circuit is designed around an Arduino Nano microcontroller, which interfaces with a 0.96" OLED display and a MAX30102 heart rate and oxygen sensor. The OLED display shows the user's heart rate and blood oxygen saturation, while the MAX30102 sensor measures these biometrics. A pushbutton is included to allow user interaction, likely for navigating the display or setting the device into a sleep mode.
Cirkit Designer LogoOpen Project in Cirkit Designer

Common Applications and Use Cases

  • Wearable health monitoring devices
  • Fitness trackers
  • Medical-grade pulse oximeters
  • Research and development in biomedical engineering
  • IoT-based health monitoring systems

Technical Specifications

The MAX30102 sensor is designed for low-power operation and high accuracy. Below are its key technical details:

Key Technical Details

Parameter Specification
Operating Voltage 1.8V (internal) and 3.3V (I/O voltage)
Operating Current 600 µA (typical)
Standby Current 0.7 µA
Measurement Method Photoplethysmography (PPG)
Communication Interface I2C
Wavelengths Red: 660 nm, IR: 880 nm
Sampling Rate Programmable (up to 3200 samples/sec)
Operating Temperature Range -40°C to +85°C
Dimensions 13.0 mm x 8.6 mm

Pin Configuration and Descriptions

The MAX30102 module has the following pinout:

Pin Name Pin Type Description
VIN Power Input voltage (3.3V to 5V)
GND Ground Ground connection
SDA I2C Data Serial data line for I2C communication
SCL I2C Clock Serial clock line for I2C communication
INT Output Interrupt pin, used to signal data availability or errors (active low)

Usage Instructions

The MAX30102 sensor is straightforward to use in a circuit, especially with microcontrollers like the Arduino UNO. Below are the steps to integrate and use the sensor:

Connecting the Sensor

  1. Power Supply: Connect the VIN pin to a 3.3V or 5V power source and the GND pin to ground.
  2. I2C Communication: Connect the SDA pin to the Arduino's A4 pin (I2C data) and the SCL pin to the A5 pin (I2C clock).
  3. Interrupt Pin (Optional): Connect the INT pin to a digital input pin on the Arduino if you want to use interrupts.

Arduino Code Example

Below is an example Arduino sketch to read heart rate and SpO2 data from the MAX30102 sensor using the DFRobot MAX30102 library:

#include <Wire.h>
#include "DFRobot_MAX30102.h"

// Create an instance of the MAX30102 sensor
DFRobot_MAX30102 max30102;

void setup() {
  Serial.begin(9600); // Initialize serial communication
  Wire.begin();       // Initialize I2C communication

  // Initialize the MAX30102 sensor
  if (!max30102.begin()) {
    Serial.println("MAX30102 initialization failed. Check connections.");
    while (1); // Halt execution if initialization fails
  }
  Serial.println("MAX30102 initialized successfully.");
}

void loop() {
  // Variables to store heart rate and SpO2 readings
  uint8_t heartRate;
  uint8_t spo2;

  // Read heart rate and SpO2 data
  if (max30102.read(&heartRate, &spo2)) {
    Serial.print("Heart Rate: ");
    Serial.print(heartRate);
    Serial.print(" bpm, SpO2: ");
    Serial.print(spo2);
    Serial.println(" %");
  } else {
    Serial.println("Failed to read data from MAX30102.");
  }

  delay(1000); // Wait 1 second before the next reading
}

Important Considerations and Best Practices

  • Power Supply: Ensure the sensor is powered with a stable voltage (3.3V or 5V).
  • Ambient Light: Avoid exposing the sensor to excessive ambient light, as it may interfere with measurements.
  • Skin Contact: For accurate readings, ensure the sensor is in firm contact with the skin.
  • Interrupt Pin: Use the INT pin for efficient data handling in applications requiring real-time processing.

Troubleshooting and FAQs

Common Issues and Solutions

  1. Sensor Not Detected:

    • Cause: Incorrect I2C wiring or address mismatch.
    • Solution: Verify the SDA and SCL connections and ensure the I2C address matches the library's default (0x57).
  2. Inaccurate Readings:

    • Cause: Poor skin contact or excessive ambient light.
    • Solution: Ensure the sensor is firmly placed on the skin and shield it from ambient light.
  3. Initialization Fails:

    • Cause: Power supply issues or faulty connections.
    • Solution: Check the VIN and GND connections and ensure the power supply is stable.
  4. Data Read Errors:

    • Cause: I2C communication issues.
    • Solution: Check the pull-up resistors on the SDA and SCL lines (typically 4.7kΩ).

FAQs

Q1: Can the MAX30102 measure heart rate through clothing?
A1: No, the sensor requires direct contact with the skin for accurate measurements.

Q2: What is the maximum distance between the sensor and the microcontroller?
A2: The I2C communication protocol typically supports distances up to 1 meter, but shorter distances are recommended for reliable operation.

Q3: Can I use the MAX30102 with a 5V microcontroller?
A3: Yes, the module includes onboard voltage regulation, allowing it to work with 3.3V and 5V systems.

Q4: How do I improve measurement accuracy?
A4: Ensure proper skin contact, minimize motion artifacts, and avoid strong ambient light interference.

By following this documentation, users can effectively integrate and utilize the MAX30102 Heart Rate and Oximeter Sensor V2.0 in their projects.