- Downloading Repository
- Download Zip
- Clone with GitHub Desktop
- Clone with Windows Git Bash Terminal
- Clone with Mac or Linux Terminal
- CM-200 Sensor Development Board
- CM-200 Compatible Sensors
- Getting to know your CM-200 Sensor Development Kit
- Using CM-200 with GasLab
To download and use the repository and code, you can either download the zip or clone the repository. Below are the steps for each.
3. Extract the Zip file. The files can be extraced anywhere on a local PC including Downloads, Documents, or Desktop.
There are multiple ways to clone this repository. This README will cover the most popular.
1. Download and Install GitHub Desktop
1. Download and install Git Bash for Windows
git clone --recursive https://github.com/co2meter-org/ExampleCode.git
git clone --recursive https://github.com/co2meter-org/ExampleCode.git
The CM-200 Sensor Development Board is a kit developed by CO2Meter to help customers, hobbyists, and students to go from concept to product as quickly as possible. We've provided a PCB that can interface with our free GasLab or any terminal application to evaluate sensors and view the communication protocols. Using the CM-200 as an Arduino Shield and the example code provided in this repository can rapidly get a prototype running for interfacing our most popular sensors with Arduino Uno and Arduino Mega. Also available, use the CM-200 as a Raspberry Pi Hat to prototype using the Raspberry Pi ecosystem. Finally, users can also develop production ready code with the onboard STM32WB55, with available BLE, USB, User LEDs, User Buttons, and multiple communication protocols.
- 030-8-0006 K30 10,000ppm CO2 Sensor
- 030-7-0007 K30 10% CO2 Sensor
- 030-8-0011 K30 Extended Range
- 030-8-0016 K30 1% CO2 Sensor
- 030-8-0010 K30 FR Fast Response 10,000ppm CO2 Sensor
- 006-0-0008 Senseair Sunrise HVAC CO2 Sensor
- 006-0-0007 Senseair Sunrise CO2 Sensor
- 009-4-0001 Senseair Sunlight Refrigerant R32 Sensor
- 004-0-0013 S8 Miniature 10,000ppm CO2 Sensor
- 004-0-0071 S8 Miniature 5% CO2 Sensor
- 004-0-0010 Senseair Commercial CO2 Sensor
- 004-0-0017 S8 Alarm 5% CO2 Sensor
- 004-0-0050 Senseair S8 2% CO2 Sensor
- SprintIR®-6S 5% CO2 Sensor
- SprintIR®-6S 20% CO2 Sensor
- SprintIR®-6S 100% CO2 Sensor
- SprintIR®-R 5% CO2 Sensor
- SPRINTIR®-R 20% CO2 Sensor
- SprintIR®-R 100% CO2 Sensor
- ExplorIR®-M 5% CO2 Sensor
- ExplorIR®-M 20% CO2 Sensor
- ExplorIR®-M 100% CO2 Sensor
If marked with a * request no pins. May need to purchase longer pin headers
- *CM1106H-NS NDIR CO2 Sensor
- *CM1106SL-N Super Low Power NDIR CO2 Sensor
- *CM1107N NDIR Dual Channel CO2 Sensor
- *CM1107H 5% CO2 Dual Channel NDIR CO2 Sensor
- *CM1109 Dual IR Source NDIR CO2 Sensor
The top of the CM-200 will have the electonics running the development kit, including the microcontroller and headers for Arduino and Raspberry Pi.
To attach an Arduino Uno or Arduino Mega, set the CM-200 onto the headers of the Arduino. The Arduino can power the CM-200, or the Arduino can be powered by the USB Type-C connector. To run the example code for a specific sensor, download or clone this repository, download and install Arduino IDE, navigate to the sensor Arduino code, double click the .ino file and click Upload.
Soldering a female socket to a Raspberry Pi Zero will fit directly onto the CM-200. If using a full Raspberry Pi Single Board Computer, such as a Raspberry Pi 4, a direct connection can be done with a cable assembly such as this. The Raspberry Pi can power the CM-200, or the Raspberry Pi can be powered by the USB Type C connector on the CM-200. To run the example code, download or clone this repository onto the Raspberry Pi, navigate to the sensor Raspberry Pi python code, and double click.
USB Type-C connector will provide 5V to the board while also appear on a PC as virtual COM port for communication through any terminal application such as RealTerm or CoolTerm. You can also download our Free GasLab software for Windows to evaluate, configure, and calibrate, as well as read the communication between Host and Sensor to help with development of communications with the sensors.
Turn on and off the CM-200 and any other devices powered by the CM-200.
Provides a 3.3V local power supply for the CM-200 to power the microcontroller. Also has an LED indicator to show that power is on.
Microcontroller running the CM-200 for USB V-COM and BLE communication. Programmable for more production ready code. There is a starting point for the USB V-COM already available in this Git Repository.
To reset the STM32WB55 (V-COM port)
By default, the CM-200 is not advertising over BLE for connection. To make a BLE connection, press and hold the BLE Enable Button until the Blue User LED lights up. The Green User LED will light up when a connection is made.
Also can be used and programmable when developing code for the STM32WB
User controllable LEDs from Arduino or Raspberry Pi. Also used as indicators for BLE in default mode.
User programmable button that is controllable from Arduino or Raspberry Pi.
Certain sensors share pins with UART and I2C busses. To communicate with those sensors over UART, move the switch to the right. To communicate with those sensors over I2C, move the switch to the left.
UART can only be used from a single source. To use UART with STM32WB over Bluetooth or USB, slide the switch to the left over USB BLE. If doing any development with Arduino or Raspberry Pi, slide the switch to the right over ARD RPI.
Some sensors have pin configurations to switch between I2C and UART, or to hold the Sensor in Enabled mode or be user controlled. Those can be changed by making cuts or solder bridges on the pads. There are also by default I2C Pull Up resistors, whic if using external I2C development kits that already have I2C Pull Ups, then a cut can be made to remove the Pull Ups.
The bottom of the CM-200 has sockets and pogo pins for the sensors, mounting hardware, and programming pins for the STM32WB
Pogo pins to provide 5V as well as RX and TX for UART Communication to a Sensair K30 (030-8-0006). WHen sensor is aligned and mounted to the mounting spacers, all of the pogo pins wills make necessary contact with the K30.
Pogo pins for I2C Communication with a Sensair K30 (030-8-0006). No power is provided. There are 4.7k pull up resistors available by default that can be removed by cutting the pads on the sensor configuration jumpers.
Mounting spacers for the Sensair K30 (030-8-0006). Use M2.5 screws on both sides of the sensor and ensure good contact is made to the pogo pins. Do not overtighten!
Pin sockets for Senseair Sunrise 006-0-0008 formerly known as SE-11 or SE-12. Use included Press-Fit male header pins to mount the sensor to the sockets.
Pin sockets for Senseair S8 004-0-0013. Use included Press-Fit male header pins to mount the sensor to the sockets.
Pin sockets for inserting an SST LOX-O2 UV Flux.
Pin sockets for inserting a GSS MinIR or SprintIR CO2 Sensor.
Pin sockets for inserting a GSS LP or LP2 Sensor.
Designed for use with TC2030-CTX-NL-STDC14 and STLINK-V3MINIE.
Quick Steps to evaluate sensors with the CM-200 Sensor Development Kit and a compatible Windows PC
1. Download and Install the GasLab Software
If no COM Port appears, go to the troubleshooting section
See the manual for additional options or to begin data logging
Follow this link from FTDI: https://www.ftdichip.com/Support/Documents/AppNotes/AN_119_FTDI_Drivers_Installation_Guide_for_Windows7.pdf to ensure proper installation
Follow this link from FTDI: https://www.ftdichip.com/Support/Documents/InstallGuides/AN_396%20FTDI%20Drivers%20Installation%20Guide%20for%20Windows%2010.pdf to ensure proper installation










