Blog
MAX30100 / MAX30102 Pulse Oximeter and Heart Rate Sensor Module
Compare the MAX30100 price and MAX30102 price to begin! Use the efficient MAX30100 sensor for basic tracking, or the advanced MAX30102 sensor for richer data.
What is MAX30100 and MAX30102?
The MAX30100/MAX30102 is an integrated module for pulse oximetry and heart rate monitoring biosensors. It integrates a red LED and an infrared LED, a photodetector, optical components, and low-noise electronic circuits with ambient light suppression.
The MAX30102 operates with a 1.8V power supply and an independent 5.0V power supply for the internal LED, and is applied to wearable devices for heart rate and blood oxygen collection and detection, worn on fingers, earlobes, wrists, etc. It features a standard I2C-compatible communication interface to transfer the collected values to microcontrollers such as Arduino and KL25z for heart rate and blood oxygen calculation. Additionally, the module can be software-shutdown, with the standby current approaching zero, maintaining a constant power supply state. Due to its excellent performance, this chip has been widely used in Samsung Galaxy S7 mobile phones.
Compared with the previous model MAX30100, MAX30102 integrates a glass cover, which can effectively eliminate external and internal light interference and has the most reliable performance.
This heart rate and blood oxygen sensor module is a bio-sensor module designed based on the power requirements of MAX30100-MAX30102. Its 12C communication interface voltage is compatible with 1.8V/5V and can communicate normally with conventional microcontroller development boards such as Arduino.KL25Z.Stm32, etc. In addition, it provides corresponding heart rate and blood oxygen programs, which can be easily mastered and used in conjunction with various development boards to complete heart rate and blood oxygen concentration monitoring. It is suitable for scientific research and teaching demonstrations in the field of heart rate and blood oxygen, and is also very suitable for secondary development.
MAX30100
MAX30100 Working Principle
By shining infrared LED lights, the ADC value of the heart rate can be obtained. The heart rate can be calculated by processing the corresponding AD values through algorithms.
The timing diagram of SDA and SCL
Collection process: RED and IR irradiation followed by data acquisition using ADC. The acquired AD values pass through a digital filter and then enter the data register. Subsequently, data acquisition is performed using IIC. During the conversion of AD values, temperature values can also be acquired.
The internal structure of MAX30100 is shown in the figure below:
Register :
The registers of MAX30100 include five types: status register, FIFO, configured register, temperature register (the temperature register is used to read the temperature value of the chip to correct the deviation caused by temperature), and ID register (the ID register is used to read the ID number of the chip).
FIFO register
The data is stored in the FIFO_DATA register. We mainly need to read it. The other three items are the overflow count and the read/write pointers. The data stored in DATA is the ADC value read each time. Each time, it reads four times, in sequence: the high and low data of IR, the high and low data of RED.
STATUS Register
There are two STATUS registers. One is the interrupt status register, and the other is the interrupt enable register. When the heart rate interrupt is enabled and when the heart rate conversion is completed, the corresponding status bit will be set to 1.
CONFIGURED register
In the Mode register, SHDN is the low-power control bit, RESET is the reset, TEMP_EN is the temperature detection enable, and MODE is the mode selection. The SPO2 configured register is mainly used to set the parameters related to blood oxygen concentration and the power of LED_PW. The LED register is used to set the pulse time of the two lights.
MAX30100 Feature
- The complete pulse oximeter and heart rate sensor solution simplifies the design
- Integrated with LEDs, light sensors and high-performance analog front-end
- Ultra-low power consumption mode extends the battery life of wearable devices
- Programmable sampling rate and LED current saves power
- Ultra-low off-state current (0.7 µA, typical value)
- Advanced functions enhance measurement performance
- High SNR can reliably eliminate the influence of motion interference
- Integrated environmental light compensation
- High sampling rate
- Fast data output
MAX30100 Arduino
MAX30100 Pinout
VCC — 5 V
GND — Arduino GND
SDA — A4
SCL — A5
MAX30100 Arduino Code
#include
#include "MAX30100_PulseOximeter.h"
#define REPORTING_PERIOD_MS 1000
// Create a PulseOximeter object
PulseOximeter pox;
// Time at which the last beat occurred
uint32_t tsLastReport = 0;
// Callback routine is executed when a pulse is detected
void onBeatDetected() {
Serial.println("Beat!");
}
void setup() {
Serial.begin(9600);
Serial.print("Initializing pulse oximeter..");
// Initialize sensor
if (!pox.begin()) {
Serial.println("FAILED");
for (;;)
;
} else {
Serial.println("SUCCESS");
}
// Configure sensor to use 7.6mA for LED drive
pox.setIRLedCurrent(MAX30100_LED_CURR_7_6MA);
// Register a callback routine
pox.setOnBeatDetectedCallback(onBeatDetected);
}
void loop() {
// Read from the sensor
pox.update();
// Grab the updated heart rate and SpO2 levels
if (millis() - tsLastReport > REPORTING_PERIOD_MS) {
Serial.print("Heart rate:");
Serial.print(pox.getHeartRate());
Serial.print("bpm / SpO2:");
Serial.print(pox.getSpO2());
Serial.println("%");
tsLastReport = millis();
}
}
MAX30100 Application
1、 Wearable Devices
2、 Fitness Assistant Devices
3、 Medical Monitoring Device
MAX30102
MAX30102 Working Principle
Optical volumetric method: This method measures pulse and blood oxygen saturation by using the different light transmittance caused by the pulsation of human tissues.
Light source: A specific wavelength light-emitting diode is used that selectively emits light for oxyhemoglobin (HbO2) and hemoglobin (Hb) in arterial blood.
Transformation of light transmittance to electrical signal: The change in the blood volume due to arterial pulsation causes a change in the light transmittance of this beam of light. At this time, the reflected light from the human tissue is received by photoelectric conversion, converted into an electrical signal and amplified and output.
- Internal block diagram of the chip
From the block diagram, the chip can be divided into two parts. One part is the analog signal acquisition circuit, which emits light of specific wavelengths through the RED and IR lamps, collects the light reflected back by the human body, converts the light signal into an electrical signal through the PD tube, and finally converts it into a digital signal through an 18-bit ADC converter. The second part is the digital processing circuit, which filters the raw data converted by the ADC and stores it in the buffer area. The microcontroller reads and writes the internal registers of the chip through the IIC interface and reads out the corresponding data.
- MAX30102 Module Circuit
The chip has an LED power supply of 3.3V – 5.0V and a logic power supply of 1.8V. Therefore, the module is equipped with two voltage stabilizing circuits, converting the 5V power supply into 3.3V and 1.8V respectively. Since the power supply range of the LED driver is 3.3V – 5.0V, the 3.3V voltage stabilizing circuit can be omitted.
Because the IIC communication level of the logic circuit of MAX30102 is 1.8V, which does not match the pin levels commonly used in 51 single-chip microcontrollers and STM32 single-chip microcontrollers.
Here is a solution. Since the SDA, SCL, and INT pins of MAX30102 are open-drain, the resistors R1, R2, and R3 on the module can be removed. For 51 single-chip microcontrollers, a 4.7-10k resistor should be added to each of the SDA, SCL, and INT pins to pull them up to 5V. For STM32 single-chip microcontrollers, only the corresponding control pins need to be configured in the pull-up mode.
The module only needs to be connected to a 5V power supply, and the SDA, SCL, and INT pins should be connected to the microcontroller. The IRD and RD pins generally do not need to be connected.
MAX30102 Parameter
Product | MAX30102 heart rate and oxygen level module |
LED peak wavelength | 660nm/880nm |
LED supply voltage | 3.3V~5V |
Detect signal type | Light reflection signal (PPG) |
Output signal interface | I2C Interface |
Communication signal interface | 1.8V~3.3V~5V(Optional) |
Note: SCL and SDA need to be pulled up to the high level through resistors.
MAX30102 Feature
- In the LED reflection solution, there are heart rate monitors and pulse oximeters with biological sensors that are relatively small in size and feature 14-pin optical modules.
- With an integrated glass cover, reliable performance is achieved, enabling mobile devices to operate with relatively low power consumption.
- Programmable sampling rate and LED current, which save power consumption.
- Low-power heart rate monitor (<1mw).
- Ultra-low off-state current (0.7μA, typical value).
- Fast data output, high sampling rate.
- Reliable motion artifact suppression.
- Product applications: medical monitoring devices, fitness assistance devices, wearable devices.
MAX30102 Arduino
MAX30102 Pinout
VCC — 5 V
GND — Arduino GND
SDA — A4
SCL — A5
MAX30102 Code
#include
#include "MAX30105.h"
MAX30105 particleSensor;
void setup() {
Serial.begin(9600);
// Initialize sensor
if (particleSensor.begin() == false) {
Serial.println("MAX30102 was not found. Please check wiring/power.");
while (1)
;
}
particleSensor.setup(); //Configure sensor. Use 6.4mA for LED drive
}
void loop() {
Serial.print(" R[");
Serial.print(particleSensor.getRed());
Serial.print("] IR[");
Serial.print(particleSensor.getIR());
Serial.println("]");
}
MAX30102 Application
This module is an upgraded version of MAX30100.
1、Wearable Devices
2、Fitness Assistant Devices
3、Smartphones
4、Tablets
MAX30100 Sensor Pin Function and MAX30102 Sensor Pin Function
Pin | Definition |
VIN | Power input: 1.8V – 5.5V |
SCL | IIC-SCL |
SDA | IIC-SDA |
INT | MAX30100 INT |
IRD | MAX30100 IR_DRV |
RD | MAX30100 R_DRV |
GND | Grounding |
MAX30100 VS MAX30102
Feature | MAX30100 | MAX30102 |
Maximum Current | 1200 µA | 1200 µA |
Red LED Peak Wavelength | 650 – 670 nm | 650 – 670 nm |
Infrared LED Peak Wavelength | 870 – 900 nm | 870 – 900 nm |
Temperature Sensor Range | -40 to 85°C | -40 to 85°C |
FIFO Depth | 16 bits | 32 bits |
Relative Information
Purchase Link
FAQ
1、Does MAX30100 need external components?
With its integrated light-emitting diodes (LEDs), photo sensors, and high-performance analog front end, it eliminates the need for external components, making it easier to incorporate into devices.
2、Why is the data from my MAX30102 unstable?
Possible reasons:
① The sensor is not properly attached to the skin (a slight pressure is required to avoid interference from ambient light).
② Noise occurs due to movement or shaking (it is recommended to measure in a static state).
③ Insufficient power supply (make sure to have a stable 3.3V power source).
④ The LED current or sampling rate is not correctly configured (for example: in the heart rate mode, 50mA red light + 27mA infrared light is recommended).