Interface Description Sensirion SCD30 Sensor Module CO , humidity, and temperature sensor 2 NDIR CO sensor technology 2 Integrated temperature and humidity sensor Best performance-to-price ratio Dual-channel detection for superior stability Small form factor: 35 mm x 23 mm x 7 mm Accuracy CO sensor: (30 ppm + 3%) 2 2 Fully calibrated with digital interface UART or I C Contents 1 Digital interface description 1.1 I2C Protocol 1.2 Modbus protocol 1.3 PWM protocol 1.4 Sensor commands 1.5 Signal conversion to physical values 2 Important Notices 2.1 Warning, Personal Injury 2.2 ESD Precautions 2.3 Warranty 3 Headquarters and Subsidiaries www.sensirion.com Version 1.0 D1 May 2020 1/21 1 Digital interface description The SCD30 digital interface is compatible with the I2C protocol and the Modbus protocol. For selecting Modbus protocol, the SEL pin needs to be pulled to VDD Voltage during power-up of the SCD30 sensor module. It is not possible to switch the communication protocol during operation. Please refer to datasheet. 1.1 I2C Protocol Maximal I2C speed is 100 kHz and the master has to support clock stretching. Sensirion recommends to operate the SCD30 at a baud rate of 50 kHz or smaller. Clock stretching period in write- and read-frames is 30 ms, however, due to internal calibration processes a maximal clock stretching of 150 ms may occur once per day. For detailed information to the I2C protocol, refer to 1 NXP I2C-bus specification . SCD30 does not support repeated start condition. Clock stretching is necessary to start the microcontroller and might occur before every ACK. I2C master clock stretching needs to be implemented according to the NXP specification. The boot-up time is < 2 s. 1.1.1 I2C Address After power-up of the sensor, the I2C address of the module is set to the address 0x61. 1.1.2 I2C Sequence The commands issued by the I2C master are 16 bit with an optional parameter. Data sent to the master is protected by a CRC. This also applies to data arguments sent to the sensor, please see chapter 1.1.3 for CRC checksum calculation. 2 byte data sent from or received by the sensor is always succeeded with an 8 bit CRC. Examples are shown below. I2C write 16bit command without arguments Clock P S I2CAddress W Cmd MSB Cmd LSB Stretching Example: Stop measurements 0x0104 START 0xC2 0x01 0x04 STOP (Red: Write Header Blue: Read Header Black: Data Green: CRC Start Condition: START Stop Condition: STOP) 1