Initial report by Jen 10/22/05

Figaro Engineering Inc. makes a nice selection of gas sensors that detect a variety of common atmospheric gases and contaminants.

Picture from Figaro Engineering Inc.
Model TGS 2442 (white) is pictured on the left and models TGS 2600, 2602, and 2620 are on the right (silver).

I purchased my sensors from Figaro Engineering Inc.

The air we breathe is made up of approximately 78% nitrogen, 21% oxygen. The remaining 1% is a mixture of dozens of different gases. Gas sensors detect amounts of certain gases in parts per million or ppm, which is a unit of concentration, in the immediate surrounding area.

You can calculate percent from ppm by dividing the ppm by 1,000,000 and multiplying by 100. So if you can detect 300ppm of ethanol in the air, the air is 3% ethanol, and you might be at TNO.

There is no way to order online from Figaro. You have to write to the company, ask for a pricelist, and then email them to order. They require payment in advance for delivering to a residence, and tack on a surcharge for orders under $50. The sensors that are being discussed here are the cheapest and run about 15$ each.


  • Mainataining worker safety in industrial, biomedical, healthcare and other industries
  • Controlling ventilation (HVAC) systems
  • Triggering air filters and cleaners
  • Natalie Jeremijenko used them in her Feral Robotic Dogs project in which she retro-fitted store bought toy dogs with these sensors and modified them to sniff out enviromental toxins.
  • Huadong Wu and Mel Siegel at Carnegie Mellon's Robotics Institute developed an Odor-Based Incontinence Sensor using these sensors. I don't really think I need to say anymore about that.
  • I plan to use these sensors in a project for the Wearable Technology class. I hope to create an accessory that responds to air quality by changing shape.

Electrical Characteristics

This report will cover four different models of gas sensors made by Figaro Engineering Inc.
Although there is some overlap, each sensor detects a slightly different set of gases. Listed below are the sensor model numbers and the list of some of the gases they detect in order of priority according to their data sheets.

TGS 2442 Data Sheet - Carbon Monoxide (CO), Hydrogen (H)
TGS 2600 Data Sheet - Hydrogen (H), Ethanol (C2H6O), Iso-butane (CH3CH(CH3)2), Carbon Monoxide (CO), Methane (CH4)
TGS 2602 Data Sheet - Toluene (C7H8), Hydrogen Sulfide (H2S), Ethanol (C2H6O), Ammonia (NH3), Hydrogen (H)
TGS 2620 Data Sheet - Ethanol (C2H6O), Hydrogen (H), Iso-butane (CH3CH(CH3)2), Carbon Monoxide (CO), Methane (CH4)

There are also links for an extended data sheet for TGS 2620, an extended data sheet for TGS 2442, and signal processing and calibration notes for TGS 2442.

I had to write to the company to get extended data sheets for TGS 2600 and TGS 2602. I put links to the pdf files here:
TGS 2600
TGS 2602

I also highly recommend reading Figaro's useful general information documentation.
They also provide soldering instructions on their website.

These sensors use a wheatstone bridge to detect gases. Two of the four pins on the sensor are connected to a heater and the other two are connected to the sensing element as shown in the diagram below.

The sensing element is coated with a metal oxide, usually SnO2 (tin oxide), which is oxidized when it is heated. From here, my comprehension of the chemistry is tenuous at best, but as I understand it, the SnO2 donates electrons from itself to the O2, resulting in negatively charged O2 molecules and positively charged SnO2 left on the surface of the sensor. The positivly charged SnO2 acts as a barrier to electron flow and increases the resistance of the sensor. In the presence of a deoxidizing gas, such as ethanol fumes, the ratio of available oxygen decreases, so there is less oxygen to accept the SnO2's donor electrons, which means that the SnO2 is not as positively charged and the resistance of the sensor is reduced. Gas levels are determined by measuring the voltage across a load resistor which is put between the negative pin of the sensing element and ground. This change in resistance can be sent as an analog value to a microprocessor. The load resistor can varry between models, between sensors, and depending on conditions in which the sensor is being used.

In the picture below I used a potentiometer to alter the resistance of the load resistor. Another option would be to use a trimmer pot or a fixed resistor.

Electrical Requirements and Characteristics
 TGS 2600TGS 2602TGS 2620TGS 2442
Voltage5.0V DC5.0V DC5.0V DC5.0V DC
Sensor Resistance10k ~ 90k ohms10k ~ 10k ohms1k ~ 5k ohms6.81k ~ 68.1 k ohms
Load Resistance.5k ~ 1.5k ohms.5k ~ 1.5k ohms.5k ~ 1.5k ohms 
Recommended Pre-heating duration2-7 days2-7 days2-7 days2 days

I used a .56k ohm resistor for the load resistor on TGS 2620 and 2602, and 2600. This yeilded a 600-700 point range on each of these sensors when exposed to a very high concentration of ethanol. Each sensor differed slightly in its range. The use of a sensitve trimmer pot to calibrate the sensor before each use might solve this problem.

Microcontroller Connections

The wiring for these sensors is incredibly simple. The value across RL, the load resistor, is simply sent to one of the analog inputs on the pic. Typically this would be used to trigger an alarm in cases of danger. There are several more complicated circuits listed in the data sheets, designed to account for extreme temperatures which could be necessary in some work environments, but the basic wiring for this sensor is very direct.

Pin Descriptons

Pin Connections

  1. Heater Ground - Ground (0V)
  2. Sensor Electrode (output) - must be connected to load resistor (RL) and ground, the value of this pin can be sent to an analog-in on a microprocessor, RL should be between 500 and 2K ohms, but the appropriate value for RL will change with use (without 7 days pre-heating), to compensate use a variable resistor
  3. Sensor Electrode (input) - (+5V)
  4. Heater Power - (+5V)

Code Sample

Here's a modified version of Tom's Processing Datalogger Multi code that allows you to look at the output of three sensors at the same time.

This simple PicBasic Pro code will light three LEDs when the level of air contaminants reaches a point when the serial out of the sensor exceeds 400, (about halfway through the sensor's range) in addition to giving three serial out values for three of these sensors.

Typical Behavior

Below are some graphs showing the behavior of each of these sensors in the presence of a large quanitity of various chemicals. Notice that each of the sensors responds differently to each chemical. It is also important to note that these sensors can detect WHETHER an environmental contaminant is present and approximately HOW MUCH in ppm. They CAN NOT identify the contaminant. The sensors that I am using here have not been calibrated or properly pre-heated and are therefore not giving accurate ppm readings.

Application Notes

Some stuff I noticed:

  • These sensors react very quickly to high concentrations of volatile organic chemicals in the air, but do not seem to take at least twice, or three times as long to return to 'normal'.
  • They get very HOT. I called the company to find out exactly how hot and was told that the heating element can get up to 350 degrees Celcius and the housing heats up to around 50 degrees Celcius. To mitigate this problem, I used heat sinks. This seemed to keep the overall circuit from heating up too much, but the sensor itself seems to get hot regardless.
  • The sensors need time to heat up on startup. The data sheets say to pause sampling for several seconds, but in playing with these sensors, I am finding that they require a minute or more to heat up and stabilize to the ambient air conditions. Below is a graph of the behavior of these sensors on being powered up.

To counteract this, it is a good idea to build a pause into you program by either delaying its start or by telling the microcontroller to ignore any hits above the action level for the first minute or so.