Blood Oxygen Heart Rate Meter Using Arduino

Blood Oxygen Heart Rate Meter

Blood Oxygen Heart Rate Meter

This instructables show how to use MAX30102, XIAO and a tiny display to build a blood oxygen and heart rate meter.

Step 1: Sensor & Algorithm

This project use Maxim Integrated MAX30102 Biosensor to detect pulse oximeter and heart rate. However, the official sample is not so accurate, so will use the MolecularD algorithm instead.


Step 2: Hardware Preparation

Hardware Preparation


The pulse oximeter calculation algorithm requires some memory. Arduino classic family does not have enough memory for data buffer. And also I want all components can fit in a 400 hole breadboard, so I need a smaller one. I have a Seeeduino XIAO in hand.


Any Arduino_GFX supported display should be ok, I have a 1.14″ 135×240 color display in hand.


Maxim Integrated MAX30102 Biosensor.

Step 3: Breadboard Connection

Breadboard ConnectionHere are connection summary:

XIAO    -> Display  -> MAX30102
VCC     -> VCC, BLK -> VCC
GND     -> GND, CS  -> GND
GPIO  0             -> INT
GPIO  2 -> RST
GPIO  3 -> DC
GPIO  4             -> SDA
GPIO  5             -> SCL
GPIO  8 -> SCL
GPIO 10 -> SDA

Step 4: Program

Program (4)

  1. Follow Seeeduino XIAO software install guide if not yet:…
  2. Download source code:…
  3. Open BloodOxygenHeartRateMeter.ino in Arduino IDE
  4. Press upload

Step 5: How to Use?

Plug USB power

  1. Plug USB power
  2. Wait “Put on finger” message show
  3. Put your finger on the MAX30102 sensor, “Measuring…” message show
  4. Hold and wait few seconds, blood oxygen and heart rate figures show

Step 6: Cross Check Figures

Leave a Comment

Your email address will not be published. Required fields are marked *