All devices

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

AddressCountNameTypeUnitScaleAccess
01
Moisture content
Soil moisture, expanded 10 times in the register (658 returned = 65.8 %RH).
UInt16%0.1R
11
Temperature
Soil temperature, expanded 10 times; two's complement for negative values (0xFF9B returned = -10.1 °C).
Int16°C0.1R
21
Conductivity
Electrical conductivity; the document's example returns 0x03E8 = 1000 µS/cm, i.e. no scaling.
UInt16µS/cm1R
31
pH value
pH, expanded 10 times (0x0038 returned = 5.6 pH).
UInt16pH0.1R
71
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-1R
81
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-1R
341
Conductivity temperature coefficient
0...100 corresponds to 0.0...10.0 %, default 0.0 %.
UInt16%/°C0.1RW
351
Salinity coefficient
0...100 corresponds to 0.00...1.00, default 55 (0.55).
UInt16-0.01RW
361
TDS coefficient
0...100 corresponds to 0.00...1.00, default 50 (0.5).
UInt16-0.01RW
801
Temperature calibration value
Integer expanded 10 times, i.e. 0.1 °C resolution.
Int16°C0.1RW
811
Water content calibration value
Integer expanded 10 times, i.e. 0.1 % resolution.
Int16%0.1RW
821
Conductivity calibration value
Integer in the conductivity unit; the document states no scaling.
UInt16µS/cm1RW
831
pH calibration value
Integer; the document states no scaling for this register (the live pH register is expanded 10 times).
UInt16pH1RW
20001
Device address (slave ID)
1...254, factory default 1.
UInt16-1RW
20011
Device baud rate
0 = 2400, 1 = 4800, 2 = 9600 bps. Factory default 2 (9600 bps).
UInt16-1RW

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.

Related devices