LamaPLC: GM MEMS Gas-sensors

GM MEMS sensors” can refer either to Micro-Electro-Mechanical Systems sensors used by General Motors in their vehicles or to a specific line of MEMS gas sensors produced by Winsen, such as the GM-102B or GM-602B.

GM (General Motors) Automotive MEMS Sensors

General Motors employs a variety of MEMS sensors across its vehicles to support essential safety, performance, and comfort functions. These sensors are typically supplied by leading manufacturers such as Bosch, NXP (now STMicroelectronics), and TDK.

Winsen GM Series MEMS Gas Sensors

“GM” may also refer to a specific product line of gas sensors from the manufacturer Winsen, designed using MEMS technology.

  • GM-102B: Designed for detecting NO₂ gas.
  • GM-302B: Used for alcohol gas detection.
  • GM-402B: A combustible gas sensor.
  • GM-602B: For monitoring H₂S (Hydrogen Sulfide).
  • GM-702B: For Carbon Monoxide/Hydrogen gas detection.
Type of
measurement
ModelPower
voltage
Measurement, range, accuracy
Gas sensor
NO₂
MEMS
GM-102b GM-102
5VDetection Range: 0.1~10ppm (NO₂)
Heater Resistance: 80Ω±20Ω(room temperature
Gas sensor
alcohol gas
MEMS
GM-302b GM-302
5VDetection Range: 1..500ppm (Ethanol vapor)
80Ω±20Ω(room temperature
Gas sensor
Alcohol (C₂H₅OH)
Hydrogen(H₂)
Formaldehyde(CH₂O)
MEMS
GM-502b GM-502
5VDetection: Alcohol (C₂H₅OH), 10..500ppm
Detection: Hydrogen(H₂), 1..1000ppm
Detection: Formaldehyde(CH2O), 10..100ppm
Gas sensor
Carbon monoxide (CO)
Hydrogen (H₂)
MEMS
GM-702b GM-702
5VDetection:
Carbon monoxide sensor (CO) : 10..5000ppm
Hydrogen sensor (H₂): 10..500ppm

Moduls

Seeed Studio Grove Multichannel Gas Sensor V2

GRV GAS SENS V2 The Grove Multichannel Gas Sensor V2 is a single module that integrates four independent MEMS gas sensors to detect a range of common gases via an I²C interface. It is designed for qualitative measurement of gas presence and relative concentration changes, rather than high-precision quantitative analysis.

Key Features and Specifications

The module uses specific Winsen GM-series sensors:

  • Integrated Sensors: GM-102B (NO₂), GM-302B (Ethanol/Alcohol), GM-502B (VOCs), and GM-702B (CO).
  • Interface: I2C (I²C address is typically 0x08, though some documentation lists 0x55).
  • Supply Voltage: Operates from 3.3V to 5V DC.
  • Gases Detected: Carbon Monoxide (CO), Nitrogen Dioxide (NO₂), Ethyl Alcohol (C₂H₅CH), Volatile Organic Compounds (VOCs), among others.
  • Function: Provides four sets of data simultaneously, allowing for differentiation between gas types based on the response profile of each sensor.
  • Measurement Type: More suitable for qualitative detection (detecting presence/change) than precise quantitative measurement (exact ppm values).
  • Preheat Requirement: A warm-up time of at least 24 hours is required for chemical balance and stable readings, especially after prolonged storage.
  • All 4 sensors in one platform:
    GM-102b (NO₂)
    GM-302b (alcohol gas)
    GM-502b (Alcohol (C₂H₅OH), Hydrogen(H₂), Formaldehyde(CH₂O))
    GM-702b (Carbon monoxide (CO), Hydrogen (H₂))

If you'd like to support the development of the site with the price of a coffee — or a few — please do so here.

Here's a handy tip: you can quickly save this page as a PDF by clicking “export to PDF” in the menu on the right side of the screen.

2026/02/14 22:38

Arduino & Seeed Studio Grove Multichannel Gas Sensor V2

To read from the Seeed Studio Grove Multichannel Gas Sensor V2 (which features the GM-102B, GM-302B, GM-502B, and GM-702B sensors), you must use the Seeed_Arduino_MultiGas library.

Hardware Connections

This sensor uses I2C communication:

  • VCC: 3.3V or 5V
  • GND: Ground
  • SDA: Arduino SDA (Pin A4 on Uno)
  • SCL: Arduino SCL (Pin A5 on Uno)
  • I²C Address: The default address for Version 2 is 0x08.

Arduino Example Code

This sketch reads all four GM-series sensors and prints their raw values to the Serial Monitor.

#include <Multichannel_Gas_GMXXX.h>
#include <Wire.h>
 
GAS_GMXXX<TwoWire> gas;
 
void setup() {
  Serial.begin(9600);
 
  // Initialize the sensor with the I2C address 0x08
  gas.begin(Wire, 0x08); 
  Serial.println("Grove Multichannel Gas Sensor V2 Initialized");
}
 
void loop() {
  // GM102B: Nitrogen Dioxide (NO2) sensor
  uint32_t valNO2 = gas.getGM102B();
 
  // GM302B: Ethanol (C2H5OH) sensor
  uint32_t valEthanol = gas.getGM302B();
 
  // GM502B: VOC (Volatile Organic Compounds) sensor
  uint32_t valVOC = gas.getGM502B();
 
  // GM702B: Carbon Monoxide (CO) sensor
  uint32_t valCO = gas.getGM702B();
 
  // Print results
  Serial.print("NO2: "); Serial.print(valNO2);
  Serial.print(" | Ethanol: "); Serial.print(valEthanol);
  Serial.print(" | VOC: "); Serial.print(valVOC);
  Serial.print(" | CO: "); Serial.println(valCO);
 
  delay(1000);
}

Critical Usage Notes

  • Preheating: For accurate readings, the sensor requires a “warm-up” period. It is recommended to leave the sensor powered on for 24 hours before its first stable measurement.
  • Raw vs. PPM: The standard library functions like getGM102B() return a raw ADC value. To convert these to parts-per-million (ppm), you must use specific calibration curves provided in the Seeed Studio Wiki.
  • Voltage Conversion: You can use gas.calcVol(val) to convert the raw reading into a voltage for easier cross-referencing with sensor datasheets.

This page has been accessed for: Today: 1, Until now: 22