We are making a simple pulse oximeter device with an Arduino Nano and a MAX30102 sensor.

The problem is the SpO2 reading and processing algorithm of the MAX30102 library literally does signal processing on the Arduino with large arrays of data and because of that, when you do BPM and SpO2, the 2kb memory of the Arduino is already full.

Can you guys give me some advice to overcome this problem?

  • If you mean large lookup tables / reference data, you should say, because that's definitely something worth knowing. More details in any case.
    – timemage
    Commented Jun 14, 2021 at 11:16
  • Are you saying it doesn't work with just that library, or are you saying there are other libraries also that make it not work (like an OLED library)? Commented Jun 14, 2021 at 11:17
  • I meant the arrays that saves data. It takes 4 second of data and process it. That beginning data alone takes 400 bytes of 2k. And it hits %90 of 2kb at spo2,bpm and oled but i still need to add bluetooth. Commented Jun 14, 2021 at 13:51

1 Answer 1


Arduino UNO is not recommended for MAX30102 as it requires a lot of processing and RAM. Consider shifting to Arduino Mega or the ESP32.

  • 1
    In the question they acknowledge the library they're using uses a lot of ram. I think the question is how do they do it on their hardware despite that. If it's fundamentally not doable in less ram, then explaining that might be useful.
    – timemage
    Commented Oct 26, 2021 at 15:07

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.