Open Source Gas Detector

Building a relatively cheaper and configurable Gas Detector with the addition of detection modules

Similar projects worth following
New to playing with Arduino's I've decided for my first project I will ambitiously attempt to build a multi gas detector for under $200 to provide similar functionality to ones currently on the market but cost upwards of $2800 AUD for a multi gas detector (MSA Altair 5X).

I don't initially expect it to have quite the same resolution as the $2800+ counterpart but thought this would be an interesting start, and may be useful for the hobbyist and those within particular industries.


I am undertaking this project to expand my understanding of Arduino microprocessors and to build something that I feel is important and often overlooked, especially as a volunteer firefighter.


I hope to achieve a functional gas detector which can sense and accurately ascertain the PPM and/or % concentration of a substance within the atmosphere for under $200 AUD.


I am trying to keep my project as open source as possible and as low cost as possible without too many compromises, keeping in mind that this is also a learning project, I also welcome all constructive criticisms and will try to provide as much rationale and context around why I made certain design choices.

I have based the raw functionality/price point to a MSA Altair 5x this is approx. $2800 AUD from the cheapest price I briefly saw online. My initial price was based off the Altair 4x, but since I am trying to match the functionality of the 5x, then I should compare apples with apples.

Known Challenges

For this to really be a functional gas detector I believe I will have to overcome the following challenges:

  • Calibration - I don't believe I have done enough research yet into this area, however this project is still in the incipient phase.
  • Intrinsically Safe - Not sure about what standards are involved and how to test this non-destructively, again more research is required.
  • Power Consumption - Ideally I would like at least a 14 hour battery life, however more considerations have to be given to what technology, charging circuits and capacity.
  • Testing - I would need to source various toxic substances or potentially attempt to monitor the atmosphere at an incident which may require some form of approval through my brigade or higher.


Contains resolution of MSA Altair 5X multi gas detector

Portable Network Graphics (PNG) - 82.59 kB - 10/10/2016 at 06:43


  • 1 × Arduino Leonardo
  • 1 × MQ2 Gas Sensor
  • 1 × PCD8544 - LCD Screen
  • 4 × 10k Resistors
  • 1 × 330R Resistor

View all 7 components

  • Getting started with the Arduino and LCD

    Josh Wright10/10/2016 at 06:04 0 comments

    Well I started off with the Arduino and got myself set up to start sketching to it from my Macbook. It didn't take long and I had got the onboard LED on pin 13 flashing (my 'Hello World' to Arduino).

    From there I sought to get started with the LCD. I followed a tutorial online (below) to get the LCD module working with my arduino, I then used that code as the basis to suit to my needs.

    LCD hookup Guide

    This will form part of the display output when I finally get my hands on the Gas Sensor module which should hopefully be by midweek.

    To get the LCD to work I had to do the following in the LCDWrite() function which I found in the comments section:

      SPI.transfer(data); //shiftOut(sdinPin, sclkPin, MSBFIRST, data);

      shiftOut(sdinPin, sclkPin, MSBFIRST, data);
    I also changed the code to the following within the lcdBegin() function

    LCDWrite(LCD_COMMAND, 0x21); //Tell LCD extended commands follow
    LCDWrite(LCD_COMMAND, 0xc8); //Set LCD Vop (Contrast)
    LCDWrite(LCD_COMMAND, 0x12); //LCD bias mode 1:48 (try 0x13)
    LCDWrite(LCD_COMMAND, 0x20); //chip is active, horizontal addressing, use basic instruction set
    //We must send 0x20 before modifying the display control mode
    LCDWrite(LCD_COMMAND, 0x09); //temperature control
    LCDWrite(LCD_COMMAND, 0x0C); //Set display control, normal mode.

    Once completed success:

View project log

Enjoy this project?



Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates