Multichannel Gas Sensor V2: All values returned are zero

Hello everyone,

Currently, I am starting in the fancy world of Arduino and sensors. After buying the Grove - Multichannel Gas Sensor V2, together with the Grove Base Shield V2 and the Sintron Uno R3, I did some research on connecting the sensor. It says to preheat the sensor to get the best values.

The Grove Base Shield V2 is placed on top of the Arduino and the gas sensor is connected to the Base shield using the delivered I2C cables. All leds were turned on after connecting the system via USB to my PC, so it seemed to me that the first phase was a success. Then, without disconnecting from the PC, I did the preheating by leaving the arduino connected (via USB) to my PC for 24 hours. After this, I downloaded the zip library via GitHub - Seeed-Studio/Seeed_Arduino_MultiGas: This library could be used to detect four different gas concentrations and display them on the terminal. (archive/ and created some relatively simple code to print all the values of the gas sensors:

#include <Multichannel_Gas_GMXXX.h>
#include <Wire.h>
GAS_GMXXX<TwoWire> gas;
void setup() {
  gas.begin(Wire, 0x08); // use the hardware I2C
void loop() {
  // put your main code here, to run repeatedly:

  // GM102B NO2 sensor
  int valNO2 = gas.getGM102B();
  if (valNO2 > 999) valNO2 = 999;

  // GM302B C2H5CH sensor
  int valC2H5CH = gas.getGM302B();
  if (valC2H5CH > 999) valC2H5CH = 999;
  // GM502B VOC sensor
  int valVOC = gas.getGM502B();
  if (valVOC > 999) valVOC = 999;
  // GM702B CO sensor
  int valCO = gas.getGM702B();
  if (valCO > 999) valCO = 999;

  // Print the readings to the console
  Serial.print("NO2: ");

  Serial.print("C2H5CH: ");

  Serial.print("VOC: ");

  Serial.print("CO: ");


Running this code, the serial monitor shows only 0 ppm values for each gas, so it seems that the sensor is not picking up any gases.

Does anyone know what the problem could be and know any possible solutions?

Looking forwards to your reply, thanks!

You sure those values are integers?
val = gas.getGM102B();
just thinking they would be floats or?

Manufacturer Part Number:  5605474
This is an UNO R3 Arduino-compatible board with an Atmega328p and a CH340G serial converter. This board is a clone to the Arduino UNO R3 but functions exactly as an Arduino and is fully compatible with the Arduino Software (IDE).
This UNO has been manufactured using the creative commons files provided on the Arduino website therefore it is not manufactured by Arduino but is compatible in every way and costs much less.
The Uno differs from all preceding boards in that it does not use the FTDI USB-to-serial driver chip. Instead, it features the Atmega16U2 (Atmega8U2 up to version R2) programmed as a USB-to-serial converter.

Please make sure you install this driver before you start to use Sintron Pro UNO R3: download driver here:

you do the driver part for the Sintron Uno R3 ? You able to compile or do any succesful blinky sketches?
and lastly,

gas.begin(Wire, 0x08); // use the hardware I2C… You check the address is correct and responding with the IC2 scanner sketch? Just throwing some out there.
(nice little sensor), crazy compared to some GCG’s and Process gas Analyzers back in the day. LOL :smile:


Thank you very very much. I have been able to resolve the issue thanks to your tip:

You check the address is correct and responding with the IC2 scanner sketch? Just throwing some out there.

Writing code for a scanner, it was indeed the case. The device was connected to the wrong port of the base shield (I’m a bit ashamed to admit it). But now, it works and I get values from the sensor. Thanks a lot for your reply, it pointed me in the right direction :smiley:

Man That is AWESOME… :smile: :+1:
Well we know what they say about 2 heads and 4 eyes better than going it alone…LOL
GL :-p