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

How to Use MAX30102 HR + SpO2 sensor: Examples, Pinouts, and Specs

Image of MAX30102 HR + SpO2 sensor
Cirkit Designer LogoDesign with MAX30102 HR + SpO2 sensor in Cirkit Designer

Introduction

The MAX30102 is an integrated pulse oximetry and heart-rate monitor sensor module. It combines two LEDs, a photodetector, optimized optics, and low-noise analog signal processing to detect pulse oximetry and heart-rate signals. The MAX30102 is widely used in wearable health devices, fitness trackers, and medical monitoring devices due to its small form factor and low power consumption.

Explore Projects Built with MAX30102 HR + SpO2 sensor

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 HR + SpO2 sensor 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 HR + SpO2 sensor 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
Arduino Mega 2560-Based Heart Rate and SpO2 Monitor with MAX30102 Sensor
Image of Szakdoga: A project utilizing MAX30102 HR + SpO2 sensor in a practical application
This circuit consists of an Arduino Mega 2560 microcontroller connected to a MAX30102 heart rate and SpO2 sensor. The Arduino provides power to the sensor and communicates with it via I2C protocol, enabling the measurement and monitoring of heart rate and blood oxygen levels.
Cirkit Designer LogoOpen Project in Cirkit Designer
Battery-Powered Heart Rate Monitor using Seeed Studio nRF52840 and MAX30102
Image of Senior Design-Circuitry: A project utilizing MAX30102 HR + SpO2 sensor in a practical application
This circuit integrates a Seeed Studio nRF52840 microcontroller with a MAX30102 sensor module. The microcontroller powers the sensor and communicates with it via I2C protocol, enabling functionalities such as heart rate and SpO2 monitoring.
Cirkit Designer LogoOpen Project in Cirkit Designer

Explore Projects Built with MAX30102 HR + SpO2 sensor

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 HR + SpO2 sensor 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 HR + SpO2 sensor 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 Szakdoga: A project utilizing MAX30102 HR + SpO2 sensor in a practical application
Arduino Mega 2560-Based Heart Rate and SpO2 Monitor with MAX30102 Sensor
This circuit consists of an Arduino Mega 2560 microcontroller connected to a MAX30102 heart rate and SpO2 sensor. The Arduino provides power to the sensor and communicates with it via I2C protocol, enabling the measurement and monitoring of heart rate and blood oxygen levels.
Cirkit Designer LogoOpen Project in Cirkit Designer
Image of Senior Design-Circuitry: A project utilizing MAX30102 HR + SpO2 sensor in a practical application
Battery-Powered Heart Rate Monitor using Seeed Studio nRF52840 and MAX30102
This circuit integrates a Seeed Studio nRF52840 microcontroller with a MAX30102 sensor module. The microcontroller powers the sensor and communicates with it via I2C protocol, enabling functionalities such as heart rate and SpO2 monitoring.
Cirkit Designer LogoOpen Project in Cirkit Designer

Common Applications and Use Cases

  • Wearable devices for heart rate monitoring
  • Fitness trackers that measure blood oxygen levels
  • Portable medical monitoring devices
  • Sleep tracking devices

Technical Specifications

Key Technical Details

  • Power Supply Voltage (VCC): 1.8V to 3.3V
  • Operating Current: 0.6mA (typical) during Heart Rate and SpO2 measurement
  • Peak LED Output Current: 50mA (maximum)
  • Operating Temperature Range: -40°C to +85°C
  • Communication Interface: I2C (up to 400kHz)

Pin Configuration and Descriptions

Pin Number Name Description
1 VIN Power supply (1.8V to 3.3V)
2 SDA I2C Data Line
3 SCL I2C Clock Line
4 INT Interrupt pin (active low)
5 IR Infrared LED cathode
6 R Red LED cathode
7 GND Ground

Usage Instructions

How to Use the Component in a Circuit

  1. Power Supply: Connect the VIN pin to a 1.8V to 3.3V power source and the GND pin to the ground.
  2. I2C Communication: Connect the SDA and SCL pins to the corresponding I2C data and clock lines on your microcontroller.
  3. Interrupts (Optional): The INT pin can be connected to an interrupt-capable GPIO pin on your microcontroller to handle events like data-ready.

Important Considerations and Best Practices

  • Ensure that the power supply is stable and within the specified voltage range.
  • Place the sensor close to the skin to get accurate readings.
  • Avoid direct sunlight on the sensor as it may interfere with the readings.
  • Use pull-up resistors on the I2C lines if they are not already present on the microcontroller board.

Example Code for Arduino UNO

#include <Wire.h>
#include "MAX30105.h" // Include the MAX30105 library

MAX30105 particleSensor;

void setup() {
  Serial.begin(115200); // Initialize serial communication at 115200 baud rate
  Wire.begin(); // Initialize I2C

  if (!particleSensor.begin(Wire, I2C_SPEED_FAST)) { // Initialize sensor
    Serial.println("MAX30102 was not found. Please check wiring/power.");
    while (1);
  }

  particleSensor.setup(); // Configure sensor with default settings
  particleSensor.setPulseAmplitudeRed(0x0A); // Set Red LED amplitude
  particleSensor.setPulseAmplitudeIR(0x0A); // Set IR LED amplitude
}

void loop() {
  long irValue = particleSensor.getIR(); // Read IR value

  if (irValue > 50000) { // Check if the sensor is covered
    // Read the heart rate and SpO2 levels
    float heartRate, spO2;
    if (particleSensor.checkForBeat(irValue) == true) {
      if (particleSensor.getSpO2(&spO2, &heartRate)) {
        Serial.print("Heart Rate: ");
        Serial.print(heartRate);
        Serial.print(" bpm - SpO2: ");
        Serial.print(spO2);
        Serial.println("%");
      }
    }
  } else {
    Serial.println("No finger?");
  }

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

Troubleshooting and FAQs

Common Issues Users Might Face

  • Inaccurate Readings: Ensure the sensor is properly placed on the skin and not affected by external light sources.
  • No Data: Check the I2C connections and ensure the correct I2C address is used in the code.
  • Sensor Not Detected: Verify the power supply and connections to the sensor.

Solutions and Tips for Troubleshooting

  • If you encounter inaccurate readings, try adjusting the LED pulse amplitude settings in the code.
  • For connectivity issues, use a multimeter to check the continuity of the I2C lines and the power supply.
  • Ensure that the sensor is not exposed to strong electromagnetic interference.

FAQs

Q: Can the MAX30102 be used on a 5V system? A: The MAX30102 operates at 1.8V to 3.3V. A logic level converter is required for 5V systems.

Q: How can I improve the accuracy of the readings? A: Ensure a snug fit against the skin, minimize motion, and avoid direct sunlight on the sensor.

Q: What is the I2C address of the MAX30102? A: The default I2C address is 0x57 (7-bit).

Q: Can the MAX30102 measure heart rate through clothes? A: No, the sensor needs to be in direct contact with the skin for accurate measurements.