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

How to Use MAX30102: Examples, Pinouts, and Specs

Image of MAX30102
Cirkit Designer LogoDesign with MAX30102 in Cirkit Designer

Introduction

The MAX30102, manufactured by Azil Selsabile (Part ID: MAX30102), is a pulse oximeter and heart-rate sensor designed for non-invasive monitoring of vital signs. It utilizes photoplethysmography (PPG) technology to measure blood oxygen levels (SpO2) and heart rate. The module integrates red and infrared LEDs, a photodetector, optical elements, and low-noise electronics, making it a compact and efficient solution for wearable health devices and medical monitoring systems.

Explore Projects Built with MAX30102

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 Health Monitoring System with Nucleo WB55RG and OLED Display
Image of Pulsefex: A project utilizing MAX30102 in a practical application
This circuit is a multi-sensor data acquisition system that uses a Nucleo WB55RG microcontroller to interface with a digital temperature sensor (TMP102), a pulse oximeter and heart-rate sensor (MAX30102), and a 0.96" OLED display via I2C. Additionally, it includes a Sim800l module for GSM communication, powered by a 3.7V LiPo battery.
Cirkit Designer LogoOpen Project in Cirkit Designer
ESP32-Based Multi-Sensor Health Monitoring System with Bluetooth Connectivity
Image of circuit diagram: A project utilizing MAX30102 in a practical application
This circuit features an ESP32-WROOM-32UE microcontroller as the central processing unit, interfacing with a variety of sensors and modules. It includes a MAX30100 pulse oximeter and heart-rate sensor, an MLX90614 infrared thermometer, an HC-05 Bluetooth module for wireless communication, and a Neo 6M GPS module for location tracking. All components are powered by a common voltage supply and are connected to specific GPIO pins on the ESP32 for data exchange, with the sensors using I2C communication and the modules using UART.
Cirkit Designer LogoOpen Project in Cirkit Designer
ESP32 and MAX30100 Pulse Oximeter
Image of t: A project utilizing MAX30102 in a practical application
This circuit features an ESP32 microcontroller connected to a MAX30100 sensor, which is likely used for measuring pulse oximetry. The ESP32 is interfaced with the MAX30100 via I2C communication, as indicated by the SDA and SCL connections. Power is supplied to both the ESP32 and the MAX30100 by a 5V battery, with common ground established across the components.
Cirkit Designer LogoOpen Project in Cirkit Designer
ESP32-Based Health Monitoring System with Bluetooth and GPS
Image of circuit diagram: A project utilizing MAX30102 in a practical application
This circuit integrates an ESP32 microcontroller with various sensors and modules, including a MAX30100 pulse oximeter, an MLX90614 infrared thermometer, a Neo 6M GPS module, and an HC-05 Bluetooth module. The ESP32 collects data from these sensors and modules via I2C and UART interfaces, enabling wireless communication and GPS tracking capabilities.
Cirkit Designer LogoOpen Project in Cirkit Designer

Explore Projects Built with MAX30102

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 Pulsefex: A project utilizing MAX30102 in a practical application
Battery-Powered Health Monitoring System with Nucleo WB55RG and OLED Display
This circuit is a multi-sensor data acquisition system that uses a Nucleo WB55RG microcontroller to interface with a digital temperature sensor (TMP102), a pulse oximeter and heart-rate sensor (MAX30102), and a 0.96" OLED display via I2C. Additionally, it includes a Sim800l module for GSM communication, powered by a 3.7V LiPo battery.
Cirkit Designer LogoOpen Project in Cirkit Designer
Image of circuit diagram: A project utilizing MAX30102 in a practical application
ESP32-Based Multi-Sensor Health Monitoring System with Bluetooth Connectivity
This circuit features an ESP32-WROOM-32UE microcontroller as the central processing unit, interfacing with a variety of sensors and modules. It includes a MAX30100 pulse oximeter and heart-rate sensor, an MLX90614 infrared thermometer, an HC-05 Bluetooth module for wireless communication, and a Neo 6M GPS module for location tracking. All components are powered by a common voltage supply and are connected to specific GPIO pins on the ESP32 for data exchange, with the sensors using I2C communication and the modules using UART.
Cirkit Designer LogoOpen Project in Cirkit Designer
Image of t: A project utilizing MAX30102 in a practical application
ESP32 and MAX30100 Pulse Oximeter
This circuit features an ESP32 microcontroller connected to a MAX30100 sensor, which is likely used for measuring pulse oximetry. The ESP32 is interfaced with the MAX30100 via I2C communication, as indicated by the SDA and SCL connections. Power is supplied to both the ESP32 and the MAX30100 by a 5V battery, with common ground established across the components.
Cirkit Designer LogoOpen Project in Cirkit Designer
Image of circuit diagram: A project utilizing MAX30102 in a practical application
ESP32-Based Health Monitoring System with Bluetooth and GPS
This circuit integrates an ESP32 microcontroller with various sensors and modules, including a MAX30100 pulse oximeter, an MLX90614 infrared thermometer, a Neo 6M GPS module, and an HC-05 Bluetooth module. The ESP32 collects data from these sensors and modules via I2C and UART interfaces, enabling wireless communication and GPS tracking capabilities.
Cirkit Designer LogoOpen Project in Cirkit Designer

Common Applications

  • Wearable fitness trackers and smartwatches
  • Medical devices for SpO2 and heart rate monitoring
  • Health and wellness applications
  • Remote patient monitoring systems
  • Research and development in biomedical engineering

Technical Specifications

The MAX30102 is a highly integrated sensor module with the following key specifications:

Parameter Value
Supply Voltage (VDD) 1.8V
LED Supply Voltage (VLED) 3.3V
Operating Current 600 µA (typical)
Standby Current 0.7 µA (typical)
Measurement Wavelengths Red: 660 nm, IR: 880 nm
Communication Interface I²C (up to 400 kHz)
Operating Temperature -40°C to +85°C
Dimensions 5.6 mm x 3.3 mm x 1.55 mm

Pin Configuration and Descriptions

The MAX30102 module has the following pinout:

Pin Name Pin Number Description
GND 1 Ground connection
VDD 2 Power supply for the internal circuitry (1.8V)
VLED 3 Power supply for the LEDs (3.3V)
SDA 4 I²C data line
SCL 5 I²C clock line
INT 6 Interrupt output (active low)
NC 7 No connection (leave unconnected or grounded)
NC 8 No connection (leave unconnected or grounded)

Usage Instructions

How to Use the MAX30102 in a Circuit

  1. Power Supply: Connect the VDD pin to a 1.8V power source and the VLED pin to a 3.3V power source. Ensure proper decoupling capacitors are used to minimize noise.
  2. I²C Communication: Connect the SDA and SCL pins to the corresponding I²C lines of your microcontroller. Use pull-up resistors (typically 4.7 kΩ) on both lines.
  3. Interrupt Pin: The INT pin can be connected to a GPIO pin on the microcontroller to handle interrupts for data-ready signals.
  4. Grounding: Connect the GND pin to the ground of your circuit.

Important Considerations and Best Practices

  • Optical Isolation: Ensure the sensor is isolated from ambient light to improve measurement accuracy.
  • Placement: For wearable applications, place the sensor in direct contact with the skin.
  • I²C Address: The default I²C address of the MAX30102 is 0x57. Ensure no address conflicts with other devices on the I²C bus.
  • Initialization: Configure the sensor's registers for desired operation (e.g., LED pulse amplitude, sampling rate, etc.) during initialization.

Example Code for Arduino UNO

Below is an example of how to interface the MAX30102 with an Arduino UNO to read heart rate and SpO2 data:

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

MAX30102 sensor; // Create an instance of the MAX30102 class

void setup() {
  Serial.begin(9600); // Initialize serial communication
  Wire.begin();       // Initialize I²C communication

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

void loop() {
  int heartRate = 0;
  int spo2 = 0;

  // Read heart rate and SpO2 values
  if (sensor.readHeartRateAndSpO2(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. Ensure proper sensor placement.");
  }

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

Notes:

  • Install the appropriate MAX30102 library in your Arduino IDE before running the code.
  • Ensure the sensor is properly connected to the Arduino UNO:
    • SDA → A4 (Arduino UNO I²C data line)
    • SCL → A5 (Arduino UNO I²C clock line)
    • INT → Any digital pin (optional, for interrupt handling)

Troubleshooting and FAQs

Common Issues

  1. Sensor Not Detected on I²C Bus

    • Cause: Incorrect wiring or missing pull-up resistors.
    • Solution: Verify connections and ensure 4.7 kΩ pull-up resistors are present on SDA and SCL lines.
  2. Inaccurate Readings

    • Cause: Ambient light interference or poor sensor placement.
    • Solution: Shield the sensor from ambient light and ensure it is in direct contact with the skin.
  3. Initialization Fails

    • Cause: Incorrect power supply or I²C address conflict.
    • Solution: Check power supply voltages and ensure no address conflicts on the I²C bus.
  4. Data Not Updating

    • Cause: Interrupt pin not connected or misconfigured.
    • Solution: Connect the INT pin to a GPIO pin and configure it in your code.

FAQs

Q: Can the MAX30102 measure SpO2 and heart rate simultaneously?
A: Yes, the MAX30102 is designed to measure both SpO2 and heart rate simultaneously using its red and infrared LEDs.

Q: What is the maximum sampling rate of the MAX30102?
A: The MAX30102 supports sampling rates up to 3200 samples per second, configurable via its registers.

Q: Is the MAX30102 suitable for continuous monitoring?
A: Yes, the low power consumption and integrated features make it ideal for continuous monitoring in wearable devices.

Q: Can the MAX30102 be used with 5V microcontrollers?
A: Yes, but you must use level shifters for the I²C lines, as the MAX30102 operates at 1.8V logic levels.