Cooking Hacks Forum

Problems with SPO2 Sensor
Page 1 of 1

Author:  svia [ Mon May 29, 2017 11:12 am ]
Post subject:  Problems with SPO2 Sensor

We have eHealth v2, it was bought in 2015, but we have beeing using the SPO2 sensor for the first time 4 months ago.

We are encountering several problems:
- Values are not always read correctly, specially the first digit of the heart rate, about half of the samples
- It seems not to work in presence of sun
- Quite erratic behaviour

An today, after working last week with the problems said before, today is not lighting up, it is not turning on.

We connected to AAA battteries, but it is still not working.

What happens? I hope you can help us through this.


Author:  libelium-dev [ Tue May 30, 2017 7:39 am ]
Post subject:  Re: Problems with SPO2 Sensor

Hello svia,

are you using Arduino or Raspberry Pi? Can you test with our library examples being unaltered? Please send us a photo of your hardware setup.


Author:  svia [ Wed May 31, 2017 10:09 am ]
Post subject:  Re: Problems with SPO2 Sensor

I'm using a SPO2 sensor which was bought in 2015 and it doesn't have a yellow sticker on in.

The Board I'm using is Arduino UNO

The IDE is 1.0.1
My computer is Windows 7 Professional.

EHealth board v2.0

Library: eHealth_arduino_v2.2_SPO2

Arduino Board UNO is connected to the Shield.

I'm using the sensor without batteries, I connected the batteries and it didn't turn on.

Some times sensors seems not to turn on, but even when it turn on, it is not able to read the correct data. During some period it read the correct data one of 3 times, where values where truncated.

I tried the example code that comes with the library, With bad results:
PRbmp=3 %SP02= 0, when in the sensor it van bee seen 73, and 99.

I have a look to eHealth library: eHealth.cpp

I see that what is being printed in the serial monitor are this values defined there.

As it didn't work as it was.
I tried to read and print each digito[i], and only digito[0] prints the unit value of the pulse rate. All others digito[i] send a 0.

What happens? And how can be solved?

Author:  svia [ Wed May 31, 2017 10:36 am ]
Post subject:  Re: Problems with SPO2 Sensor

By the way, can you also provide information about what each pin of the sensor is for?

Thank you

Author:  libelium-dev [ Fri Jun 02, 2017 7:41 am ]
Post subject:  Re: Problems with SPO2 Sensor

Hi svia,

The pin-out of the sensor is not open-source. You can see the e-health schematic, maybe it can help you: ... h_v2.0.pdf


Author:  svia [ Tue Jun 06, 2017 10:11 am ]
Post subject:  Re: Problems with SPO2 Sensor

Thanks for the schematics, I also looked to the eHealth.cpp library.

So, I understand that what the sensor is sending to the Arduino is the state of the LED's that form a number in the display. So I guess that if there are 5 digital displays in the SPO2 sensor, each one is being send with a fixed rate, so digit1, digit2, digit3, digit4, digit5, and it starts again sending the state of each led segment.

In the library that I donwloaded:
void eHealthClass::readPulsioximeter(void)
      uint8_t digito[6];

      uint8_t A = 0;
      uint8_t B = 0;
      uint8_t C = 0;
      uint8_t D = 0;
      uint8_t E = 0;
      uint8_t F = 0;
      uint8_t G = 0;

      for (int i = 0; i<6 ; i++) { // read all the led's of the module
         A = !digitalRead(13);
         B = !digitalRead(12);
         C = !digitalRead(11);
         D = !digitalRead(10);
         E = !digitalRead(9);
         F = !digitalRead(8);
         G = !digitalRead(7);
         digito[i] = segToNumber(A, B, C ,D ,E, F,G);   
         delayMicroseconds(2350); //2800 microseconds         

         SPO2 = 10 * digito[4] + digito[3];
         BPM  = 100 * digito[2] + 10 * digito[1] + digito[0];

I don't know why the delay was different from the one commented. I changed it to the commented one, 2800.
Now what I get when running eHealth Pulsioximeter example for Arduino UNO is:

In the Sensor:
BPM:63 SO2:99
In the Serial Monitor:
BPM:93 SO2:69
truncated values also: BPM:3 SPO2:9

In fact I get a not truncated value, one truncated, one not truncated, two values truncated, and again...

I changed the code eHealth.cpp to
   SPO2 = 10 * digito[3] + digito[1];
   BPM  = 100 * digito[2] + 10 * digito[4] + digito[0];

Now results in the Serial Monitor when running eHealth examples are:
In Sensor display:
BMP:53 SO2:97
In the Serial Monitor:
Some values are the actual value seen in the sensor display
BMP: 53 SO2:97
But then others are truncated
BMP: 3 SO2:90

The Sensor is not working properly, sometimes values read are unreal, as 91%SO2... but anyway, my biggest concern by the moment is to send the same values as in the display to the Serial Monitor.

Could you please provide some help?

Author:  libelium-dev [ Wed Jun 07, 2017 7:21 am ]
Post subject:  Re: Problems with SPO2 Sensor

Hi svia,

Have you tried with other libraries if you have got the same problem?

v2.0: ...

v2.1: ...

v2.2: ...

v2.3: ...

v2.4: ...

We discontinued this sensor some months ago and we can't test your version two years later... try with these libraries and tell us the results.


Author:  kpr_sriram [ Sun Jul 02, 2017 12:40 pm ]
Post subject:  Re: Problems with SPO2 Sensor

:cry: I have bought E-health sensor kit during 2016.But the Spo2 sensor is not lighting up and also not showing any spo2 value or heartbeat value. Even GSR is also not working it is showing unreal value.Please help me out.

Author:  libelium-dev [ Mon Jul 03, 2017 7:13 am ]
Post subject:  Re: Problems with SPO2 Sensor

Hi kpr_sriram,

Please open a new personal post to help you. Show us photos, codes and tell us more information about your problem.


Page 1 of 1 All times are UTC + 1 hour
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group