meta data for this page
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.
Moduls
Seeed Studio Grove Multichannel Gas Sensor 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.
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.
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

