Compact Arduino Based Pulse Oximeter Sensor Circuit

Introduction: Compact Arduino Based Pulse Oximeter Sensor Circuit

About: IoT projects, DIY projects, Arduino projects, Raspberry pi projects, NodeMCU based projects, Articles, Electronics projects.

There are many pulse-oximeter sensors available in the market for medical purposes, and in one of our previous projects, we also made an IoT-based Heart Rate Monitor where the data is sent from a device to the cloud. Now, here in this project, we will do the same thing but differently with a different mindset. We will make the project using a MAX30100 sensor and an OLED display that will display the output in the same way as a proper Pulse-Oximeter sensor displays. The objective of this project is to make the whole process simple, for this reason, we are going to use an Arduino Nano. Our goal is to make the device as compact as possible and smaller in size. So that it can be handy to use in the time of need. Previously, we have also built other heart rate monitors using pulse sensors. Also, if you are interested in other Covid-19 related projects, you can check out the Human body thermometer, Smart IR Thermometer for fever monitoring, and Wall-Mount Temperature scanner that we build earlier.

This is the Pulse-Oximeter sensor-based project same as the available medical device. However, This project is not for medical purposes. Please do not use this to evaluate the patient's condition and always use a proper medical-grade device. This is only intended for hobby and learning purposes.

Step 1: MAX30100 Sensor and OLED Display

Before going directly into the project let’s introduce the major component, the MAX30100 sensor, which is a simple module that communicates with the I2C bus line with the microcontroller and provides the SpO2 and Pulse information to the host microcontroller unit. In simple terms, this sensor can identify the oxygen saturation Thus, this module has two integrated functions, Pulse rate monitoring and provides oxygen saturation level of the blood in a non-invasive form.

It uses photodetectors and optical elements where red or green IR LED modulates the LED pulses. The LED current is configurable from 0 to 50mA. The image given above shows the MAX30100 sensor.

The above sensor module works with the 1.8V to the 5.5V range. The pull-up resistors for the I2C pins are included in

OLED displays are very common in electronics. We are using OLED display as all available pulse oximeter devices available in the market use OLED display. For this project, we are using 1.3 Inch I2C based OLED display. It has a 128x64 Resolution with a controlling chip of SSD1306.

Step 2: Components Required to Build Arduino Based Pulse Oximeter Circuit

  1. Arduino Nano
  2. 2 pcs – 4.7k resistor for I2C pull-up
  3. MAX30100 Sensor
  4. OLED Display SSD1306 based 128x32 Resolution
  5. 5V adequate power supply unit with the rated current of at least 300mA

Step 3: Schematic of the Oximeter Circuit

This is a very simple schematic. The pin A5 and A4 of the Arduino Nano are connected with pulse oximeter sensor 30100 and OLED Display with the SDA and SCL pins. Both pins are using a pull-up resistor of 4.7k value.

Step 4: Arduino Based Pulse Oximeter Circuit Testing

The circuit is made in a small compact Vero board. The data is perfectly displayed on the display. Without any data, the screen looks like this.

As we can see in the below image, the SPO2 level is showing 97% and the heartbeat is showing 82 bits per minute when measured and the animation is also changed.

Step 5:

For more information visit this page and

Subscribe our Youtube channel : Circuit Digest
Follow us on Instagram : @circuit_digest

Be the First to Share


    • Raspberry Pi Contest

      Raspberry Pi Contest
    • Photography Challenge

      Photography Challenge
    • One Board Contest

      One Board Contest


    Alex in NZ
    Alex in NZ

    2 months ago

    Nice project! Thank you for sharing it :-)