SX-HEC20

SIGNUX HEC20

Soil moisture, conductivity and temperature probe

Direct-insertion probe that measures volumetric moisture, electrical conductivity and soil temperature. Plastic body sealed in epoxy resin with stainless steel rods, made to stay buried.

The sensor can be calibrated for different soil types, whether in research, irrigation, greenhouses, smart agriculture, among other fields.

Measures
Moisture · Conductivity · Temperature
Output
4-20 mAVoltage
Protection
IP68
Operating
-40 to +85 °C
HEC20 probe on a white background: white rectangular body with cable and three steel rods

What sets it apart

Three parameters at a single point

Moisture, conductivity, and temperature measured in the same soil volume—without the need for three separate installations or boreholes.

Waterproof, IP68

Sealed in epoxy resin with stainless steel rods. Bury it and forget it: it needs no manhole or watertight box.

Low sensitivity to salinity

The moisture reading holds up in saline soils, where ordinary capacitive probes drift.

Multiple integration options

RS485 with Modbus RTU, or analogue output as 0-2 V voltage or 4-20 mA current. No intermediate platform.

Protected against installation mistakes

Reverse-polarity protection and built-in TVS/ESD suppressors, which is what fails in the field.

Calibratable for your soil

Supports soil-specific calibration when the texture strays from the factory default.

Configurations

Cable lengthConnector / outputPart number
2 mPigtailSX-HEC20-2M-PT
2 mM10 connectorSX-HEC20-2M-M10
4 mPigtailSX-HEC20-4M-PT
4 mM10 connectorSX-HEC20-4M-M10

Specifications

General

Measured quantities
Moisture · Conductivity · Temperature
Family
Direct-insertion probe
Output
RS485 · 4-20 mA · Voltage
Rods
3 pcs

Temperature

Range
-40 to +80 °C
Resolution
0,1 °C
Accuracy
±0,5 °C

Soil moisture

Measuring principle
FDRFrequency-domain reflectometry
Range L
0-50 / 0-100 %Depending on the ordered configuration
Resolution
0,03 %In the 0-50 % section
Range H
0-100 %Depending on the ordered configuration
Resolution
±2 %In the 0-100 % section
Accuracy
1 %In the 0-50 % section
±3 %In the 50-100 % section

Electrical conductivity EC

Measuring principle
AC excitation
Range
0-5000 / 0-10000 / 0-20000 µS/cmDepending on the ordered configuration
Resolution
10 µS/cmUp to 10,000 µS/cm
50 µS/cmFrom 10,000 to 20,000 µS/cm
Accuracy
±3 %Up to 10,000 µS/cm
±5 %From 10,000 to 20,000 µS/cm
Temperature compensation
0-50 °C

Output and power

Output interface
RS485 Modbus RTU / 0-2 V / 4-20 mADepending on the ordered configuration
Power supply
3,9-30 VDCRS485 or voltage output
Power supply
12-30 VDCRequired with 4-20 mA output
Consumption
6 mAAt 12 V DC, RS485 or voltage output
Consumption
10 mAAt 12 V DC, 4-20 mA output
Protocol
Modbus RTUFunctions 3, 4, 6 and 16
Factory defaults
9600 8N1, address 1Recoverable via the SET wire if lost

Construction

Protection rating
IP68
Operating temperature
-40 to +85 °C
Rods
Stainless steel
Sealing
Epoxy resin
Installation
Surface or buried
Cable length
2 mOther lengths on request
Dimensions
88 × 26 × 71 mm18 mm tall body and 53 mm rods, per the dimensioned drawing

Manual

1Introduction

The SX-HEC20 measures soil moisture content, electrical conductivity (EC) and temperature. It has a resin-sealed plastic body and sensing rods that can be inserted directly into the soil, offering long-term stability. The soil moisture output signal can be RS485, analogue voltage or analogue current. It can also be calibrated for specific soil types.

The sensor is suitable for scientific research, irrigation, greenhouses, smart agriculture, among other applications.

  • Integrated soil moisture, electrical conductivity (EC) and temperature measurements
  • Output interface: RS485, voltage and current
  • Low sensitivity to salinity
  • Minimal soil disturbance
  • IP68 protection rating (waterproof); suitable for direct burial in soil
  • High accuracy and excellent stability
  • Reverse-polarity protection and built-in TVS/ESD protection

Specifications

Output InterfaceAnalog VoltageAnalog Current 4-20mARS485 Modbus
Power Supply3.9-30 VDC12-30 VDC3.9-30 VDC
Consumption6mA@12 VDC10mA@12 VDC6mA@12 VDC
Soil Moisture MeasurementRange:0-50%,0-100% Resolution:0-50%:0.03%,50-100%:1% Accuracy:0-50%:2%,50-100%:3%
EC MeasurementRange: 0-5000us/cm, 10000us/cm, 20000us/cm Resolution: 0-10000us/cm, 10us/cm; 10000-20000us/cm, Accuracy: 0-10000us/cm, ±3%; 10000-20000us/cm, ±5% 50us/cm EC temperature compensation: 0-50°C
Temperature MeasurementRange: -40~80°C Resolution:0.1°C Accuracy:±0.5°C
Measurement TechniqueMoisture by FDR and EC by AC excitation
IP RatingsIP68
Operating Temperature-40~85°C
Sensor RodStainless steel
Sensor SealedEpoxy resin
InstallationSurface or buried installation
Cable Length2 meters or Customize
Dimension88*26*71mm
Figure from the manufacturer's manual, page 1

2Wiring diagram

TypeWiring diagram
Analog Voltage OutputRed (V+): Power Supply + Black (G): Power Supply - Blue (O1): Analog Output (Can be set to VWC, EC, Temperature in factory) Brown (O2): Analog Output (Can be set to VWC, EC, Temperature in factory)
Figure from the manufacturer's manual, page 5
Analog Current OutputRed (V+): Power Supply + Black (G): Power Supply - Blue (O1): Analog Output (Can be set to VWC, EC, Temperature in factory) Brown (O2): Analog Output (Can be set to VWC, EC, Temperature in factory)
Figure from the manufacturer's manual, page 5
RS485 ModbusRed (V+): Power Supply + Black (G): Power Supply - Yellow (T+): RS485+/A/T+ White (T-): RS485-/B/T- Green (SET):
SETTING mode. When sensor power-up with the SET wire connected toPowerSupply +, then sensor using setting mode communication parameters for RS485. When sensor power-up with the SET wire connected to Power Supply–or unconnected , the sensor using communication parameters in register for RS485. Please refer to the usage below.
Figure from the manufacturer's manual, page 6
ALL RS485 communication parameters (Modbus Slave Address, baudrate, parity, databits, stopbits) are set in internal register and can be saved when power down, the factory setting is ADDRESS=1, BAUDRATE=9600bps,PARITY=NONE, DATABITS=8bits, STOPBITS=1bit; Sometimes you may FORGET the communication settings, In this case, you can connect the GREEN & RED wire together to PowerSupply+, black wire to PowerSupply-, then re-power up the sensor, then the sensor start-up with a fixed communication settings(we call it setting mode) ADDRESS=0, BAUDRATE=9600bps,PARITY=NONE, DATABITS=8bits, STOPBITS=1bit; Communicate with the sensor using this parameters and then set your desired communication parameters, then disconnect the green wire from PowerSupply+, then re-power up the sensor, and the sensor will communicate with your settings.

3Dimensions and ordering information

3.1Dimensions

Figure from the manufacturer's manual, page 7

3.2Ordering Information

ParametersCodeComments
Code 1: Product SeriesSX-HEC20Soil Moisture, EC, Temperature Sensor
Code 2: Measuring_ParametersA B CSoil Moisture, EC, Temperature (Supported Output Interface: RS485) Soil Moisture, EC (Supported Output Interface: RS485 and Analog Voltage, Analog Current) EC, Temperature (Supported Output Interface: RS485 and Analog Voltage, Analog Current)
Code 3: Moisture RangeA B0-50% 0-100%
Code 4: EC RangeA B C0-5000us/cm 0-10000us/cm 0-20000us/cm
Code 5: Power SupplyA B D3.9-30 VDC (not applicable for 4-20mA output) 12-30 VDC (applicable for 4-20mA output) Customize
Code 6: Output InterfaceA B C D EAnalog Voltage 0-2V Analog Current 4-20mA (Power Supply >12 VDC) RS485,Modbus-RTU RS485,Modbus-RTU & Analog Voltage 0-2V RS485,Modbus-RTU & Analog Current 4-20mA (Power Supply >12 VDC)
Code 7: Cable Length002 XXX2 meters XXX is required cable length(Unit: meter)
Ordering Code Example: SX-HEC20 - A B C A C 002
Product Series: SX-HEC20 Soil Moisture, EC, Temperature Sensor;
Measuring Parameters: Soil Moisture, EC, Temperature;
Moisture Range: 0-100%;
EC Range: 0-20000us/cm;
Power Supply: 3.9-30 VDC;
Output Interface: RS485, Modbus-RTU;
Cable Length: 2 meters;

4Safety, care and installation

4.1Safety and care

  • The rods of the Sensor are sharp for ease insertion. Care must be taken and handling precautions followed.
  • Avoid touching the rods or exposing them to other sources of static damage, particularly when powered up.
  • Do not pull the sensor out of the soil by its cable.
  • If you feel any resistance when inserting the sensor into soil, it is likely you have encountered a stone. Stop pushing and re-insert at a new location.

4.2Installation

  • Surface installation Clear away any stones. Pre-form holes in very hard soils before insertion.
  • Push the sensor into the soil until the rods are fully inserted. Ensure good soil contact.
  • If you feel strong resistance when inserting the sensor, you have probably hit a stone. Stop, and re-insert at a new location.
  • Note: The sensor is suitable for soil surface temperature measurements.
  • Installing at depth
  • Make a 45mm diameter hole, preferably at about 10° to the vertical using a auger.
  • Push the sensor into the soil until rods are fully inserted. Ensure good soil contact.
  • Fill and repack the hole with soil.
  • Alternatively
  • Dig a trench, and install horizontally.

5Output signal conversion

Output InterfaceParameters RangeConversion Formula
Analog Voltage Output 0-2VTemperature: -40-80°CTEMP=60.0* VOLTAGE-40. When VOLTAGE=1.0V,then TEMP=60.0* 1.0-40=20.00°C
VWC: 0-50%VWC=25*VOLTAGE. When VOLTAGE=0.3V,then VWC=25*0.3=7.5%
VWC: 0-100%VWC =50* VOLTAGE. When VOLTAGE=0.3V,then VWC =50*0.3=15%
EC: 0-5000us/cmEC=2500*VOLTAGE. When VOLTAGE=0.3V,then EC=2500*0.3=750us/cm.
EC: 0-10000us/cmEC =5000* VOLTAGE. When VOLTAGE=0.3V,then EC=5000*0.3=1500us/cm
EC: 0-20000us/cmEC =10000* VOLTAGE. When VOLTAGE=0.3V,then EC=10000*0.3=3000us/cm.
Analog Current Output 4-20mATemperature: -40-80°CTEMP=7.5*CURRENT-70. When CURRENT=10mA, then TEMP=7.5*10-70=5.00°C.
VWC: 0-50%VWC= 3.125 *( CURRENT -4). When CURRENT=6.4mA, then VWC= 3.125*(6.4-4)=7.50%
VWC: 0-100%VWC = 6.25 *( CURRENT -4). When CURRENT=6.4mA, then VWC=6.25*(6.4-4)=15%
EC: 0-5000us/cmEC = 312.50 *( CURRENT -4). When CURRENT=6.4mA, then EC= 312.50*(6.4-4)=750us/cm
EC: 0-10000us/cmEC = 625 *( CURRENT -4). When CURRENT=6.4mA, then EC=625*(6.4-4)=1500us/cm
EC: 0-20000us/cmEC = 1250 *( CURRENT -4). When CURRENT=6.4mA, then EC=1250*(6.4-4)=3000us/cm
RS485 Modbus-RTUTemperature: -40-80°CTEMP=(REGISTER VALUE)/100. When REGISTERVALUE=2013, then TEMP= 2013/100=20.13°C.
VWC for all rangesVWC=(REGISTER VALUE)/100. When REGISTERVALUE=2013, then VWC= 2013/100=20.13%.
EC for all rangesEC=(REGISTER VALUE). When REGISTERVALUE=1568, then EC= 1568us/cm.
CustomizeContact support for customized sensor interface

NOTE: The unit of VOLTAGE is (V), The unit of CURRENT is (mA).

NOTE: VWC is Volumetric Water Content, EC is Electrical Conductivity.

6RS485 Modbus protocol

6.1Modbus protocol

  • Modbus Protocol is widely used to establish master-slave communication between intelligent devices or sensors. A MODBUS message sent from a master to a slave contains the address of the slave, the function code (e.g. 'read register’ or 'write register’), the data, and a check sum (LRC or CRC).
  • The sensor is RS485 interface with Modbus protocol. The default serial communication settings is slave address 1, modbus rtu, 9600bps, 8 databits and 1 stop bit. All communication settings can be changed with modbus command, and take effective after re-power up the sensor.
  • Following modbus function code are supported by sensor.
  • Modbus Function Code 0x03 : used for reading holding register.
  • Modbus Function Code 0x04 : used for reading input register.
  • Modbus Function Code 0x06 : used for writing single holding register.
  • Modbus Function Code 0x10: used for writing multiple holding register.

6.2Modbus registers

ParametersRegister Addr. (HEX/DEC)Data TypeModbus Function Code(DEC)Range and CommentsDefault Value
TEMPERATURE0x0000/0INT16 RO3/4-4000-8000 for -40.00~80.00°CN/A
VWC-Volumetric Water Content0x0001/1UINT16 RO3/40-10000 for 0-100%N/A
EC-Electrical Conductivity0x0002/2UINT16 RO3/40-20000 for 0-20000us/cmN/A
SALINITY0x0003/3UINT16 RO3/40-20000 for 0-20000mg/LN/A
TDS0x0004/4UINT16 RO3/40-20000 for 0-20000mg/LN/A
EPSILON0x0005/5UINT16 RO3/40-30000 for 0.00-300.00N/A
RESERVED0x0006/6UINT16 RO3/4N/A0
VWC_RAWAD0x0007/7UINT16 RO3/40-4096 for 0-4096N/A
RESERVED0x0008/8UINT16 RO3/4N/A0
POREEC0x0009/9UINT16 RO3/40-32000 for 0-32000us/cmN/A
SOILTYPE0x0020/32UINT16 R/W3/6/160-5 0:Mineral 1:Sand 2:Clay 3:Organic 4:User Defined Curve 5:Soilless(Rockwool, etc)0:Mineral
TEMPUNIT0x0021/33UINT16 R/W3/6/160:°C 1:°F0
ECTEMPCOFF0x0022/34UINT16 R/W3/6/160-100 for 0.0%-10.0%20(2%)
SALINITYCOFF0x0023/35UINT16 R/W3/6/160-100 for 0.00-1.0055(0.55)
TDSCOFF0x0024/36UINT16 R/W3/6/160-100 for 0.00-1.0050(0.5)
MEASURE METHOD0x0025/37UINT16 R/W3/6/160: Continuous Meas. 1: Request Meas.1
EPSILON OFFSET0x0026/38UINT16 R/W3/6/16Epsilon Value when Substrate VWC is 0% 0-200 for 0-20.0058(5.8)
SLAVEADDRESS0x0200/512UINT16 R/W3/6/160-2551
BAUDRATE0x0201/513UINT16 R/W3/6/160-6 0:1200bps 1:2400bps 2:4800bps 3:9600bps 4:19200bps 5:38400bps3:9600bps
PROTOCOL0x0202/514UINT16 R/W3/6/160-1 0:Modbus RTU 1:Modbus ASCii0:Modbus RTU
PARITY0x0203/515UINT16 R/W3/6/160-2 0:None 1:Even 2:Odd0:None Parity
DATABITS0x0204/516UINT16 R/W3/6/161 1:8 databits1:8 databits
STOPBITS0x0205/517UINT16 R/W3/6/160-1 0:1 stopbit 1:2 stopbits0:1 stopbit
RESPONSE DELAY0x0206/518UINT16 R/W3/6/160-255 for 0-2550 milliseconds0
ACTIVEOUTPUT INTERVAL0x0207/519UINT16 R/W3/6/160-255 for 0-255 seconds0

4-byte floating point WITH THE LOW WORD FIRST (CDAB order). The manufacturer calls these «FLOAT», but measured on a real unit they are NOT standard IEEE 754: for that, use the 0x1100 block below.

ParametersRegister Addr. (HEX/DEC)Data TypeModbus Function Code(DEC)Range and CommentsDefault Value
TEMPERATURE FLOAT0x1000/4096FLOAT RO3/4-40.00-80.00 (°C)N/A
VWC_FLOAT0x1002/4098FLOAT RO3/40.00-100.00 (%)N/A
EC_FLOAT0x1004/4100FLOAT RO3/40-20000 (us/cm)N/A
SALINITY FLOAT0x1006/4102FLOAT RO3/40-20000(mg/L)N/A
TDS_FLOAT0x1008/4104FLOAT RO3/40-20000(mg/L)N/A
EPSILON FLOAT0x100A/4106FLOAT RO3/40.00-300.00N/A
RESERVED FLOAT0x100C/4108FLOAT RO3/4RESERVED0
VWC_RAWAD FLOAT0x100E/4110FLOAT RO3/40.00-4096.00N/A
RESERVED FLOAT0x1010/4112FLOAT RO3/4RESERVED0
POREEC FLOAT0x1012/4114FLOAT RO3/40-32000 (us/cm)N/A
RESERVED FLOAT0x1014/4116FLOAT RO3/4RESERVED0
RESERVED FLOAT0x1016/4118FLOAT RO3/4RESERVED0
RESERVED FLOAT0x1018/4120FLOAT RO3/4RESERVED0
RESERVED FLOAT0x101A/4122FLOAT RO3/4RESERVED0
RESERVED FLOAT0x101C/4124FLOAT RO3/4RESERVED0
RESERVED FLOAT0x101E/4126FLOAT RO3/4RESERVED0

4-byte floating point in STANDARD IEEE 754 (ABCD order). The manufacturer calls these «FLOAT INVERSE», but these are the ones a PLC or a gateway expects. Measured on a real unit.

ParametersRegister Addr. (HEX/DEC)Data TypeModbus Function Code(DEC)Range and CommentsDefault Value
TEMPERATURE FLOAT_INVERSE0x1100/4352FLOAT_INVERSE RO3/4-40.00-80.00 (°C)N/A
VWC_FLOAT_INVERSE0x1102/4354FLOAT_INVERSE RO3/40.00-100.00 (%)N/A
EC_FLOAT_INVERSE0x1104/4356FLOAT_INVERSE RO3/40-20000 (us/cm)N/A
SALINITY FLOAT_INVERSE0x1106/4358FLOAT_INVERSE RO3/40-20000(mg/L)N/A
TDS_FLOAT_INVERSE0x1108/4360FLOAT_INVERSE RO3/40-20000(mg/L)N/A
EPSILON FLOAT_INVERSE0x110A/4362FLOAT_INVERSE RO3/40.00-300.00N/A
RESERVED FLOAT_INVERSE0x110C/4364FLOAT_INVERSE RO3/4RESERVED0
VWC_RAWAD FLOAT_INVERSE0x110E/4366FLOAT_INVERSE RO3/40.00-4096.00N/A
RESERVED FLOAT_INVERSE0x1110/4368FLOAT_INVERSE RO3/4RESERVED0
POREEC FLOAT_INVERSE0x1112/4370FLOAT_INVERSE RO3/40-32000 (us/cm)N/A
RESERVED FLOAT_INVERSE0x1114/4372FLOAT_INVERSE RO3/4RESERVED0
RESERVED FLOAT_INVERSE0x1116/4374FLOAT_INVERSE RO3/4RESERVED0
RESERVED FLOAT_INVERSE0x1118/4376FLOAT_INVERSE RO3/4RESERVED0
RESERVED FLOAT_INVERSE0x111A/4378FLOAT_INVERSE RO3/4RESERVED0
RESERVED FLOAT_INVERSE0x111C/4380FLOAT_INVERSE RO3/4RESERVED0
RESERVED FLOAT_INVERSE0x111E/4382FLOAT_INVERSE RO3/4RESERVED0

The following registers' value are the same with register 0x0000-0x0009, just the re-order of those register.

ParametersRegister Addr. (HEX/DEC)Data TypeModbus Function Code(DEC)Range and CommentsDefault Value
TEMPRATURE0x1200/4608INT16 RO3/4-4000-8000 for -40.00~80.00°CN/A
VWC0x1201/4609UINT16 RO3/40-10000 for 0-100%N/A
EC0x1202/4610UINT16 RO3/40-20000 for 0-20000us/cmN/A
POREEC0x1203/4611UINT16 RO3/40-32000 for 0-32000us/cmN/A
EPSILON0x1204/4612UINT16 RO3/40-30000 for 0.00~300.00N/A
SALINITY0x1205/4613UINT16 RO3/40-20000 for 0-20000mg/LN/A
TDS0x1206/4614UINT16 RO3/40-20000 for 0-20000mg/LN/A
RESERVED0x1207/4615UINT16 RO3/4N/A0
VWC_RAWAD0x1208/4616UINT16 RO3/40-4096 for 0-4096N/A
RESERVED0x1209/4617UINT16 RO3/4N/A0
  • UINT16:16 bit unsigned integer
  • INT16:16bit signed integer
  • RO: Register is Read Only
  • R/W: Register is Read/Write
  • HEX: Hexadecimal (data with 0x/0X prefix)
  • DEC: Decimal
  • FLOAT: If IEEE754 little-endian byte order is [A,B,C,D], the FLOAT format is [B,A,D,C]
  • FLOAT_INVERSE: If IEEE754 little-endian byte order is [A,B,C,D], the FLOAT_INVERSE format is [D,C,B,A]

6.3Detailed description of Modbus registers

TEMPERATURE — Temperature Value
Data Range-4000-8000 For -40.00~80.00(°C)Default: N/A
Parameter StorageN/A
  • Note: Temperature value (Binary complement).
  • Example: When REGISTER = 0x0702 (HEX format), then
  • VALUE=(0x07*256+0x02)/100=17.94°C. When REGISTER=FF05H (HEX format), then
  • VALUE=((0xFF*256+0x05)-0xFFFF-0x01)/100 =(0xFF05-0xFFFF-0x01)/100=-2.51°C.
TEMPERATURE_FLOAT — Temperature Value, FLOAT Format TEMPERATURE_FLOAT_INVERSE — Temperature Value, FLOAT_INVERSE Format
Data Range-40.00-80.00Default: N/A
Parameter StorageN/A
VWC — Volmetric Water Content
Data Range0-10000 For 0-100%Default: N/A
Parameter StorageN/A
  • Note: Volmetric Water Content value.
  • Example: When REGISTER = 0x0702 (HEX format), then VALUE=(0x07*256+0x02)/100=17.94%
VWC_FLOAT — Volmetric Water Content, FLOAT Format VWC_FLOAT_INVERSE — Volmetric Water Content, FLOAT_INVERSE Format
Data Range0.00-100.00 (%)Default: N/A
Parameter StorageN/A
  • Note: Volmetric Water Content value.
EC — Electrical Conductivity
Data Range0-20000 For 0-20000 (us/cm)Default: N/A
Parameter StorageN/A
  • Note: Electrical Conductivity.
  • Example: When REGISTER = 0x0702 (HEX format), then VALUE=(0x07*256+0x02)=1794us/cm
EC_FLOAT — Electrical Conductivity, FLOAT Format EC_FLOAT_INVERSE — Electrical Conductivity, FLOAT_INVERSE Format
Data Range0-20000 (us/cm)Default: N/A
Parameter StorageN/A
  • Note: Electrical Conductivity.
SALINITY — Salinity
Data Range0-20000 For 0-20000 (mg/L)Default: N/A
Parameter StorageN/A
  • Note: Salinity
  • Example: When REGISTER = 0x0702 (HEX format), then VALUE=(0x07*256+0x02)=1794mg/L.
  • Salinity is derived by EC, SALINITY=EC*SALINITYCOFF, in which SALINITYCOFF is a coefficient, please refer to SALINITYCOFF.
SALINITY_FLOAT — Salinity, FLOAT Format SALINITY_FLOAT_INVERSE — Salinity, FLOAT_INVERSE Format
Data Range0-20000 (mg/L)Default: N/A
Parameter StorageN/A
  • Note: Salinity
TDS — Total Dissolved Solid
Data Range0-20000 For 0-20000 (mg/L)Default: N/A
Parameter StorageN/A
  • Note: Total Dissolved Solid
  • Example: When REGISTER = 0x0702 (HEX format), then VALUE=(0x07*256+0x02)=1794mg/L.
  • TDS is derived by EC, TDS=EC*TDSCOFF, in which TDSCOFF is a coefficient, please refer to TDSCOFF.
TDS_FLOAT — Total Dissolved Solid, FLOAT Format TDS_FLOAT_INVERSE — Total Dissolved Solid, FLOAT_INVERSE Format
Data Range0-20000 (mg/L)Default: N/A
Parameter StorageN/A
  • Note: Total Dissolved Solid
EPSILON — Epsilon
Data Range0-30000 for 0.00-300.00Default: N/A
Parameter StorageN/A
  • Note: Epsilon
  • Example: When REGISTER = 0x0702 (HEX format), then VALUE=(0x07*256+0x02)/100=17.94.
  • VWC is derived by EPSILON, VWC is a function of EPSILON. This value is always used for self calibration usage.
EPSILON_FLOAT — Epsilon, FLOAT Format EPSILON_FLOAT_INVERSE — Epsilon, FLOAT_INVERSE Format
Data Range0.00-300.00Default: N/A
Parameter StorageN/A
  • Note: Epsilon
VWC_RAWAD — VWC Raw AD
Data Range0-4096 for 0-4096Default: N/A
Parameter StorageN/A
  • Note: Water Content Raw AD value
VWC_RAWAD_FLOAT — VWC Raw AD, FLOAT Format VWC_RAWAD_FLOAT_INVERSE — VWC Raw AD, FLOAT_INVERSE Format
Data Range0-4096.00Default: N/A
Parameter StorageN/A
  • Note: Water Content Raw AD value
POREEC_RAWAD — Pore EC
Data Range0-32000 (us/cm)Default: N/A
Parameter StorageN/A
  • Note: Pore EC
POREEC_FLOAT — Pore EC, FLOAT Format POREEC_FLOAT_INVERSE — Pore EC, FLOAT_INVERSE Format
Data Range0-32000 (us/cm)Default: N/A
Parameter StorageN/A
  • Note: Pore EC
SOILTYPE — Soil Type
Data Range0-5 0:Mineral 1:Sand 2:Clay 3:Organic 4:User Defined Curve 5:Soilless(Rockwool, etc)Default: 0:Mineral
Parameter StorageYES
  • Note: Soil Type.
TEMPUNIT — Temperature Unit
Data Range0:°C 1:°FDefault: 0
Parameter StorageYES
  • Note: Temperature Unit.
ECTEMPCOFF — EC Temperature Compensation Coefficient
Data Range0-100 for 0.0%-10.0%Default: 20(2%)
Parameter StorageYES
  • Note: EC Temperature Compensation Coefficient
SALINITYCOFF — Salinity Coefficient
Data Range0-100 for 0.00-1.00Default: 55(0.55)
Parameter StorageYES
  • Note: Salinity Coefficient.
TDSCOFF — TDS Coefficient
Data Range0-100 for 0.00-1.00Default: 50(0.50)
Parameter StorageYES
  • Note: TDS Coefficient.
MEASUREMETHOD — Measure Method
Data Range0: Continuous 1: RequestDefault: 1
Parameter StorageYES
  • Note: In Continuous mode, the sensor always convert the VWC, EC and Temperature and update the internal data and ready for reading. In Request mode, the sensor convert the VWC, EC and Temperature data by receiving the data request command from master device.
EPSILON_OFFSET — Epsilon Offset
Data Range0-200 for 0-20.00Default: 58(5.8)
Parameter StorageYES
  • Note: Epsilon Value when Substrate VWC is 0%
SLAVEADDRESS — Serial Comm Slave Address
Data Range0-255Default: 1
Parameter StorageYES
  • Note: Please re-power on the sensor to take effective after set.
BAUDRATE — Serial Comm Baudrate
Data Range0-5 0:1200bps 1:2400bps 2:4800bps 3:9600bps 4:19200bps 5:38400bpsDefault: 3
Parameter StorageYES
  • Note: Please re-power on the sensor to take effective after set.
PROTOCOL — Serial Comm Protocol
Data Range0-1 0:Modbus RTU 1:Modbus ASCiiDefault: 0
Parameter StorageYES
  • Note: Please re-power on the sensor to take effective after set.
PARITY — Serial Comm Parity
Data Range0-2 0:NONE 1:EVEN 2:ODDDefault: 0
Parameter StorageYES
  • Note: Please re-power on the sensor to take effective after set.
DATABITS — Serial Comm Databits
Data Range1:8 databitsDefault: 1
Parameter StorageYES
  • Note: Please re-power on the sensor to take effective after set.
STOPBITS — Serial Comm Stopbits
Data Range0-1 0:1 stopbit 1:2 stopbitsDefault: 0
Parameter StorageYES
  • Note: Please re-power on the sensor to take effective after set.
RESPONSEDELAY — Serial Comm Response Delay
Data Range0-255 for 0-2550 milliseconds, 0 for disabledDefault: 0
Parameter StorageYES
  • Note: Please re-power on the sensor to take effective after set.
  • Note: Sensor will delay a period before response to master request command.
  • Example: When set to 5 and receive a request from master device, then sensor will delay 5*10ms=50ms, then response to master.
ACTIVEOUTPUTINTERVAL — Serial Comm Active Output Interval time
Data Range0-255 for 0-255 seconds, 0 for disabled
Parameter StorageYES
  • Note: Please re-power on the sensor to take effective after set.
  • Note: Sensor will output the data actively without any master request command.
  • Note: Only ONE sensor should be on RS485 network, or there will be data collision and corrupt the data on line.
  • Note: Refer to SETTING mode to exit the Active Output Mode.
  • Example: When set to 5 then sensor will output the data every 5 seconds without any master request command.

6.4Modbus function codes

For description below, data started with 0X/0x means that it's in HEX format.

6.4.1Function Code 3 Protocol Example

Master Request:AA 03 RRRR NNNN CCCC |||

AA1 byteSlave Address, 0-255
0x031 byteFunction Code 3
RRRR2 byteStarting Register Addr
NNNN2 byteQuantity of Register to read
CCCC2 byteCRC CHECKSUM

Slave Response:AA 03 MM VV0 VV1 VV2 VV3... CCCC |||

AA1 byteSlave Address, 0-255
0x031 byteFunction Code 3
MM1 byteRegister Data Byte Count
VV0,VV12 byteRegister Value (High8bits first)
VV2,VV32 byteRegister Value (High8bits first)
.........
CCCC2 byteCRC CHECKSUM
Example: Read register 0x0200-0x0201, that is slave address and baudrate.

Master Request:01 03 0200 0002 C5B3 |||

Slave Addr.1 byte0x01
Function Code1 byte0x03
Starting Register Addr.2 byte0x0200
Quantity of Register to read2 byte0x0002
Checksum2 byte0xC5B3

Slave Response:01 03 04 00 01 00 03 EB F2 |||

Slave Addr.1 byte0x01
Function Code1 byte0x03
Register Data Byte Count1 byte0x04
Register Value: Address2 byte0x00 (HIGH 8 Bits) 0x01 (LOW 8 Bits)
Register Value: Baudrate2 byte0x00 (HIGH 8 Bits) 0x03 (LOW 8 Bits)
Checksum2 byte0xEB F2

6.4.2Function code 4 – protocol example

Master Request:AA 04 RRRR NNNN CCCC |||

Master Request:AA 04 RRRR NNNN CCCC
AA1 byteSlave Address, 0-255
0x041 byteFunction Code 4
RRRR2 byteStarting Register Addr
NNNN2 byteQuantity of Register to read
CCCC2 byteCRC CHECKSUM

Slave Response:AA 04 MM VV0 VV1 VV2 VV3... CCCC |||

Slave Response:AA 04 MM VV0 VV1 VV2 VV3... CCCC
AA1 byteSlave Address, 0-255
0x041 byteFunction Code 4
MM1 byteRegister Data Byte Count
VV0,VV12 byteRegister Value (High8bits first)
VV2,VV32 byteRegister Value (High8bits first)
.........
CCCC2 byteCRC CHECKSUM
Example: Read register 0x0000-0x0002, that is temperature, soil moisture, and EC.
Slave Addr.1 byte0x01
Function Code1 byte0x04
Starting Register Addr.2 byte0x0000
Quantity of Register to read2 byte0x0003
Checksum2 byte0xB00B

Master Request:01 04 0000 0003 B00B |||

Slave Addr.1 byte0x01
Function Code1 byte0x04
Starting Register Addr.2 byte0x0000
Quantity of Register to read2 byte0x0003
Checksum2 byte0xB00B

Slave Response:01 04 06 08 90 0E 93 02 4E D2 57 |||

Slave Response:01 04 06 08 90 0E 93 02 4E D2 57
Slave Addr.1 byte0x01
Function Code1 byte0x04
Register Data Byte Count1 byte0x06
Register Value: Temperature2 byte0x08 90
Register Value: Soil Moisture2 byte0x0E 93
Register Value: EC2 byte0x02 4E
Checksum2 byte0xD2 57

Temperature = (0x08*256+0x90)/100 = 2192/100 = 21.92 °C Soil Moisture = (0x0E*256+0x93)/100 = 3731/100 = 37.31% EC = 0x02*256+0x4E = 2*256+78 = 590 us/cm

6.4.3Function code 6 – protocol example

Master Request:AA 06 RRRR VVVV CCCC |||

Master Request:AA 06 RRRR VVVV CCCC
AA1 byteSlave Address, 0-255
0x061 byteFunction Code 6
RRRR2 byteRegister Addr (High8bits first)
VVVV2 byteRegister Value (High8bits first)
CCCC2 byteCRC CHECKSUM

Slave Response:AA 06 RRRR VVVV CCCC |||

Slave Response:AA 06 RRRR VVVV CCCC
AA1 byteSlave Address, 0-255
0x061 byteFunction Code 6
RRRR2 byteRegister Addr (High8bits first)
VVVV2 byteRegister Value (High8bits first)
CCCC2 byteCRC CHECKSUM
Example: Write Register 0x0021, that is set temperature unit to °F.
Slave Addr.1 byte0x01
Function Code1 byte0x06
Register Addr.2 byte0x0021 (High8bits first)
Register Value2 byte0x0001 (High8bits first)
Checksum2 byte0x1800

Master Request:01 06 0021 0001 1800 |||

Slave Addr.1 byte0x01
Function Code1 byte0x06
Register Addr.2 byte0x0021 (High8bits first)
Register Value2 byte0x0001 (High8bits first)
Checksum2 byte0x1800

Response:01 06 0021 0001 1800 |||

Response:01 06 0021 0001 1800
Slave Addr.1 byte0x01
Function Code1 byte0x06
Register Addr.2 byte0x0021 (High8bits first)
Register Value2 byte0x0001 (High8bits first)
Checksum2 byte0x1800

6.4.4Function code 16 – protocol example

Master Request:AA 10 RRRR NNNN MM VVVV1 VVVV2 ...CCCC |||

Master Request:AA 10 RRRR NNNN MM VVVV1 VVVV2 ...CCCC
AA1 byteSlave Address, 0-255
0x101 byteFunction Code 0x10
RRRR2 byteStarting Register Addr
NNNN2 byteQuantity of Register to write
MM1 byteRegister Data Byte Count
VVVV12 byteRegister Value (High8bits first)
VVVV22 byteRegister Value (High8bits first)
.........
CCCC2 byteCRC CHECKSUM

Slave Response:AA 10 RRRR NNNN CCCC |||

Slave Response:AA 10 RRRR NNNN CCCC
AA1 byteSlave Address, 0-255
0x101 byteFunction Code 0x10
RRRR2 byteStarting Register Addr
NNNN2 byteQuantity of Register to write
CCCC2 byteCRC CHECKSUM
Example: Write Register 0x0200-0x0201, that is set slave address to 1, and baudrate to 19200bps.
Slave Addr.1 byte0x01
Function Code 0x101 byte0x10 (HEX)
Starting Register Addr2 byte0x0200 (High8bits first)
Quantity of Register to write2 byte0x0002 (High8bits first)
Register Data Byte Count1 byte0x04
Register Value: Slave Address2 byte0x0001
Register Value: Baudrate2 byte0x0004
Checksum2 byte0xBACC

Master Request:01 10 0200 0002 04 0001 0004 BACC |||

Slave Addr.1 byte0x01
Function Code 0x101 byte0x10 (HEX)
Starting Register Addr2 byte0x0200 (High8bits first)
Quantity of Register to write2 byte0x0002 (High8bits first)
Register Data Byte Count1 byte0x04
Register Value: Slave Address2 byte0x0001
Register Value: Baudrate2 byte0x0004
Checksum2 byte0xBACC

Slave Response:01 10 0200 0002 4070 |||

Slave Response:01 10 0200 0002 4070
Slave Addr.1 byte0x01
Function Code 0x101 byte0x10
Starting Register Addr2 byte0x0200 (High8bits first)
Quantity of Register to write2 byte0x0002 (High8bits first)
Checksum2 byte0x4070

Gallery

The SX-HEC20 soil moisture sensor
Installed in the ground
Dimensions in millimetres
Wiring for the 4-20 mA current output
Wiring for the 0-2 V voltage output
Wiring for RS-485 Modbus
Where soil moisture measurement is used

Documentation

Does it fit your case?

Tell us where the SX-HEC20 is going and what you need to integrate it with. We’ll tell you whether it’s the right device — and if not, which one is.

See the catalogue