MAX30100 / MAX30102 sensors

Hello!

I read that some MAX30100 / 30102 boards has a problem with communication via I2C and the potential solution is to remove some pull-up resistors and add external ones.

Does someone have experience with this type of board? is this board also needs to be "tuned" to work properly?

https://aliexpress.com/item/4000320955076.html

Description says: "3-bit pad: select the pull-up level of the bus, depending of pin master voltage, select 1.8V or 3.3V (this terminal contains 3.3V and above)."

How this 3-bit pad works? I mean how can I select 1.8 or 3.3V?

Thanks in advance.
Greetings.

The schematic might be here: https://forum.mhetlive.com/topic/44/mh-et-live-max30102-pulse-oximeter-and-heart-rate-sensor/3.
That is weird, I don't know what to say about it. It is very wrong :astonished:
In my opinion that module is not meant for a 5V Arduino board and it is not even for a 3.3V Arduino board.

Here is a project that connects that module to a Arduino Uno: https://create.arduino.cc/projecthub/SurtrTech/measure-heart-rate-and-spo2-with-max30102-c2b4d8.
I would never do that :grimacing:

Sparkfun has the MAX30102 for 3.3V (not for 5V Arduino boards): https://www.sparkfun.com/products/15271.
The schematic shows a good circuit to interface the sensor with a 3.3V board :+1: (not for a 5V board).

Thank you for reply.

There seems to be two voltage regulators (3.3V and 1.8V) but I don't know how this "IIC level selection" works ;(

Unfortunately, Sparkfun module in not available in my country :(.

Do you have a 3.3V or 5V Arduino board ?

Manufacturer's page of the MAX30102: https://www.maximintegrated.com/en/products/interface/sensor-interface/MAX30102.html.

The MAX30102 sensor runs at 1.8V, maximum 2.0V.
Its led needs 3.3V.
However, the signals pins, such as SDA and SCL can get up to 6V before the sensor gets damaged. That is what the circuits make use of, but it is not nice.

The pullup resistors on most modules can get in the way, as you mentioned.
I encountered a few websites trying very hard to make the modules work.

For a 5V Arduino board, level shifters for SDA and SCL should be used and a voltage regulator for 3.3V for the led and a voltage regulator for 1.8V for the sensor.

This one is better, but still very weird.
The SDA and SCL are converted to 3.3V signals, but that should be 1.8V signals. The "INT" signal does not have a level shifter, but that should work: https://www.alibaba.com/product-detail/GY-MAX30102-MAX30102-Heart-Rate-Click_60631080453.html.
The advantage is that the sensor will not be damaged and there should be no problems with pullup resistors.
Those are also on AliExpress: https://www.aliexpress.com/item/4000083361778.html.

The level shifters are made with mosfets. The limit for the lowest voltage is about 1.8V. Perhaps that is why they convert the signals to 3.3V for the 1.8V sensor. Take a little here, and give a little there, and hope that it works.

I didn't expect to enter such weird world when interfacing the MAX30102. I'm returning now to the real world :sunglasses:

Module will be paired with ESP8266 (NodeMCU) so will be powered with 3.3V, but I can also power it up with 5V from external source if needed. I see in some photos that one of these 3 pads is "pierced" - the one next to 1.8V inscription and module description says: "this terminal contains 3.3V and above". Do this "puncture" has anything to do with voltage selection?

There should be a connection from the middle pad to the 3.3V pad.
The 4k7 pullup resistors on the sensor module is enough pullup.
I suggest to power the VIN with 5V, because of the voltage drop by the 3.3V voltage regulator on the sensor module.

Run a I2C Scanner sketch to check if the I2C bus is working.

The piercing of the pad is normal. That is a via, a connection between layers.

Does connections between middle to 3.3V pad is already there by default or I need to short these two pads?

If that is not visible, can you measure it ?