MAX30100 Purple Heart Rate & Blood Oxygen Sensor Module for Arduino

MAX30100 Purple Heart Rate & Blood Oxygen Sensor Module
1. Main IC: MAX30100
2. PCB Color: Purple (GY-MAX30100)
3. Communication Interface: I2C
4. Current Consumption: ~600µA (Measurement) | ~0.7µA (Standby)
5. ADC Resolution: 14-bit

Apple Shopping Event

Hurry and get discounts on all Apple devices up to 20%

130,00 EGP

13 People watching this product now!

Payment Methods:

Description

The MAX30100 Purple Heart Rate & Blood Oxygen Sensor Module (often known as the GY-MAX30100 variant) is a pulse oximeter and heart rate sensor built around the MAX30100 IC, using a red LED (660nm) and infrared LED (880–900nm) to measure blood oxygen and pulse rate optically.

The module communicates over I2C (SDA, SCL) and runs on 3.3V–5V thanks to onboard LDO regulators and typically proper level-shifting, while the sensor IC itself operates internally at 1.8V–3.3V. It draws roughly 600µA during active measurement and drops to just 0.7µA in standby.

A 14-bit ADC digitizes the optical signal, and integrated ambient light cancellation improves signal-to-noise ratio across varying lighting conditions, with operation rated from -40°C to +85°C.

Features:

  1. MAX30100 pulse oximeter/heart rate IC
  2. Purple PCB (GY-MAX30100 variant)
  3. I2C interface (SDA, SCL)
  4. Red (660nm) and IR (880–900nm) LED light sources
  5. 14-bit ADC resolution
  6. Ultra-low standby current: ~0.7µA
  7. Integrated ambient light cancellation
  8. Onboard LDO regulators with level-shifting
🔌
Pin Connections
1 Table
Pin Connections Table 1
BoardSensor PinConnection
MAX30100VCC/GND/SDA/SCL3.3V / GND / board SDA / board SCL
📟
MAX30100 Purple Heart Rate & Blood Oxygen Sensor Module for Arduino
7 Examples • C/C++ | Boards: Arduino Uno, Arduino Nano, Arduino Mega, ESP32, ESP8266, STM32, Raspberry Pi Pico
MAX30100 Purple Heart Rate & Blood Oxygen Sensor Module for Arduino - Arduino Uno
MAX30100 Purple Heart Rate & Blood Oxygen Sensor Module for Arduino - Arduino Nano
MAX30100 Purple Heart Rate & Blood Oxygen Sensor Module for Arduino - Arduino Mega
MAX30100 Purple Heart Rate & Blood Oxygen Sensor Module for Arduino - ESP32
MAX30100 Purple Heart Rate & Blood Oxygen Sensor Module for Arduino - ESP8266
MAX30100 Purple Heart Rate & Blood Oxygen Sensor Module for Arduino - STM32
MAX30100 Purple Heart Rate & Blood Oxygen Sensor Module for Arduino - Raspberry Pi Pico
📄 File: max30100_purple_heart_rate_&_blood_oxygen_sensor_module_for_arduino_-_arduino_uno.inoArduino Uno
915 characters
1//ekostra.com
2//electronics store in egypt
3//+201008896258
4
5// I2C wiring for Arduino Uno: A4=SDA, A5=SCL
6#include <Wire.h>
7#include "MAX30105.h" // SparkFun library - also covers MAX30100/30102 register-compatible reads
8
9MAX30105 particleSensor;
10
11void setup() {
12 Serial.begin(115200);
13 Wire.begin();
14 if (!particleSensor.begin(Wire, I2C_SPEED_STANDARD)) {
15 Serial.println("MAX3010x not found - check wiring!");
16 while (1) delay(10);
17 }
18 particleSensor.setup(); // default sensor settings (LED brightness, sample rate...)
19}
20
21void loop() {
22 long irValue = particleSensor.getIR();
23
24 if (irValue < 50000) {
25 Serial.println("No finger detected");
26 } else {
27 Serial.print("IR: "); Serial.print(irValue);
28 Serial.print(" Red: "); Serial.println(particleSensor.getRed());
29 // Real BPM/SpO2 needs the library's beat-detection / SpO2 algorithm on top of these raw readings.
30 }
31
32 delay(20);
33}
📄 File: max30100_purple_heart_rate_&_blood_oxygen_sensor_module_for_arduino_-_arduino_nano.inoArduino Nano
916 characters
1//ekostra.com
2//electronics store in egypt
3//+201008896258
4
5// I2C wiring for Arduino Nano: A4=SDA, A5=SCL
6#include <Wire.h>
7#include "MAX30105.h" // SparkFun library - also covers MAX30100/30102 register-compatible reads
8
9MAX30105 particleSensor;
10
11void setup() {
12 Serial.begin(115200);
13 Wire.begin();
14 if (!particleSensor.begin(Wire, I2C_SPEED_STANDARD)) {
15 Serial.println("MAX3010x not found - check wiring!");
16 while (1) delay(10);
17 }
18 particleSensor.setup(); // default sensor settings (LED brightness, sample rate...)
19}
20
21void loop() {
22 long irValue = particleSensor.getIR();
23
24 if (irValue < 50000) {
25 Serial.println("No finger detected");
26 } else {
27 Serial.print("IR: "); Serial.print(irValue);
28 Serial.print(" Red: "); Serial.println(particleSensor.getRed());
29 // Real BPM/SpO2 needs the library's beat-detection / SpO2 algorithm on top of these raw readings.
30 }
31
32 delay(20);
33}
📄 File: max30100_purple_heart_rate_&_blood_oxygen_sensor_module_for_arduino_-_arduino_mega.inoArduino Mega
918 characters
1//ekostra.com
2//electronics store in egypt
3//+201008896258
4
5// I2C wiring for Arduino Mega: D20=SDA, D21=SCL
6#include <Wire.h>
7#include "MAX30105.h" // SparkFun library - also covers MAX30100/30102 register-compatible reads
8
9MAX30105 particleSensor;
10
11void setup() {
12 Serial.begin(115200);
13 Wire.begin();
14 if (!particleSensor.begin(Wire, I2C_SPEED_STANDARD)) {
15 Serial.println("MAX3010x not found - check wiring!");
16 while (1) delay(10);
17 }
18 particleSensor.setup(); // default sensor settings (LED brightness, sample rate...)
19}
20
21void loop() {
22 long irValue = particleSensor.getIR();
23
24 if (irValue < 50000) {
25 Serial.println("No finger detected");
26 } else {
27 Serial.print("IR: "); Serial.print(irValue);
28 Serial.print(" Red: "); Serial.println(particleSensor.getRed());
29 // Real BPM/SpO2 needs the library's beat-detection / SpO2 algorithm on top of these raw readings.
30 }
31
32 delay(20);
33}
📄 File: max30100_purple_heart_rate_&_blood_oxygen_sensor_module_for_arduino_-_esp32.inoESP32
917 characters
1//ekostra.com
2//electronics store in egypt
3//+201008896258
4
5// I2C wiring for ESP32: GPIO21=SDA, GPIO22=SCL
6#include <Wire.h>
7#include "MAX30105.h" // SparkFun library - also covers MAX30100/30102 register-compatible reads
8
9MAX30105 particleSensor;
10
11void setup() {
12 Serial.begin(115200);
13 Wire.begin();
14 if (!particleSensor.begin(Wire, I2C_SPEED_STANDARD)) {
15 Serial.println("MAX3010x not found - check wiring!");
16 while (1) delay(10);
17 }
18 particleSensor.setup(); // default sensor settings (LED brightness, sample rate...)
19}
20
21void loop() {
22 long irValue = particleSensor.getIR();
23
24 if (irValue < 50000) {
25 Serial.println("No finger detected");
26 } else {
27 Serial.print("IR: "); Serial.print(irValue);
28 Serial.print(" Red: "); Serial.println(particleSensor.getRed());
29 // Real BPM/SpO2 needs the library's beat-detection / SpO2 algorithm on top of these raw readings.
30 }
31
32 delay(20);
33}
📄 File: max30100_purple_heart_rate_&_blood_oxygen_sensor_module_for_arduino_-_esp8266.inoESP8266
911 characters
1//ekostra.com
2//electronics store in egypt
3//+201008896258
4
5// I2C wiring for ESP8266: D2=SDA, D1=SCL
6#include <Wire.h>
7#include "MAX30105.h" // SparkFun library - also covers MAX30100/30102 register-compatible reads
8
9MAX30105 particleSensor;
10
11void setup() {
12 Serial.begin(115200);
13 Wire.begin();
14 if (!particleSensor.begin(Wire, I2C_SPEED_STANDARD)) {
15 Serial.println("MAX3010x not found - check wiring!");
16 while (1) delay(10);
17 }
18 particleSensor.setup(); // default sensor settings (LED brightness, sample rate...)
19}
20
21void loop() {
22 long irValue = particleSensor.getIR();
23
24 if (irValue < 50000) {
25 Serial.println("No finger detected");
26 } else {
27 Serial.print("IR: "); Serial.print(irValue);
28 Serial.print(" Red: "); Serial.println(particleSensor.getRed());
29 // Real BPM/SpO2 needs the library's beat-detection / SpO2 algorithm on top of these raw readings.
30 }
31
32 delay(20);
33}
📄 File: max30100_purple_heart_rate_&_blood_oxygen_sensor_module_for_arduino_-_stm32.inoSTM32
911 characters
1//ekostra.com
2//electronics store in egypt
3//+201008896258
4
5// I2C wiring for STM32: PB7=SDA, PB6=SCL
6#include <Wire.h>
7#include "MAX30105.h" // SparkFun library - also covers MAX30100/30102 register-compatible reads
8
9MAX30105 particleSensor;
10
11void setup() {
12 Serial.begin(115200);
13 Wire.begin();
14 if (!particleSensor.begin(Wire, I2C_SPEED_STANDARD)) {
15 Serial.println("MAX3010x not found - check wiring!");
16 while (1) delay(10);
17 }
18 particleSensor.setup(); // default sensor settings (LED brightness, sample rate...)
19}
20
21void loop() {
22 long irValue = particleSensor.getIR();
23
24 if (irValue < 50000) {
25 Serial.println("No finger detected");
26 } else {
27 Serial.print("IR: "); Serial.print(irValue);
28 Serial.print(" Red: "); Serial.println(particleSensor.getRed());
29 // Real BPM/SpO2 needs the library's beat-detection / SpO2 algorithm on top of these raw readings.
30 }
31
32 delay(20);
33}
📄 File: max30100_purple_heart_rate_&_blood_oxygen_sensor_module_for_arduino_-_raspberry_pi_pico.inoRaspberry Pi Pico
927 characters
1//ekostra.com
2//electronics store in egypt
3//+201008896258
4
5// I2C wiring for Raspberry Pi Pico: GPIO4=SDA, GPIO5=SCL
6#include <Wire.h>
7#include "MAX30105.h" // SparkFun library - also covers MAX30100/30102 register-compatible reads
8
9MAX30105 particleSensor;
10
11void setup() {
12 Serial.begin(115200);
13 Wire.begin();
14 if (!particleSensor.begin(Wire, I2C_SPEED_STANDARD)) {
15 Serial.println("MAX3010x not found - check wiring!");
16 while (1) delay(10);
17 }
18 particleSensor.setup(); // default sensor settings (LED brightness, sample rate...)
19}
20
21void loop() {
22 long irValue = particleSensor.getIR();
23
24 if (irValue < 50000) {
25 Serial.println("No finger detected");
26 } else {
27 Serial.print("IR: "); Serial.print(irValue);
28 Serial.print(" Red: "); Serial.println(particleSensor.getRed());
29 // Real BPM/SpO2 needs the library's beat-detection / SpO2 algorithm on top of these raw readings.
30 }
31
32 delay(20);
33}
I2C optical heart-rate/SpO2 sensor.

Specification

Specification

WeightWeight6 g
Dimensions3 × 2 × 1 cm
Product TypePulse Oximeter & Heart Rate Sensor Module
Main ICMAX30100
PCB ColorPurple (GY-MAX30100 variant)
Operating Voltage (Module)3.3V ~ 5V DC (Onboard LDO regulators, level-shifting)
Operating Voltage (Sensor IC)1.8V ~ 3.3V DC
Current Consumption~600µA (Measurement), ~0.7µA (Standby)
Communication InterfaceI2C (SDA, SCL)
Light SourcesRed LED (660nm), Infrared LED (880~900nm)
ADC Resolution14-bit
Operating Temperature-40°C ~ +85°C

Customer Reviews