MIKROE NDIR CO2 Click is an advanced integrated CO2 gas sensor system, which is able to measure an absolute CO2 concentration, by utilizing the CDM7160 integrated sensor. This sensor is based on nondispersive infrared sensing principle (NDIR), with two detection elements: one is used for detecting the wavelength of the IR light spectrum, affected by the CO2 gas, while the other detects the wavelength of the IR light spectrum not affected by the CO2 gas. The integrated MCU processes the readings and outputs the absolute CO2 gas concentration value through UART or I2C interface. Dual wavelength sensing method allows not only accurate absolute readings, but also provides immunity against dust pollution, providing consistent readings in corrosive atmosphere, variable ambient temperature, and over longer periods of time.

Due to its large scale of integration, this sensor requires no external components involved in the measurement process, which improves the overall accuracy. Each of these sensors is factory tested and calibrated. The sensor also offers several I/O pins for simplified configuration and operation, saving the MCU from polling the registers. A specialized ALARM pin offers the possibility to trigger an MCU interrupt if the programmed CO2 concentration value is exceeded. These features make the NDIR CO2 Click a perfect solution for various CO2 measuring applications, such as air conditioning applications, indoor air quality control applications, automatic fresh air exchange and venting systems, and similar.

The main component on the NDIR CO2 Click is the CDM7160, a pre-calibrated single light source, dual wavelength, CO2 sensing system, by Figaro Engineering, INC. Its light source emits the light, which is detected by two IR sensors. One light sensor is placed behind the filter which allows only a part of the IR spectrum affected by the CO2 gas to pass through, while the second sensor is placed behind the filter which passes the IR spectrum of the light which is not affected by the CO2 gas. This forms a kind of a differential input for the sensor - an integrated MCU will process the received data by differentiating these readings. This allows the absolute value of the CO2 gas concentration to be obtained, but also removes any influences of particles and other disturbances, as they affect both sensors equally. This allows consistent readings over various temperatures, in various environments, including areas rich with corrosive gases (SO2, H2S…), and over a longer period of times (aging).

The CDM7160 sensor has the ability to output data in two ways: depending on the status of the MSEL pin, it can use either a UART or I2C communication interface. If this pin is pulled to a LOW logic level, the I2C interface will be selected after the CDM7160 reset cycle. Otherwise, the UART interface will be selected. Since the communication pins are shared between the interfaces (SCL/RX and SDA/TX), they need to be switched to the corresponding pins of the mikroBUS™ whenever the different type of communication is used. Therefore, the Click board™ has a section with three small SMD slide switches labeled as COM SEL. Positioning all three switches to the LEFT position will select the I2C interface while the RIGHT position will select the UART interface. When the I2C interface is selected, an additional pin is available to set up the I2C address of the device. This pin determines the LSB of the I2C peripheral address and when it is pulled to a LOW logic level, this bit becomes 0. This allows up to 2 different devices to be connected to the same I2C bus. This pin is routed to another SMD slide switch, labeled as the ADD SEL.

It is possible to perform two types of calibration for this sensor: zero calibration and the background calibration. The zero calibration is performed in the atmosphere with the CO2 concentration of 0 ppm, while the background calibration is performed in the atmosphere with a nominal CO2 value (400 ppm). Since the sensor is influenced by the sea level and the atmospheric pressure, these calibrations should be performed whenever these conditions are changed. This will allow an increased accuracy of the CO2 concentration readings. The CDM7160 sensor offers a pin labeled as CAL, for an easy calibration: if the CAL pin is pulled to a LOW logic level for about 2 to 11 seconds, a background calibration will be performed. If pulled to a LOW logic level for more than 12 seconds, the zero calibration will be performed. This pin should remain HIGH during normal operation. An internal pull-up resistor ensures that the pin is always HIGH if it remains floating. This pin is routed to the mikroBUS™ CS pin, labeled as CAL

The ALERT pin of the CDM7160 sensor is used to trigger an interrupt on the host MCU. By default, it will trigger an interrupt if the CO2 concentration exceeds 1000ppm. The interrupt will be cleared if the concentration drops below 900ppm. These settings can be changed by writing values to the corresponding ALHI and ALLO registers (upper and lower threshold registers). The ALERT pin of the CDM7160 sensor is routed to the mikroBUS™ INT pin.

BUSY pin of the sensor provides means to save the sensor from polling sensor registers in order to verify if the device is ready for the communication. By setting an interrupt for the BUSY pin, the MCU can be automatically triggered only when the sensor is ready to accept a new command. A logic LOW level signals the MCU that the sensor is unable to accept a new command. The sensor might be unavailable while processing the data internally, for about 0.3 seconds. This pin is routed to the mikroBUS™ RST pin, labeled as BSY on the Click board™.

Besides UART and I2C communication, the sensor offers a 1KHz PWM signal of with the duty cycle which depends on the CO2 concentration (0 to 5000 ppm of CO2). The Click board™ is equipped with an operational amplifier, which averages the PWM signal, offering analog DC voltage (0 to 5V) on its output, directly proportional to the pulse width of the PWM signal. By switching the SMD jumper labeled as AN ENABLE to EN position, the voltage at the output of this operational amplifier becomes available at the AN pin of the mikroBUS™. By default, the jumper is soldered to DIS position. Note that the full-scale voltage on the operational amplifier output is 5V (5000 ppm of CO2 equals 5V)

To allow communication with 3.3V MCUs, two additional ICs are used: one is the PCA9306, which translates voltage levels of the I2C signals, while the second IC is the TXB0106, used to translate voltage levels of the remaining IC pins, including the UART. Both of these ICs are used on many other designs, and are proven to be very reliable solution.

  • Interface: Analog, I2C, UART
  • Compatibility: mikroBUS™
  • Dimensions: 57.15 x 25.4mm
  • Input Voltage: 3.3V, 5V
  • Voltage at the AN pin (if enabled): Min. 0V, Max. 5V
  • Measurement Range: Min. 300ppm, Max. 5000ppm
  • Averaging Interval: 2s

MIKROE NDIR CO2 Click Product Help and Resources


Looking for answers to technical questions?

We welcome your comments and suggestions below. However, if you are looking for solutions to technical questions please see our Technical Assistance page.

Customer Reviews

No reviews yet.