DFRobot · Sensor
RS485 4-in-1 Soil Moisture, Temperature, pH & EC Sensor (SEN0604) Modbus register map
Default configuration
- Protocol
- RS485
- Port
- 502
- Unit ID
- 1
- 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 | Moisture content Soil moisture, expanded 10 times in the register (658 returned = 65.8 %RH). | UInt16 | % | 0.1 | R |
| 1 | 1 | Temperature Soil temperature, expanded 10 times; two's complement for negative values (0xFF9B returned = -10.1 °C). | Int16 | °C | 0.1 | R |
| 2 | 1 | Conductivity Electrical conductivity; the document's example returns 0x03E8 = 1000 µS/cm, i.e. no scaling. | UInt16 | µS/cm | 1 | R |
| 3 | 1 | pH value pH, expanded 10 times (0x0038 returned = 5.6 pH). | UInt16 | pH | 0.1 | R |
| 7 | 1 | Salinity Salinity real-time value. The document marks it 'for reference only' and states neither a unit nor a scaling factor, so the raw register is reported unchanged. | UInt16 | - | 1 | R |
| 8 | 1 | Total dissolved solids (TDS) TDS real-time value. The document marks it 'for reference only' and states neither a unit nor a scaling factor, so the raw register is reported unchanged. | UInt16 | - | 1 | R |
| 34 | 1 | Conductivity temperature coefficient 0...100 corresponds to 0.0...10.0 %, default 0.0 %. | UInt16 | %/°C | 0.1 | RW |
| 35 | 1 | Salinity coefficient 0...100 corresponds to 0.00...1.00, default 55 (0.55). | UInt16 | - | 0.01 | RW |
| 36 | 1 | TDS coefficient 0...100 corresponds to 0.00...1.00, default 50 (0.5). | UInt16 | - | 0.01 | RW |
| 80 | 1 | Temperature calibration value Integer expanded 10 times, i.e. 0.1 °C resolution. | Int16 | °C | 0.1 | RW |
| 81 | 1 | Water content calibration value Integer expanded 10 times, i.e. 0.1 % resolution. | Int16 | % | 0.1 | RW |
| 82 | 1 | Conductivity calibration value Integer in the conductivity unit; the document states no scaling. | UInt16 | µS/cm | 1 | RW |
| 83 | 1 | pH calibration value Integer; the document states no scaling for this register (the live pH register is expanded 10 times). | UInt16 | pH | 1 | RW |
| 2000 | 1 | Device address (slave ID) 1...254, factory default 1. | UInt16 | - | 1 | RW |
| 2001 | 1 | Device baud rate 0 = 2400, 1 = 4800, 2 = 9600 bps. Factory default 2 (9600 bps). | UInt16 | - | 1 | RW |
Read this device live with Modbus Connect, free for Windows, macOS and Linux
Related guides
Notes
Source: DFRobot Wiki page 'RS485 4-in-1 Soil Moisture, Temperature, pH & EC Sensor (SKU: SEN0604)', reference article 'SEN0604 Sensor Reference: API, Protocol & Pinout', at the vendor URL above (read 7 Nov 2026). Factory communication settings from section 1 'Basic communication parameters': RS485, 8 data bits, no parity, 1 stop bit, CRC, default baud rate 9600 bit/s; section 2 gives the factory default address 0x01. Addressing: the register table prints the hex register address (0000H) next to its PLC reference (40001), and the worked example reads function code 0x03 from register 0x0000 with a length of 4 and receives moisture, temperature, EC and pH, so the hex numbers are stored unchanged as zero-based wire addresses. Every row is read and the configuration rows are written with the same function code 0x03/0x06 pair. Scaling follows the document's own examples: moisture, temperature and pH are expanded 10 times (0.1 resolution), conductivity is unscaled in µS/cm. Salinity (0007H) and TDS (0008H) are marked 'for reference only' and have neither a unit nor a scaling factor, so they are stored raw. The conductivity temperature coefficient, salinity coefficient and TDS coefficient registers (0022H-0024H) are normalised to their engineering values from the document's own '0-100 corresponds to' statements. The four calibration registers (0050H-0053H) are included as write targets; the pH and conductivity calibration rows carry no scaling in the document.