All devices

Seeed Studio · Gas detector

SenseCAP CO2, Temperature and Humidity Sensor (S-CO2-03) Modbus register map

Default configuration

Protocol
RS485
Port
502
Unit ID
45
Addressing
0-based
Byte order
Big endian
Word order
High word first
Baud rate
9600
Parity
None
Data bits
8
Stop bits
1

This device has an RS-485 interface. Reach it through a Modbus RTU-to-TCP gateway, configured with the factory serial settings above.

Register map

AddressCountNameTypeUnitScaleAccess
01
CO2 concentration
0...10000 ppm, unscaled (the document's example returns 0x0AB2 = 2738 ppm).
UInt16ppm1R
11
Air temperature
Two's complement, divided by 100 (the document's example returns 0x09C4 = 2500 = 25.00 °C). Range -40.00...80.00 °C.
Int16°C0.01R
21
Air humidity
Divided by 100 (the document's example returns 0x1388 = 5000 = 50.00 %RH). Range 0...99 %RH.
UInt16%RH0.01R
71
Firmware and hardware version
High byte = hardware version number, low byte = software version number, both divided by 10 (0x0B0A = hardware 1.1, software 1.0).
Hex-1R
161
Modbus slave address
1...247, factory default 45. A restart is required after a change.
UInt16-1RW
171
Serial baud rate
0 = 1200, 1 = 2400, 2 = 4800, 3 = 9600, 4 = 19200, 5 = 38400, 6 = 57600, 7 = 115200 bps. Factory default 3 (9600 bps). A restart is required after a change.
UInt16-1RW
181
Serial parity
0 = no parity, 1 = odd, 2 = even. Factory default 0. The document adds that when parity is enabled the host must use 7 data bits and Modbus-ASCII. A restart is required after a change.
UInt16-1RW
191
Serial stop bit
0 = 1 stop bit, 1 = 2 stop bits. Factory default 0. A restart is required after a change.
UInt16-1RW
201
Modbus protocol type
0 = Modbus-RTU, 1 = Modbus-ASCII. Factory default 0. A restart is required after a change.
UInt16-1RW
211
SDI-12 address
ASCII code of the SDI-12 address character; default 0x30 ('0'). Read-only over Modbus.
UInt16-1R
321
Delayed response
0...65535 ms, factory default 10 ms. Delay before the sensor answers a host query.
UInt16ms1RW
331
CO2 sensor warm-up time
0...65535 s, factory default 120 s. Read register 0x0000 only after warm-up time + 3 s.
UInt16s1RW

Read this device live with Modbus Connect, free for Windows, macOS and Linux

Related guides

Notes

Source: Seeed Technology 'CO2, Temperature and Humidity Sensor - Datasheet', S-CO2-03, Version V2.0 (25 pages, (c)2008-2023), vendor-hosted PDF at the URL above (opened 7 Nov 2026): section 4.1 protocol, 4.2 register table, 4.3 register descriptions, 4.4 example frames, 4.5 debugging. Factory serial settings from section 4.1: 9600 bps, one start bit, 8 data bits, no parity, one stop bit; the communication registers give the same values (baud register default 3 = 9600, parity 0 = none, stop bit 0 = one) and the slave address factory default is printed as 45. Addressing: the register table prints hex addresses starting at 0x0000 and the example frames read and answer with those numbers unchanged, so they are stored zero-based. All rows use function code 0x03 for reading (the document's 'Function Number' column lists 3, 4 for the live values and 3, 6 for the configuration rows); the four communication rows (0x0010-0x0013) and the protocol type (0x0014) are write targets that need a power cycle. The register 0x0011 note that a parity setting implies 7 data bits and Modbus-ASCII is recorded in the row description because it changes the framing the gateway must use.

Related devices