# AGRINOVO-CO2-100: Digital Dissolved CO₂ Sensor

Agrinovo technical datasheet, revision 1.2 (October 2026).
PDF version: https://agrinovo.io/datasheets/sensors/AGRINOVO-CO2-100_Datasheet.pdf

## 1. Overview

The AGRINOVO-CO2-100 is a digital dissolved carbon dioxide sensor for water quality monitoring. It measures dissolved CO₂ concentration and temperature through an ion-selective electrode, with isolated power and built-in protection for stable operation in demanding environments. The corrosion-resistant PPS body and 3/4" threaded fittings make installation straightforward.

### Key Features

- CO₂: 0.2-2200 ppm (configurable to 20000)
- Temperature: -10 to 110°C
- Accuracy: ±5% FS
- Resolution: 0.01 ppm
- RS485 Modbus-RTU
- 32-bit float (IEEE-754)
- Isolated supply (2500 Vrms)
- 9-27 VDC power

### Applications

- Aquaculture (RAS, shrimp, fish)
- Water quality assessment
- Process water monitoring
- Environmental monitoring

## 2. Specifications

| Parameter | Specification |
|:----------|:--------------|
| **CO₂ Range** | 0.2-2200 ppm (configurable to 20000 ppm) |
| **Resolution** | 0.01 ppm |
| **Accuracy** | ±5% FS |
| **Temperature Range** | -10 to 110°C |
| **Temperature Accuracy** | ±0.5°C |
| **Temperature Compensation** | Automatic (NTC10K) or manual |
| **Working pH Range** | 4.8-5.2 |
| **Supply Voltage** | 9-27 VDC |
| **Power Consumption** | ≤0.5W |
| **Isolation** | 2500 Vrms |
| **Housing** | PPS, NPT 3/4" front and back thread |
| **Dimensions** | Ø30 mm, 220 mm length |

## 3. Wiring

| Color | Function | Description |
|:------|:---------|:------------|
| **Red** | V+ | Power Supply (9-27V DC) |
| **Black** | GND | Power Ground |
| **Yellow** | RS485-A | Data+ (T/R+) |
| **White** | RS485-B | Data- (T/R-) |

## 4. Communication Settings

| Parameter | Value |
|:----------|:------|
| **Protocol** | Modbus-RTU |
| **Baud Rate** | 9600 bps (default) |
| **Data Bits** | 8 |
| **Parity** | None |
| **Stop Bits** | 1 |
| **Default Address** | 0x01 |

### Data Format

- **Type**: 32-bit Single Precision Float (IEEE-754)
- **Byte Order**: Word-swapped, big-endian within each word

Each measurement spans two registers. Assemble the float from the second register (high word) followed by the first register (low word). Supported baud rates: 1200, 2400, 4800, 9600, 19200.

## 5. Register Map

### Measurement Registers (Function 0x03, float32)

| Address (Hex) | Description | Range | Unit |
|:--------------|:------------|:------|:-----|
| 0x0000-0x0001 | CO₂ Concentration | 0-20000 | ppm |
| 0x0002-0x0003 | Electrode Signal | -750 to 750 | mV |
| 0x0008-0x0009 | Temperature | -10 to 110 | °C |

### Parameter Registers (Function 0x03 read / 0x06 write)

| Address (Hex) | Description | Range / Values | Default |
|:--------------|:------------|:---------------|:--------|
| 0x0019 | Calibration Status | Bitfield (read) | - |
| 0x001C | Electrode Efficiency | 70.0-130.0% (÷10) | 100.0% |
| 0x001D | Calibrated Points | 0-5 | 0 |
| 0x001E | Device Address | 1-247 (255 = broadcast) | 1 |
| 0x001F | Baud Rate | 0:1200 1:2400 2:4800 3:9600 4:19200 | 3 (9600) |
| 0x0020 | Temp Comp Type | 0: Manual, 1: Automatic | 1 |
| 0x0021 | Temp Setpoint / Offset | -10.0 to 110.0°C (×10) | 25.0°C / 0.0°C |
| 0x0023 | Ion Valence | 0: Unset, 1: Monovalent, 2: Divalent | - |

### Information Registers (Function 0x03 read)

| Address (Hex) | Description | Notes |
|:--------------|:------------|:------|
| 0x0040 | Work Mode | 0x0010 Measure, 0x0050 Setup, 0x0060 Calibration |
| 0x0043 | Calibration Status / Operation | Read status, write standard code |
| 0x0045 | Model Number | 0x1210 |
| 0x0046 | Software Version | BCD |
| 0x0047 | Hardware Version | BCD |
| 0x0048-0x0049 | Serial Number | BCD |

## 6. Reading Data

### Read CO₂ + Electrode Signal + Temperature

Read 10 registers from 0x0000:

```
Request:  01 03 00 00 00 0A C5 CD
Response: 01 03 14 00 00 41 20 33 33 42 C8 00 00 00 00
          00 00 00 00 E3 E8 41 C7 43 0C
```

**Decoding (word-swapped float32):**

| Value | Registers | Reordered | Result |
|:------|:----------|:----------|:-------|
| CO₂ | 00 00 / 41 20 | 41 20 00 00 | **10.00 ppm** |
| Electrode Signal | 33 33 / 42 C8 | 42 C8 33 33 | **100.1 mV** |
| Temperature | E3 E8 / 41 C7 | 41 C7 E3 E8 | **25.0°C** |

## 7. Address Configuration

### Change Address (0x01 → 0x02)

Write to register 0x001E:

```
01 06 00 1E 00 02 68 0D
```

> **Note:** Communication will be lost until reconnecting with the new address.

### Broadcast Discovery

Use address 255 (0xFF) with only one device connected.

## 8. Calibration

The sensor supports up to 5 calibration points. Calibration is performed over RS485 by placing the electrode in a standard solution and writing the matching standard code to the calibration register (0x0043).

### Standard Solution Codes

| Standard | Code |
|:---------|:-----|
| 0.1 ppm | 0x0002 |
| 1 ppm | 0x0004 |
| 10 ppm | 0x0008 |
| 100 ppm | 0x0010 |
| 1000 ppm | 0x0020 |

### Calibration Procedure

1. Place the electrode in the standard solution.
2. Write the standard code to register 0x0043. Example (1 ppm point):

```
01 06 00 43 00 04 79 DD
```

3. Poll register 0x0043 to read calibration status:

| Value | Meaning |
|:------|:--------|
| 0 | Success (returned to measurement mode) |
| 1 | In progress (wait and re-read) |
| 2 | Incorrect standard solution value |
| 3 | Signal unstable or out of range after 180s |
| 4 | Sensor performance out of allowed range |

4. Repeat for additional points.

### Clear Calibration

Write 0x7FFF to register 0x0043 to clear all calibration data.

### Factory Reset

Enter setup mode, then restore defaults:

```
01 06 00 40 00 50 88 22   (enter setup mode)
01 06 00 41 7F FF B9 AE   (restore defaults and restart)
```

## 9. Installation Notes

**Placement**

- Mount via 3/4" threaded fitting
- Keep electrode tip immersed
- Maintain sample pH 4.8-5.2 for valid readings
- Avoid air bubbles and high-flow zones

**Maintenance**

- Recalibrate periodically against standards
- Keep electrode clean
- Store per electrode storage guidance

## Ordering Information

| Part number | Description |
|:------------|:------------|
| AGRINOVO-CO2-100 | Digital Dissolved CO₂ Sensor |

## Revision History

| Rev | Date | Changes |
|:----|:-----|:--------|
| 1.0 | June 2026 | Initial release |
| 1.1 | August 2026 | Layout revision |
| 1.2 | October 2026 | New layout; corrected Modbus example CRC values |

## Contact

Agrinovo, https://agrinovo.io/products, contact@agrinovo.io, +972 54 688 8148 (direct / WhatsApp).
Specifications subject to change without notice.
