Electronics

Heart rate Oximetry and Biosensor Module MAX30102

Out Of Stock

1

Description

The Heart rate Oximetry and Biosensor Module MAX30102 is an electronic device designed to measure heart rate and blood oxygen saturation levels. It contains a MAX30102 sensor, which utilizes both red and infrared light to measure these parameters non-invasively. The green board variant refers to the printed circuit board (PCB) on which the MAX30102 sensor is mounted. The module can be integrated into various electronic projects for monitoring physiological parameters.

Package Includes:

  • 1 x Heart rate Oximetry and Biosensor Module MAX30102

 

Features:

  • Measures both heart rate and blood oxygen saturation levels
  • Utilizes the MAX30102 sensor, which combines red and infrared light for accurate readings
  • Utilizes pulse oximetry technology for non-invasive and painless measurements
  • Small in size and low power consumption, ideal for wearable devices and portable medical equipment
  • Equipped with an I2C interface for easy integration with various microcontrollers and other electronic components
  • Green board PCB variant for easy incorporation into various electronic projects.

 

Description:

The Heart rate Oximetry and Biosensor Module MAX30102 green board is a compact and easy-to-use electronic module that measures both heart rate and blood oxygen saturation levels. The module uses the MAX30102 sensor, which combines both red and infrared light to detect changes in blood volume and oxygen saturation in the fingertip. The device utilizes pulse oximetry technology, which is a non-invasive and painless method of measuring these vital signs. The MAX30102 sensor on the green board module features an integrated LED and photodetector for accurate and reliable readings. The module is small in size and has low power consumption, making it ideal for use in wearable devices and portable medical equipment. Additionally, the module is equipped with an I2C interface, which allows for easy integration with various microcontrollers and other electronic components. The green board variant refers to the PCB on which the MAX30102 sensor is mounted. The board features a green color, which is a common color for PCBs due to its high contrast with the metallic traces and components on the board. The module can be integrated into various electronic projects for monitoring physiological parameters in real time, such as fitness trackers, smartwatches, and medical monitoring devices.

 

Principle of Work:

The Heart rate Oximetry and Biosensor Module MAX30102 green board utilizes the MAX30102 sensor to measure heart rate and blood oxygen saturation levels in a non-invasive and painless manner. The MAX30102 sensor consists of a Red LED and an IR LED, and a photodetector. The red LED emits light at a wavelength of 660 nm, while the IR LED emits light at a wavelength of 880 nm. The sensor works by shining both the red and IR light through the skin and measuring the reflection with the photodetector. This method of pulse detection through light is called Photoplethysmogram. The working of the sensor can be divided into two parts: heart rate measurement and blood oxygen level measurement. For heart rate measurement, the oxygen in the hemoglobin has a specific characteristic that it can absorb IR light. As the blood is pumped through the veins in the finger, the amount of reflected light changes, creating an oscillating waveform. By measuring this wave, we can get the heartbeat reading. For blood oxygen level measurement, the principle is based on the fact that deoxygenated blood absorbs more red light, while blood with more sufficient oxygen absorbs more IR light. By measuring the ratio between the two, we can determine the oxygen saturation level in the blood.

 

Pinout of the Module:

 

  • VIN: The input voltage pin, which accepts a voltage range of 1.8V to 5.5V.
  • GND: The ground pin, which should be connected to the ground of the power supply.
  • SCL: The I2C serial clock pin, which is used for communication with the module. This pin should be connected to the SCL pin of the microcontroller or other electronic components.
  • SDA: The I2C serial data pin, which is also used for communication with the module. This pin should be connected to the SDA pin of the microcontroller or other electronic component.
  • INT: The interrupt pin, which is used to indicate when new data is available from the MAX30102 sensor. This pin can be connected to an interrupt pin of the microcontroller to trigger an interrupt service routine (ISR).
  • IRD This is the pin that is connected to the IR LED of the Module. This module has a LED driver built in. use this pin if you want to manually drive the LED with code, otherwise leave the pin open.
  • RD this pin is similar to the IRD pin the only difference is that a RED LED is connected to this pin. Leave it untouched if you don't want to drive the LED yourself.

It's worth noting that the VIN pin of the module should be connected to a power supply that is within the specified voltage range of 1.8V to 5.5V. The SCL and SDA pins should be connected to the corresponding pins of the microcontroller or other electronic components, and they should also be pulled up to the supply voltage with a resistor. The INT pin can be used to trigger an interrupt when new data is available from the MAX30102 sensor, which can help optimize power consumption and reduce the load on the microcontroller. Overall, the pinout of the Heart rate Oximetry and Biosensor Module MAX30102 green board provides an easy and efficient way to interface with the MAX30102 sensor for measuring heart rate and blood oxygen saturation levels.

 

Applications:

  1. Fitness and wellness tracking: The module can be used in wearable fitness devices to track heart rate and blood oxygen saturation levels during exercise and other physical activities.
  2. Medical monitoring: The module can be used in medical devices for continuous monitoring of heart rate and blood oxygen saturation levels in patients with conditions such as sleep apnea, COPD, and cardiovascular disease.
  3. Sports science: The module can be used in sports science research to measure the heart rate and blood oxygen saturation levels of athletes during training and competition.
  4. Aviation and military: The module can be used in aviation and military applications to monitor pilots and soldiers for hypoxia and other conditions that can affect performance and safety.
  5. Robotics: The module can be used in robotics applications to monitor the health and well-being of robots by measuring their heart rate and blood oxygen saturation levels.

 

Circuit

  • Connect the I2C lines (SDA and SCL) of the MAX30102 module to the corresponding pins (A4 and A5) on the microcontroller board.
  • Connect the INT or Interrupt pin of the MAX30102 module to a digital pin (D2) on the microcontroller board.
  • Connect the VCC pin of the MAX30102 module to the 3.3V pin on the microcontroller board.
  • Connect the GND pin of the MAX30102 module to the ground (GND) pin on the microcontroller board.

the I2C lines (SDA and SCL) are pulled up to the supply voltage (3.3V) with a resistor. Additionally, the interrupt pin (INT) is configured to trigger an interrupt service routine (ISR) on the microcontroller to optimize power consumption and reduce the load on the microcontroller

 

Library: 

To install the SparkFun MAX3010X Pulse and Proximity Sensor Library from Arduino Library Manager, follow these steps:

  1. Open the Arduino IDE on your computer.
  2. Go to the "Sketch" menu and select "Include Library" -> "Manage Libraries".
  3. In the "Library Manager" search bar, type "SparkFun MAX3010X" and press enter.
  4. From the search results, select the "SparkFun MAX3010X Pulse and Proximity Sensor Library" and click on the "Install" button.
  5. Wait for the installation to complete.
  6. Once the installation is complete, close the "Library Manager" window and return to the Arduino IDE.

 

Code:

Acquiring data from the MAX30102 Sensor is a straightforward process that requires minimal coding knowledge. First, we need to include the necessary libraries for Arduino in our code. Then, we can load the example sketch provided by the libraries. If we have properly connected the MAX30102 Sensor to the microcontroller, we can easily view the output data on the serial monitor window. This process makes it easy for anyone, regardless of their coding experience, to use the MAX30102 Sensor for their projects.

 

#include "Wire.h"
#include "MAX30105.h"
#include "heartRate.h"

MAX30105 particleSensor;

const byte RATE_SIZE = 4; //Increase this for more averaging. 4 is good.
byte rates[RATE_SIZE]; //Array of heart rates
byte rateSpot = 0;
long lastBeat = 0; //Time at which the last beat occurred

float beatsPerMinute;
int beatAvg;

void setup()
{
  Serial.begin(115200);
  Serial.println("Initializing...");

  // Initialize sensor
  if (!particleSensor.begin(Wire, I2C_SPEED_FAST)) //Use default I2C port, 400kHz speed
  {
    Serial.println("MAX30105 was not found. Please check wiring/power. ");
    while (1);
  }
  Serial.println("Place your index finger on the sensor with steady pressure.");

  particleSensor.setup(); //Configure sensor with default settings
  particleSensor.setPulseAmplitudeRed(0x0A); //Turn Red LED to low to indicate sensor is running
  particleSensor.setPulseAmplitudeGreen(0); //Turn off Green LED
}

void loop()
{
  long irValue = particleSensor.getIR();

  if (checkForBeat(irValue) == true)
  {
    //We sensed a beat!
    long delta = millis() - lastBeat;
    lastBeat = millis();

    beatsPerMinute = 60 / (delta / 1000.0);

    if (beatsPerMinute < 255 && beatsPerMinute > 20)
    {
      rates[rateSpot++] = (byte)beatsPerMinute; //Store this reading in the array
      rateSpot %= RATE_SIZE; //Wrap variable

      //Take average of readings
      beatAvg = 0;
      for (byte x = 0 ; x < RATE_SIZE ; x++)
        beatAvg += rates[x];
      beatAvg /= RATE_SIZE;
    }
  }

  Serial.print("IR=");
  Serial.print(irValue);
  Serial.print(", BPM=");
  Serial.print(beatsPerMinute);
  Serial.print(", Avg BPM=");
  Serial.print(beatAvg);

  if (irValue < 50000)
    Serial.print(" No finger?");

  Serial.println();
}

  • The libraries Wire.h, MAX30105.h, and heartRate.h are included.
  • An object called particleSensor is created from the MAX30105 class.
  • RATE_SIZE is set to 4, which is the size of the array used for averaging heart rate readings.
  • The setup function initializes the sensor and sets the red LED pulse amplitude to 0x0A and turns off the green LED.
  • The loop function reads the IR value from the sensor and checks if a beat is detected using the checkForBeat function from the heartRate library.
  • If a beat is detected, the time since the last beat is calculated and the heart rate is calculated in beats per minute.
  • The heart rate is added to the rates array and the average heart rate is calculated from the last RATE_SIZE readings.
  • The IR value, beats per minute, average beats per minute, and a message about finger placement are printed to the serial monitor.

 

Technical Details: 

  • Operating voltage: 1.8V to 5.5V
  • LED driving current: up to 50mA
  • ADC resolution: 18-bit
  • Sample rate: programmable up to 3200 SPS (samples per second)
  • Interface: I2C (up to 3.4 MHz)
  • LED wavelength: Red - 660nm, Infrared - 880nm
  • Detection range: up to 5mm
  • Power consumption: 1.8 mA (typical), 15.5 mA (max)
  • Operating temperature range: -40°C to 85°C
  • Package size: 14-pin optical module (5.6mm x 3.3mm x 1.55mm)
  • Signal-to-noise ratio (SNR): 40dB
  • Ambient light rejection: 50/60Hz light interference rejection
  • Heart rate and SpO2 algorithms: integrated in sensor module.

 

Resources:

 

Comparisons:

The MAX30102 and MAX30100 are both pulse oximeter and heart rate sensor modules from Maxim Integrated. Although they share similar features, there are some differences between them:

  1. Power Consumption: The MAX30102 has a lower power consumption compared to the MAX30100, with a typical operating current of 600 µA, versus 1.8 mA for the MAX30100.
  2. Sampling Rate: The MAX30102 has a higher sampling rate of up to 400 Hz compared to the MAX30100, which has a maximum sampling rate of 160 Hz.
  3. ADC Resolution: The MAX30102 has a higher ADC resolution of 18 bits, compared to the MAX30100 which has a resolution of 15 bits. This means that the MAX30102 can provide more accurate readings.
  4. Ambient Light Cancellation: The MAX30102 has an advanced algorithm for ambient light cancellation, which makes it more reliable and accurate in challenging lighting conditions.
  5. Package Size: The MAX30102 has a smaller package size (5.6 mm x 3.3 mm) compared to the MAX30100 (5.0 mm x 4.4 mm).
  6. Cost: The MAX30102 is slightly more expensive compared to the MAX30100, due to its higher performance and additional features.