Our new website is in BETA! If you would like to take a look then please visit new.dizzy.co.za :-).

+27 (0)11 022 5323 +27 (0)64 681 8495
- -
CO 2 click (Go to Parent Category)

CO 2 click

CO 2 click is a very accurate, carbon-monoxide-gas-sensor Click board™, equipped with the SPEC amperometric, 3SP CO 1000 gas sensor which electrochemically reacts with the carbon monoxide (CO). It is supported by the LMP91000, a high-precision integrated analog front-end IC (AFE), perfectly suited for use in electrochemical, sensing applications. The Click board™ also provides the reference voltage required by the sensor and it offers a choice between the analog output from the AFE IC buffered with the low noise op-amp, and the digital output from the 12-bit SAR A/D converter.

R795  Qty:
Price ex. VAT. Weight: 26g. Stock: Lead-time applicable [i]. mikroE Icon

The AFE IC provides a unified platform for many types of electrochemical sensors and as such, it packs a range of different features which simplify the use of various electrochemical sensors. The AFE IC supports gas sensitivity in a range from 0.5 nA/ppm to 9500 nA/ppm. Equipped with the SPEC CO sensor with the resolution of 100ppb, the CO 2 Click board™ can be used for various air quality applications, air purification and conditioning, carbon-monoxide warning applications, and similar.

How does it work?

SPEC Sensor™ is the technology used in amperometric gas sensors, the electrochemical sensors which generate a current proportional to the volumetric fraction of the gas. This current is converted and transformed into the voltage by the analog front-end IC (AFE), so it can be sampled by the MCU or converted with the external A/D converting circuits. The sensor used on this board is the 3SP CO 1000, a carbon monoxide (CO) gas sensor, made by SPEC sensors, which can sense CO concentration up to 1000ppm. The sensor has a very short response time, however the longer it is exposed to a particular gas, the more accurate data it can provide. This is especially true when calibration is performed. It should be noted that the sensor has a very high sensitivity to small particles of dust, condensed water, and other impurities, which might prevent gas to reach the sensor. It is advised to protect the sensor when used in critical applications. In ideal conditions, the lifetime of this sensor is indefinite, but in a real-life application, the expected operating life is over 5 years (10 years at a temperature of 23 ± 3 °C and humidity of 40 ± 10% RH).

Although very reliable and accurate, this sensor is great for building relative gas sensing applications as well. For example, it can detect an increased level of CO gas, which is very hard to detect due to being tasteless, odorless, and colorless. However, when developing applications for the absolute gas concentration, the sensor needs to be calibrated and the measurement data needs to be compensated. Factors such as the humidity and temperature can affect measurements, the sensor-reaction curve to a specific measured gas (carbon-monoxide in this case) is not completely linear, and other gases might affect the measurement (cross-sensitivity to other gases). For this reason, a range of calibration routines has to be done in the conditions of the working environment, in order to calculate the absolute gas concentration.

CO 2 click uses the LMP91000, a configurable AFE potentiostat IC for low-power chemical sensing applications, from Texas Instruments. It provides the complete sensor solution, generating the output voltage which is proportional to the sensor current. A transimpedance amplifier (TIA) with the programmable gain is used to convert the current through the sensor, covering the range from 5µA to 750 µA, depending on the sensor used. The voltage between the referent electrode (RE) and the working electrode (WE) is held as a constant, with the bias set by the variable bias circuitry. This type of sensors performs best when a fixed bias voltage is applied. The sensor manufacturer recommends -200mV fixed bias for the sensor used on this Click board™. The bias voltage and the TIA gain can be set via the I2C registers. In addition, there is an embedded thermal sensor in the AFE IC, which if needed, can be used for the result compensation. It is available via the VOUT pin, as the analog voltage value in respect to GND.

The Click board™ has two additional ICs onboard. The first one is the MCP3221, a 12-bit successive approximation register A/D converter, from Microchip. The second IC is the OPA344, a single supply, rail-to-rail operational amplifier, manufactured by Texas Instruments. It is possible to use the onboard switch, labeled as AN SEL, to select the IC to which the VOUT pin from the LMP91000 AFE is routed. If the switch is in the ADC position, the VOUT pin will be routed to the input of the MCP3221 ADC. This allows the value of the voltage at the VOUT pin to be read as a digital information via the I2C interface. When the switch is in the AN position, it will route the VOUT pin of the LMP91000 AFE IC to the input of the OPA344. The output of the OPA344 op-amp has a stable unity gain, acting as a buffer so that the voltage at the VOUT pin of the AFE can be sampled by the host MCU, via the AN pin of the mikroBUS™.

The RST pin on the mikroBUS™ is routed to the MEMB pin of the LMP91000 and it is used to enable the I2C interface section, making it possible to use more than one chip on the same I2C bus. When it is driven to the LOW logic level, the I2C communication is enabled and the master device (host MCU) can issue the START condition. The RST pin should stay at the LOW during the communication.

The CO 2 click can work both with 3.3V and 5V. An SMD jumper labeled as VCC SEL can be moved to the desired position, allowing both 3.3V and 5V MCUs to be used with this Click board™.


Applications It can be used for various air quality applications, air purification and conditioning, carbon-monoxide warning applications, and similar.
On-board modules 3SP CO 1000, a CO gas sensor, by SPEC sensors, LMP9100SD, an integrated AFE for chemical sensing applications, MCP3221, a 12-bit SAR ADC from Microchip, OPA344, an operational amplifier from Texas Instruments, MCP1501, a high precision buffered reference, from Microchip
Key Features High accuracy and repeatability of the measurements, ability to obtain measurement data in both analog and digital form, low cross-sensing for other gases, rapid response time, long lifecycle of the CO sensor
Interface Analog,I2C
Input Voltage 3.3V or 5V
Compatibility mikroBUS
Click board size L (57.15 x 25.4 mm)

Pinout diagram

This table shows how the pinout on CO 2 click corresponds to the pinout on the mikroBUS™ socket (the latter shown in the two middle columns).

NotesPinMikrobus logo.pngPinNotes
Analog OUT AN 1 AN PWM 16 NC
Reset RST 2 RST INT 15 NC
NC 3 CS RX 14 NC
NC 5 MISO SCL 12 SCL I2C Clock
Power supply 3.3V 7 3.3V 5V 10 5V Power Supply
Ground GND 8 GND GND 9 GND Ground

Onboard jumpers and settings

LD1 PWR - Power LED indicator
JP1 VCC SEL Left Power supply voltage selection
SW1 AN SEL Right Measurement type selection

Software support

We provide a library for the CO 2 click on our LibStock page, as well as a demo application (example), developed using MikroElektronika compilers. The demo can run on all the main MikroElektronika development boards.

Library Description

The library offers a choice to communicate with the CO 2 Click board by writing to the registers and by reading from the registers via the I2C interface. The library consists of functions which can read CO measured and converted data from the 12-bit AD converter. Library also can calculate CO digital value to the ppm value. For more details check the documentation.

Key functions:

  • uint8_t co2_writeReg( uint8_t register_address, uint8_t transfer_data ) - The function writes one byte to the register.
  • uint8_t co2_readReg( uint8_t register_address, uint8_t *dataOut ) - The function reads one byte from the register.
  • void co2_readADC( uint16_t *dataOut ) - The function reads converted data (CO) from the 12-bit AD converter.
  • void co2_getCOppm( float *coData ) - The function reads CO converted data and calculates this value to the ppm.

Example description

The application is composed of the three sections :

  • System Initialization - Initializes peripherals and pins.
  • Application Initialization - Initializes I2C interface and performs the device configuration for proper working.
  • Application Task - (code snippet) - Gets CO (Carbon Monoxide) data as ppm value every 300 miliseconds. The results will be logged on UART. The CO value range is from 0 to 1000 ppm.
void applicationTask()

co2_getCOppm( &coValue );

FloatToStr( coValue, text );
mikrobus_logWrite( "CO : ", _LOG_TEXT );
mikrobus_logWrite( text, _LOG_TEXT );
mikrobus_logWrite( " ppm", _LOG_LINE );

Delay_ms( 300 );

Additional Functions :

  • void cutFloat() - This function is used to round up the value to two decimal places.

The full application code, and ready to use projects can be found on our LibStock page.

Other mikroE Libraries used in the example:

  • I2C
  • Conversions
  • UART

Additional notes and information

Depending on the development board you are using, you may need USB UART click, USB UART 2 click or RS232 click to connect to your PC, for development systems with no UART to USB interface available on the board. The terminal available in all MikroElektronika compilers, or any other terminal application of your choice, can be used to read the message.


This click board is supported with mikroSDK - MikroElektronika Software Development Kit. To ensure proper operation of mikroSDK compliant click board demo applications, mikroSDK should be downloaded from the LibStock and installed for the compiler you are using.

For more information about mikroSDK, visit the official page.