MAX30101 Breakout - Heart Rate, Oximeter, Smoke Sensor

by Pimoroni

The MAX30101 breakout is a sophisticated heart rate, oximeter, and smoke/particle sensor. Use it as a fun way to see your heartbeat, or to make LEDs or lights pulse in time with your heart. <3 It's Raspberry Pi and Arduino-compatible.

This sensor has three LED—green, red, and infra-red—and photodetectors that can be used together to detect the amount of light reflected back to the sensor. A technique called photoplethysmography (PPG) can be used to detect the change in colour of your skin with each beat of your heart when the sensor is pressed against your fingertip.

You can use the MAX30101 to detect particles in the air, like smoke, by measuring the amount of light bounced back to the sensor by the particles. We've got a rough example of how to do this in our Python library.

It's also compatible with our fancy Breakout Garden HAT, where using breakouts is as easy just popping it into one of the six slots and starting to grow your project, create, and code.

If you're using the MAX30101 with Breakout Garden for measuring heart rate, then we'd recommend using one of our Breakout Garden Extender Kits along with some female-to-female jumper jerky (available as Essential extras on this page). This will make it much easier to get reliable heartbeat readings. See Notes below for more information.

MAX30105 note: The MAX30105 sensor that we originally used on this breakout was discontinued by Maxim in 2021 but no fear, it's back as MAX30101 - it's exactly the same sensor with a different name.

This sensor (and the code in our Python library) should not be used for medical diagnosis, as the basis for a real smoke or fire detector, or in life-critical situations. It's for fun/novelty use only, so bear that in mind while using it.

Features

  • MAX30101 - heart rate, oximeter, smoke sensor (datasheet)
  • Green, red, and infra-red LEDs
  • Photodetectors
  • Ambient light rejection
  • Temperature sensor
  • I2C interface (address 0x57)
  • 3.3V or 5V compatible
  • Reverse polarity protection
  • Compatible with Raspberry Pi computers, and Arduino
  • Python library
  • Schematic

Kit includes

  • MAX30101 breakout
  • 1x5 male header
  • 1x5 female right-angle header

We've designed this breakout board so that you can solder on the piece of right-angle female header and pop it straight onto the bottom left 5 pins on your Raspberry Pi's GPIO header (pins 1, 3, 5, 7, 9).

Heart rate example

We've added a new example to our Breakout Garden GitHub repo, showing how you can create a little heart rate display with the MAX30101 breakout, 1.12" OLED breakout, and a Breakout Garden HAT or pHAT.

Software

Our Python library makes it straightforward to use your MAX30101 sensor. We've included some examples of how to display and graph and display heart rate, and a rough example of how to detect relative levels of particles like smoke.

SparkFun have put together a really comprehensive Arduino library for the MAX3010x sensors that also includes examples of how to measure blood oxygen saturation (SPO2), temperature, and presence detection.

Notes

  • This sensor (and the code in our Python library) should not be used for medical diagnosis, as the basis for a real smoke or fire detector, or in life-critical situations. It's for fun/novelty use only, so bear that in mind while using it.
  • When measuring heart rate with the MAX30101 sensor, you'll get much more reliable readings if you attach the sensor to your fingertip (the fleshy side) with a piece of wire or rubber band looped through the mounting holes on the breakout
  • Dimensions: 19x19x3.2mm (LxWxH)