Cirkit Designer LogoCirkit DesignerYour all-in-one circuit design IDE Launch Cirkit Designer App

How to Use SparkFun MAX30105_Breakout: Examples, Pinouts, and Specs

Image of SparkFun MAX30105_BreakoutDesign with SparkFun MAX30105_Breakout in Cirkit Designer

Introduction

The SparkFun MAX30105 Breakout is a sophisticated sensor module designed for non-invasive optical heart rate monitoring and pulse oximetry. It features the MAX30105 sensor from Maxim Integrated, which is capable of detecting the amount of oxygen in the blood, the volume of blood changes in the body, and even the heart rate through the process of photoplethysmography (PPG). This breakout board simplifies the use of the MAX30105 sensor by providing an easy-to-use I2C interface and onboard LEDs for indication, making it an ideal choice for wearable devices, fitness assistant devices, and medical monitoring applications.

Explore Projects Built with SparkFun MAX30105_Breakout

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 ESP32-Based Multi-Sensor Health Monitoring System with Bluetooth Connectivity: A project utilizing SparkFun MAX30105_Breakout 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.

Open Project in Cirkit Designer
Image of Battery-Powered Environmental Monitoring System with ESP32, BNO055, and MS5803-14BA: A project utilizing SparkFun MAX30105_Breakout in a practical application
Battery-Powered Environmental Monitoring System with ESP32, BNO055, and MS5803-14BA

This circuit is a sensor network powered by a LiPo battery through a step-down buck converter, which supplies power to multiple ESP32 microcontrollers, a BNO055 IMU, an ultrasonic sensor, and a pressure sensor. The ESP32 microcontrollers handle data acquisition from the sensors and are programmed to process and transmit this data. The sensors are connected to the ESP32s via I2C and GPIO pins for communication and data collection.

Open Project in Cirkit Designer

Technical Specifications

Key Technical Details

Pin Configuration and Descriptions

Pin Number Name Description
1 VIN Power supply (1.8V-3.3V)
2 GND Ground connection
3 SCL I2C clock line
4 SDA I2C data line
5 INT Interrupt pin
6 RD Red LED control (optional)
7 IR IR LED control (optional)
8 G Green LED control (optional)

Usage Instructions

Integration with a Circuit

  1. Powering the Sensor: Connect the VIN pin to a 1.8V-3.3V power source and the GND pin to the ground.
  2. I2C Communication: Connect the SCL and SDA pins to the I2C clock and data 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 a new data ready.
  4. LED Control (Optional): The RD, IR, and G pins can be used to control the onboard LEDs if additional functionality is required.

Best Practices

Example Code for Arduino UNO

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

MAX30105 particleSensor;

void setup() {
  Serial.begin(115200);
  Wire.begin();

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

  particleSensor.setup(); // Configure sensor with default settings
  particleSensor.setPulseAmplitudeRed(0x0A); // Set Red LED amplitude
  particleSensor.setPulseAmplitudeGreen(0x0A); // Set Green 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 after a finger is placed on the sensor
    float heartRate, spO2;
    if (particleSensor.checkForBeat(irValue) == true) {
      // We sensed a beat!
      long delta = millis() - lastBeat;
      lastBeat = millis();

      heartRate = particleSensor.getRate();
      spO2 = particleSensor.getSpO2();

      Serial.print("Heart rate: ");
      Serial.print(heartRate);
      Serial.print(" bpm. SpO2: ");
      Serial.print(spO2);
      Serial.println("%");
    }
  } else {
    Serial.println("No finger?");
  }
  delay(1000);
}

Troubleshooting and FAQs

Common Issues

FAQs

Q: Can the MAX30105 be used to measure blood pressure? A: No, the MAX30105 is designed for heart rate and SpO2 measurements, not blood pressure.

Q: How can I improve the accuracy of the sensor? A: Ensure a snug fit against the skin, minimize motion, and avoid direct exposure to external light sources.

Q: Is the MAX30105 suitable for medical use? A: The MAX30105 is not FDA-approved for medical use and should not be used for diagnosis or treatment of any conditions.

For further assistance, consult the MAX30105 datasheet and the SparkFun MAX30105 Breakout board schematic available on the SparkFun website.