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

How to Use MAX30100 Oximeter sensor: Examples, Pinouts, and Specs

Image of MAX30100 Oximeter sensor
Cirkit Designer LogoDesign with MAX30100 Oximeter sensor in Cirkit Designer

Introduction

The MAX30100 is a compact, integrated sensor designed for measuring heart rate and blood oxygen saturation (SpO2) using photoplethysmography (PPG). Manufactured by Analog Devices, this sensor combines a red LED, an infrared LED, and a photodetector in a single package, making it highly suitable for wearable health monitoring devices and other portable medical applications.

Explore Projects Built with MAX30100 Oximeter 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!
ESP8266 NodeMCU with MAX30100 Pulse Oximeter and OLED Display
Image of SLEEP DIS : A project utilizing MAX30100 Oximeter sensor in a practical application
This circuit features an ESP8266 NodeMCU microcontroller interfaced with a MAX30100 pulse oximeter sensor and a 0.96" OLED display. The ESP8266 communicates with both the sensor and the display over I2C, with D2 and D1 serving as the SDA and SCK lines, respectively. The MAX30100's interrupt pin is connected to D0 on the ESP8266, allowing for interrupt-driven measurements, and the OLED and MAX30100 are powered by the 3.3V output from the ESP8266.
Cirkit Designer LogoOpen Project in Cirkit Designer
Battery-Powered Health Monitoring System with MAX30205 and MAX30102 Sensors
Image of senior D: A project utilizing MAX30100 Oximeter sensor in a practical application
This circuit is a health monitoring system that uses a Seeed Studio nRF52840 microcontroller to interface with a MAX30205 temperature sensor and a MAX30102 pulse oximeter/heart-rate sensor. The system is powered by a 3.7V LiPo battery and communicates sensor data via I2C and GPIO connections.
Cirkit Designer LogoOpen Project in Cirkit Designer
ESP32-Based Pulse Oximeter with MAX30100 Sensor
Image of line follower: A project utilizing MAX30100 Oximeter sensor in a practical application
This circuit features an ESP32 microcontroller connected to a MAX30100 pulse oximeter sensor. The ESP32's I2C pins (D19 for SDA and D18 for SCL) are interfaced with the MAX30100 to facilitate communication between the microcontroller and the sensor. Power and ground connections are also established from the ESP32 to the MAX30100, with the ESP32 providing a 3.3V supply to the sensor.
Cirkit Designer LogoOpen Project in Cirkit Designer
Wi-Fi Enabled Health Monitoring System with MAX30100 and MLX90614
Image of NEW project: A project utilizing MAX30100 Oximeter sensor in a practical application
This circuit integrates a MAX30100 pulse oximeter and heart-rate sensor, and an MLX90614 infrared temperature sensor with an ESP8266 NodeMCU microcontroller. The sensors communicate with the microcontroller via I2C protocol, and the NodeMCU provides power and handles data processing and transmission.
Cirkit Designer LogoOpen Project in Cirkit Designer

Explore Projects Built with MAX30100 Oximeter 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 SLEEP DIS : A project utilizing MAX30100 Oximeter sensor in a practical application
ESP8266 NodeMCU with MAX30100 Pulse Oximeter and OLED Display
This circuit features an ESP8266 NodeMCU microcontroller interfaced with a MAX30100 pulse oximeter sensor and a 0.96" OLED display. The ESP8266 communicates with both the sensor and the display over I2C, with D2 and D1 serving as the SDA and SCK lines, respectively. The MAX30100's interrupt pin is connected to D0 on the ESP8266, allowing for interrupt-driven measurements, and the OLED and MAX30100 are powered by the 3.3V output from the ESP8266.
Cirkit Designer LogoOpen Project in Cirkit Designer
Image of senior D: A project utilizing MAX30100 Oximeter sensor in a practical application
Battery-Powered Health Monitoring System with MAX30205 and MAX30102 Sensors
This circuit is a health monitoring system that uses a Seeed Studio nRF52840 microcontroller to interface with a MAX30205 temperature sensor and a MAX30102 pulse oximeter/heart-rate sensor. The system is powered by a 3.7V LiPo battery and communicates sensor data via I2C and GPIO connections.
Cirkit Designer LogoOpen Project in Cirkit Designer
Image of line follower: A project utilizing MAX30100 Oximeter sensor in a practical application
ESP32-Based Pulse Oximeter with MAX30100 Sensor
This circuit features an ESP32 microcontroller connected to a MAX30100 pulse oximeter sensor. The ESP32's I2C pins (D19 for SDA and D18 for SCL) are interfaced with the MAX30100 to facilitate communication between the microcontroller and the sensor. Power and ground connections are also established from the ESP32 to the MAX30100, with the ESP32 providing a 3.3V supply to the sensor.
Cirkit Designer LogoOpen Project in Cirkit Designer
Image of NEW project: A project utilizing MAX30100 Oximeter sensor in a practical application
Wi-Fi Enabled Health Monitoring System with MAX30100 and MLX90614
This circuit integrates a MAX30100 pulse oximeter and heart-rate sensor, and an MLX90614 infrared temperature sensor with an ESP8266 NodeMCU microcontroller. The sensors communicate with the microcontroller via I2C protocol, and the NodeMCU provides power and handles data processing and transmission.
Cirkit Designer LogoOpen Project in Cirkit Designer

Common Applications and Use Cases

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

Technical Specifications

The following table outlines the key technical details of the MAX30100 sensor:

Parameter Value
Operating Voltage 1.8V (core) and 3.3V (I/O)
Supply Current (Typical) 600 µA (during measurement)
Standby Current 0.7 µA
Measurement Range 0% to 100% SpO2
Heart Rate Range 30 bpm to 240 bpm
Communication Interface I2C (7-bit address: 0x57)
Operating Temperature Range -40°C to +85°C
Package Type 14-pin optical module

Pin Configuration and Descriptions

The MAX30100 sensor has 14 pins, but only a subset is typically used in most applications. Below is the pin configuration:

Pin Number Pin Name Description
1 SDA I2C Data Line
2 SCL I2C Clock Line
3 INT Interrupt Output (active low)
4 GND Ground
5 VIN Power Supply Input (1.8V to 3.3V)
6 IR_DRV Infrared LED Driver
7 RED_DRV Red LED Driver
8-14 NC Not Connected (reserved for internal use)

Usage Instructions

How to Use the MAX30100 in a Circuit

  1. Power Supply: Connect the VIN pin to a 3.3V power source and the GND pin to ground.
  2. I2C Communication: Connect the SDA and SCL pins to the corresponding I2C pins on your microcontroller. Use pull-up resistors (typically 4.7kΩ) on both lines.
  3. Interrupt Pin: Optionally, connect the INT pin to a GPIO pin on your microcontroller to handle interrupts.
  4. LED Drivers: The IR_DRV and RED_DRV pins are internally connected to the LEDs and do not require external connections.

Important Considerations and Best Practices

  • Power Supply: Ensure a stable 3.3V power supply to avoid measurement inaccuracies.
  • I2C Address: The default I2C address of the MAX30100 is 0x57. Ensure no other devices on the I2C bus share this address.
  • Ambient Light: Minimize ambient light interference by enclosing the sensor in a dark housing or using it in low-light environments.
  • Sampling Rate: Configure the sampling rate and LED pulse width based on your application requirements to optimize power consumption and accuracy.

Example Code for Arduino UNO

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

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

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

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

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

  // Configure the sensor
  sensor.setMode(MAX30100_MODE_SPO2); // Set mode to SpO2
  sensor.setLEDsPulseWidth(MAX30100_LED_PW_1600US); // Set LED pulse width
  sensor.setSamplingRate(MAX30100_SAMPLING_RATE_100HZ); // Set sampling rate
  Serial.println("MAX30100 initialized successfully.");
}

void loop() {
  float spo2, heartRate;

  // Read SpO2 and heart rate data
  if (sensor.readSpO2AndHeartRate(&spo2, &heartRate)) {
    Serial.print("SpO2: ");
    Serial.print(spo2);
    Serial.print("%, Heart Rate: ");
    Serial.print(heartRate);
    Serial.println(" bpm");
  } else {
    Serial.println("Failed to read data. Ensure proper finger placement.");
  }

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

Troubleshooting and FAQs

Common Issues and Solutions

  1. Sensor Not Detected on I2C Bus:

    • Cause: Incorrect wiring or I2C address conflict.
    • Solution: Verify the SDA and SCL connections. Ensure pull-up resistors are present. Check that no other devices on the I2C bus use the 0x57 address.
  2. Inaccurate Readings:

    • Cause: Poor finger placement or excessive ambient light.
    • Solution: Ensure the finger is placed firmly on the sensor. Minimize ambient light interference by using a dark enclosure.
  3. High Power Consumption:

    • Cause: LEDs configured with high pulse width or sampling rate.
    • Solution: Reduce the LED pulse width and sampling rate to optimize power usage.
  4. Interrupts Not Triggering:

    • Cause: INT pin not connected or misconfigured.
    • Solution: Verify the INT pin connection and ensure the microcontroller is configured to handle interrupts.

FAQs

  • Q: Can the MAX30100 measure SpO2 and heart rate simultaneously?
    A: Yes, the MAX30100 can measure both SpO2 and heart rate simultaneously using its dual LED and photodetector setup.

  • Q: What is the maximum I2C clock speed supported by the MAX30100?
    A: The MAX30100 supports I2C clock speeds up to 400 kHz (Fast Mode).

  • Q: Can the MAX30100 be used with a 5V microcontroller?
    A: Yes, but a level shifter is required to interface the 3.3V I2C lines with the 5V microcontroller.

  • Q: How do I improve measurement accuracy?
    A: Use the sensor in a stable, low-light environment and ensure proper finger placement on the sensor.