How can i calibrate the following sensors MAX30102, DSB1820 to suit human body vitals ?


I moved your topic to an appropriate forum category @byte_bandit.

In the future, when creating a topic please take some time to pick the forum category that best suits the subject of your topic. There is an "About the _____ category" topic at the top of each category that explains its purpose.

This is an important part of responsible forum usage, as explained in the "How to get the best out of this forum" guide. The guide contains a lot of other useful information. Please read it.

Thanks in advance for your cooperation.

Calibration of anything requires a standard to compare with. Do you have access to such standards?

Measuring against medical grade calibrated meters.

i don't understand the standard you meant, do you mean to compare with normal human vitals readings ?

No,
I mean a physical standard that have a value that was calibrated by a third party to be within some small value to a known value. Take temperature for instance. You need a calibrated standard that will will show you a temperature of something. You then match your temperature measurement to the value of that standard. A regular thermometer from the drug store is not a standard.

All calibrations will require a similar standard.

I don't have access to sure standard . i only work on the calibration based on normal or abnormal human vital readings. The readings i'm getting has not be a satisfy one.

If you know the value it should be and the sensor is working correctly, then change your code to make it produce the value you want.

That is the problem i'm having. it reads normal and then go abnormal for some time when i'm testing it.

Then something you are doing while testing has to be the cause. Time to put on your detective uniform!

The temperature sensor you picked is rated at: 0.0625 °C steps, but its specified accuracy is typically ±0.5 °C between −10 °C and +85, that is its 12 bit default.

From the web and data sheet I got this, the raw measurements for the MAX30102 are:

  • Red LED ADC value: 18-bit integer (0–262,143 counts)
  • IR LED ADC value: 18-bit integer (0–262,143 counts)

These counts represent reflected light intensity. The smallest possible change in the raw signal is 1 ADC count.

However:

  • Heart Rate (BPM) is calculated from the time between pulses.
    Resolution depends on sample rate and algorithm.
    Example: at 100 samples/s, one sample corresponds to 10 ms.
    Around 60 BPM (1 s between beats), a 10 ms timing change corresponds to roughly 0.6 BPM. Averaging can improve apparent resolution.

  • SpO₂ (%) is computed from ratios of red and IR signals.
    There is no intrinsic 0.1%, 0.5%, or 1% hardware step.
    Resolution depends on the algorithm, calibration, filtering, and signal quality. Most libraries report integer percentages (e.g., 97%, 98%), while some report decimals.

Hopefully this will help you narrow down what you want and what is reasonably possible.

The only sensor realistically you can calibrate is temperature.
Iced water and boiling water would give you two points to compare the DS18B20 against.
The gold standard temperature sensor for industrial/commercial use is the Platinum Resistance Thermometer (PRT).

Cheap oral thermometers use a narrow range of temperatures to cover body temperatures and use an NPT thermistor.

Blood oxygen saturation level is probably impossible to check outside the laboratory.
You could buy or borrow a clinical device to compare against. I use the same finger sensor device as the GP (ChoiseMMed MD300C29). The pulse reading seems to be pretty accurate and compares well with a blood pressure instrument. I'm lucky or unlucky enough to have an implanted device set to a minimum BPM of 70.

Pulse is easier. Just set up an LED to flash to between say 40 and 90 BPM. Check with a scope or frequency meter.

For any instrument to be able to be classed as calibrated, it involves a certified trail to to some accepted standard.

Even those depend on air pressure... :slight_smile: so for calibration one need to do some math.

How is your circuit wired up? That is, is it soldered up with no solder less bread board involved. It is probable that any solder less that is causing intermediate contact that is ruining your readings.