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
| Address | Count | Name | Type | Unit | Scale | Access |
|---|---|---|---|---|---|---|
| 0 | 1 | CO2 concentration 0...10000 ppm, unscaled (the document's example returns 0x0AB2 = 2738 ppm). | UInt16 | ppm | 1 | R |
| 1 | 1 | 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 | °C | 0.01 | R |
| 2 | 1 | Air humidity Divided by 100 (the document's example returns 0x1388 = 5000 = 50.00 %RH). Range 0...99 %RH. | UInt16 | %RH | 0.01 | R |
| 7 | 1 | 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 | - | 1 | R |
| 16 | 1 | Modbus slave address 1...247, factory default 45. A restart is required after a change. | UInt16 | - | 1 | RW |
| 17 | 1 | 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 | - | 1 | RW |
| 18 | 1 | 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 | - | 1 | RW |
| 19 | 1 | Serial stop bit 0 = 1 stop bit, 1 = 2 stop bits. Factory default 0. A restart is required after a change. | UInt16 | - | 1 | RW |
| 20 | 1 | Modbus protocol type 0 = Modbus-RTU, 1 = Modbus-ASCII. Factory default 0. A restart is required after a change. | UInt16 | - | 1 | RW |
| 21 | 1 | SDI-12 address ASCII code of the SDI-12 address character; default 0x30 ('0'). Read-only over Modbus. | UInt16 | - | 1 | R |
| 32 | 1 | Delayed response 0...65535 ms, factory default 10 ms. Delay before the sensor answers a host query. | UInt16 | ms | 1 | RW |
| 33 | 1 | CO2 sensor warm-up time 0...65535 s, factory default 120 s. Read register 0x0000 only after warm-up time + 3 s. | UInt16 | s | 1 | RW |
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.