SenseAir · Sensor
S8 / S8 LP CO2 sensor module Modbus register map
Default configuration
- Protocol
- RS485
- Port
- 502
- Unit ID
- 254
- 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 | Meter status Bit 1 fatal error, bit 2 offset regulation error, bit 3 algorithm error, bit 4 output error, bit 5 self diagnostics, bit 6 out of range, bit 7 memory error. | Binary | - | 1 | R |
| 1 | 1 | Alarm status All bits reserved on the S8. | Binary | - | 1 | R |
| 2 | 1 | Output status Bit 1 alarm output status (inverted, open collector), bit 2 PWM output status (1 = full output). | Binary | - | 1 | R |
| 3 | 1 | CO2 concentration Filtered CO2 value. Some S8 variants divide the reading by 10. | UInt16 | ppm | 1 | R |
| 21 | 1 | PWM output 2 | UInt16 | - | 1 | R |
| 25 | 1 | Sensor type ID, high Sensor type ID is 3 bytes: low byte of 25 plus 26. | UInt16 | - | 1 | R |
| 26 | 1 | Sensor type ID, low | UInt16 | - | 1 | R |
| 27 | 1 | Memory map version | UInt16 | - | 1 | R |
| 28 | 1 | Firmware version High byte main revision, low byte sub revision. | UInt16 | - | 1 | R |
| 29 | 1 | Sensor ID, high Sensor ID is the 4-byte serial number in 29 and 30. | UInt16 | - | 1 | R |
| 30 | 1 | Sensor ID, low | UInt16 | - | 1 | R |
Notes
RS-485/CMOS serial sensor: reach it through a Modbus RTU-to-TCP gateway using the factory serial settings above (9600 bps, 8 data bits, no parity; the sensor transmits two stop bits and accepts one or two). Source: SenseAir 'Modbus on SenseAir S8', document TDE2067 rev. 4 (2020-04-21), tables 3 and 4 and appendix A. The document states that the register address is the register number minus one, so addresses here are zero based. unit_id 254 is the 'any sensor' address that every example frame in TDE2067 uses; it is not a factory value. The sensor's individual slave address is stored in its EEPROM and can be set to 1-247, so change unit_id to the address your sensor is configured with. Only 6 registers can be read in one request.