Grove Oxygen Sensor Pro (Pre-calibration) always reads 25% O2

Hey all,

I recently received a GCC2330 O2 Sensor Pro. I can successfully parse the UART packets, but the value is always exactly 25% O2, despite various tests where there should hardly be any oxygen at all (e.g. inside a small mason jar with a lit tea light that burned out after consuming all the oxygen in the air).

I used the arduino code referenced on the wiki page, with a couple pin and baud changes to work with my board (ESP32). Here’s a few example packets I received:

ff 86 00 fa 00 00 0a 25 51
ff 86 00 fa 00 00 0a 2f 47
ff 86 00 fa 00 00 0a 1c 5a

Per the datasheet, the 3rd and 4th byte are the concentration, with “Gas concentration value = (gas concentration high byte *256 + gas concentration low byte) * resolution” where resolution is 0.1.

0x00fa ==> int 250
250 * 0.1 ==> 25.0

The value stays the same regardless of whether I’m powering VCC at 3.3v or 5v, and no matter how long I leave the sensor running (I’ve tried up to an hour with no change, which is well past the 5min settle time specified on the product page).

I’m also confused by bytes 6 and 7 - these are expected to be 00 00 per the datasheet, but seem to hover around 0x0a00 (decimal 2560). What are these values?

Is my unit defective? Are there any other recommendations on steps to try?

Thanks in advance!

Hi, thank you for using our product. I see a few issues from your description and the developer documentation, I hope you can troubleshoot from there and if it is determined to be a problem with the sensor, we will take care of it for you.
1、This sensor needs to be connected to the pin with ADC function, do you have Arduino on hand, can you change the platform and try again?
2、I learned from the developer’s documentation that it takes 20~30 minutes for the sensor to warm up.
3、You said in the description that you adjusted the baud rate, here I suggest you keep the original code 9600 for use.

Developer documentation: Grove_Gas_Sensor_O2/Grove-Gas_Sensor-O2.md at master · SeeedDocument/Grove_Gas_Sensor_O2 · GitHub

Hi Citric, thank you for the extra steps to try.

  1. The developer documentation you provided is for the ME2-O2, not the GCC2330 O2 Sensor Pro. The Pro sensor has both UART and analog outputs, so I expect the UART communication to not also require the analog output from the sensor.

    When I try the sensor with an Arduino Uno (connecting GND to GND, VCC to 3.3V, and V0 to A5, then uploading the code from your link) I see:

    Vout =1.96 V, Concentration of O2 is 20.59
    

    Which is close enough to ambient O2 concentration. But again, this value does not change (beyond ~0.04%) even after preheating for over an hour and enclosing it in an environment with low oxygen. I also repeated the test with VCC=5V, which is actually the specified operating voltage per the datasheet.

  2. Thank you for the clarification - I’ve been waiting for double this period, so the sensor should be warmed up when I go to test it.

  3. I reverted the baud rate in my original program to 9600, but the result is still the same when measured via UART (“O2: 25.00 %”).

I’ve got my eye on the situation and I’ll apply for one to test it out and see if this is a common situation or your particular case. I will get back to you as soon as possible.

1 Like

Hey Citric - I don’t suppose you managed to test out the GCC2330 sensor on your side? My sensor is still acting up.

Hey @Citric, any word on the sensor? I’d like to get back to my project.

Sorry for the late reply, my side of the test did not show your situation, this may be an isolated case. I need to trouble you to contact the technical support email and they will handle the exchange or other options for you.

Hey @Citric - just wanted to check in one last time. I received the replacement sensor today, and it works as described in the datasheet. The previous sensor must have been faulty, as with this sensor I can now immediately detect O2 concentration changes just by blowing air onto the sensor.

Thanks again for your help!

1 Like

Hi @Citric, I received the oxygen sensor pro last week. I hooked it to a nano 33 BLE and followed the pin connection layout and the code shown on the wiki page. Sadly, I experienced the exact same problem. The reading is always 25%. Any suggestion to work with the issue? Many thanks.

Hi @Citric,
I am also experience this issue. My sensor always shows 3.0V at the output independently of the supply voltage(3.3V or 5.0V).
Further, the UART code I can read from the sensor is in hex:
FF - 86 - 0 - 0 - 0 - 0 - 0E - 87 - E5
The first 2 values seem to be correct. The check value, i.e. the last value, seems also to be correct according to the checksum calculation from the data sheet.
The problem is that the bytes 7 and 8, which should be 0, and bytes 3 and 4 should have values in air.
The serial number of the sensor is:
M1D11S00DJZJ13
Could this be a firmware issue of the sensor? Or maybe the calibration? Is there a way to fix it?

Best Gustav