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

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 length | Connector / output | Part number |
|---|---|---|
| 2 m | Pigtail | SX-HEC20-2M-PT |
| 2 m | M10 connector | SX-HEC20-2M-M10 |
| 4 m | Pigtail | SX-HEC20-4M-PT |
| 4 m | M10 connector | SX-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/cm50 µ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 Interface | Analog Voltage | Analog Current 4-20mA | RS485 Modbus |
| Power Supply | 3.9-30 VDC | 12-30 VDC | 3.9-30 VDC |
| Consumption | 6mA@12 VDC | 10mA@12 VDC | 6mA@12 VDC |
| Soil Moisture Measurement | Range:0-50%,0-100% Resolution:0-50%:0.03%,50-100%:1% Accuracy:0-50%:2%,50-100%:3% | ||
| EC Measurement | Range: 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 Measurement | Range: -40~80°C Resolution:0.1°C Accuracy:±0.5°C | ||
| Measurement Technique | Moisture by FDR and EC by AC excitation | ||
| IP Ratings | IP68 | ||
| Operating Temperature | -40~85°C | ||
| Sensor Rod | Stainless steel | ||
| Sensor Sealed | Epoxy resin | ||
| Installation | Surface or buried installation | ||
| Cable Length | 2 meters or Customize | ||
| Dimension | 88*26*71mm | ||

2Wiring diagram
| Type | Wiring diagram |
| Analog Voltage Output | Red (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) |

| Analog Current Output | Red (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) | ||

| RS485 Modbus | Red (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. |

| 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

3.2Ordering Information
| Parameters | Code | Comments | |
|---|---|---|---|
| Code 1: Product Series | SX-HEC20 | Soil Moisture, EC, Temperature Sensor | |
| Code 2: Measuring_Parameters | A B C | Soil 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 Range | A B | 0-50% 0-100% | |
| Code 4: EC Range | A B C | 0-5000us/cm 0-10000us/cm 0-20000us/cm | |
| Code 5: Power Supply | A B D | 3.9-30 VDC (not applicable for 4-20mA output) 12-30 VDC (applicable for 4-20mA output) Customize | |
| Code 6: Output Interface | A B C D E | Analog 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 Length | 002 XXX | 2 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 Interface | Parameters Range | Conversion Formula |
|---|---|---|
| Analog Voltage Output 0-2V | Temperature: -40-80°C | TEMP=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/cm | EC=2500*VOLTAGE. When VOLTAGE=0.3V,then EC=2500*0.3=750us/cm. | |
| EC: 0-10000us/cm | EC =5000* VOLTAGE. When VOLTAGE=0.3V,then EC=5000*0.3=1500us/cm | |
| EC: 0-20000us/cm | EC =10000* VOLTAGE. When VOLTAGE=0.3V,then EC=10000*0.3=3000us/cm. | |
| Analog Current Output 4-20mA | Temperature: -40-80°C | TEMP=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/cm | EC = 312.50 *( CURRENT -4). When CURRENT=6.4mA, then EC= 312.50*(6.4-4)=750us/cm | |
| EC: 0-10000us/cm | EC = 625 *( CURRENT -4). When CURRENT=6.4mA, then EC=625*(6.4-4)=1500us/cm | |
| EC: 0-20000us/cm | EC = 1250 *( CURRENT -4). When CURRENT=6.4mA, then EC=1250*(6.4-4)=3000us/cm | |
| RS485 Modbus-RTU | Temperature: -40-80°C | TEMP=(REGISTER VALUE)/100. When REGISTERVALUE=2013, then TEMP= 2013/100=20.13°C. |
| VWC for all ranges | VWC=(REGISTER VALUE)/100. When REGISTERVALUE=2013, then VWC= 2013/100=20.13%. | |
| EC for all ranges | EC=(REGISTER VALUE). When REGISTERVALUE=1568, then EC= 1568us/cm. | |
| Customize | Contact 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
| Parameters | Register Addr. (HEX/DEC) | Data Type | Modbus Function Code(DEC) | Range and Comments | Default Value |
|---|---|---|---|---|---|
| TEMPERATURE | 0x0000/0 | INT16 RO | 3/4 | -4000-8000 for -40.00~80.00°C | N/A |
| VWC-Volumetric Water Content | 0x0001/1 | UINT16 RO | 3/4 | 0-10000 for 0-100% | N/A |
| EC-Electrical Conductivity | 0x0002/2 | UINT16 RO | 3/4 | 0-20000 for 0-20000us/cm | N/A |
| SALINITY | 0x0003/3 | UINT16 RO | 3/4 | 0-20000 for 0-20000mg/L | N/A |
| TDS | 0x0004/4 | UINT16 RO | 3/4 | 0-20000 for 0-20000mg/L | N/A |
| EPSILON | 0x0005/5 | UINT16 RO | 3/4 | 0-30000 for 0.00-300.00 | N/A |
| RESERVED | 0x0006/6 | UINT16 RO | 3/4 | N/A | 0 |
| VWC_RAWAD | 0x0007/7 | UINT16 RO | 3/4 | 0-4096 for 0-4096 | N/A |
| RESERVED | 0x0008/8 | UINT16 RO | 3/4 | N/A | 0 |
| POREEC | 0x0009/9 | UINT16 RO | 3/4 | 0-32000 for 0-32000us/cm | N/A |
| SOILTYPE | 0x0020/32 | UINT16 R/W | 3/6/16 | 0-5 0:Mineral 1:Sand 2:Clay 3:Organic 4:User Defined Curve 5:Soilless(Rockwool, etc) | 0:Mineral |
| TEMPUNIT | 0x0021/33 | UINT16 R/W | 3/6/16 | 0:°C 1:°F | 0 |
| ECTEMPCOFF | 0x0022/34 | UINT16 R/W | 3/6/16 | 0-100 for 0.0%-10.0% | 20(2%) |
| SALINITYCOFF | 0x0023/35 | UINT16 R/W | 3/6/16 | 0-100 for 0.00-1.00 | 55(0.55) |
| TDSCOFF | 0x0024/36 | UINT16 R/W | 3/6/16 | 0-100 for 0.00-1.00 | 50(0.5) |
| MEASURE METHOD | 0x0025/37 | UINT16 R/W | 3/6/16 | 0: Continuous Meas. 1: Request Meas. | 1 |
| EPSILON OFFSET | 0x0026/38 | UINT16 R/W | 3/6/16 | Epsilon Value when Substrate VWC is 0% 0-200 for 0-20.00 | 58(5.8) |
| SLAVEADDRESS | 0x0200/512 | UINT16 R/W | 3/6/16 | 0-255 | 1 |
| BAUDRATE | 0x0201/513 | UINT16 R/W | 3/6/16 | 0-6 0:1200bps 1:2400bps 2:4800bps 3:9600bps 4:19200bps 5:38400bps | 3:9600bps |
| PROTOCOL | 0x0202/514 | UINT16 R/W | 3/6/16 | 0-1 0:Modbus RTU 1:Modbus ASCii | 0:Modbus RTU |
| PARITY | 0x0203/515 | UINT16 R/W | 3/6/16 | 0-2 0:None 1:Even 2:Odd | 0:None Parity |
| DATABITS | 0x0204/516 | UINT16 R/W | 3/6/16 | 1 1:8 databits | 1:8 databits |
| STOPBITS | 0x0205/517 | UINT16 R/W | 3/6/16 | 0-1 0:1 stopbit 1:2 stopbits | 0:1 stopbit |
| RESPONSE DELAY | 0x0206/518 | UINT16 R/W | 3/6/16 | 0-255 for 0-2550 milliseconds | 0 |
| ACTIVEOUTPUT INTERVAL | 0x0207/519 | UINT16 R/W | 3/6/16 | 0-255 for 0-255 seconds | 0 |
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.
| Parameters | Register Addr. (HEX/DEC) | Data Type | Modbus Function Code(DEC) | Range and Comments | Default Value |
|---|---|---|---|---|---|
| TEMPERATURE FLOAT | 0x1000/4096 | FLOAT RO | 3/4 | -40.00-80.00 (°C) | N/A |
| VWC_FLOAT | 0x1002/4098 | FLOAT RO | 3/4 | 0.00-100.00 (%) | N/A |
| EC_FLOAT | 0x1004/4100 | FLOAT RO | 3/4 | 0-20000 (us/cm) | N/A |
| SALINITY FLOAT | 0x1006/4102 | FLOAT RO | 3/4 | 0-20000(mg/L) | N/A |
| TDS_FLOAT | 0x1008/4104 | FLOAT RO | 3/4 | 0-20000(mg/L) | N/A |
| EPSILON FLOAT | 0x100A/4106 | FLOAT RO | 3/4 | 0.00-300.00 | N/A |
| RESERVED FLOAT | 0x100C/4108 | FLOAT RO | 3/4 | RESERVED | 0 |
| VWC_RAWAD FLOAT | 0x100E/4110 | FLOAT RO | 3/4 | 0.00-4096.00 | N/A |
| RESERVED FLOAT | 0x1010/4112 | FLOAT RO | 3/4 | RESERVED | 0 |
| POREEC FLOAT | 0x1012/4114 | FLOAT RO | 3/4 | 0-32000 (us/cm) | N/A |
| RESERVED FLOAT | 0x1014/4116 | FLOAT RO | 3/4 | RESERVED | 0 |
| RESERVED FLOAT | 0x1016/4118 | FLOAT RO | 3/4 | RESERVED | 0 |
| RESERVED FLOAT | 0x1018/4120 | FLOAT RO | 3/4 | RESERVED | 0 |
| RESERVED FLOAT | 0x101A/4122 | FLOAT RO | 3/4 | RESERVED | 0 |
| RESERVED FLOAT | 0x101C/4124 | FLOAT RO | 3/4 | RESERVED | 0 |
| RESERVED FLOAT | 0x101E/4126 | FLOAT RO | 3/4 | RESERVED | 0 |
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.
| Parameters | Register Addr. (HEX/DEC) | Data Type | Modbus Function Code(DEC) | Range and Comments | Default Value |
|---|---|---|---|---|---|
| TEMPERATURE FLOAT_INVERSE | 0x1100/4352 | FLOAT_INVERSE RO | 3/4 | -40.00-80.00 (°C) | N/A |
| VWC_FLOAT_INVERSE | 0x1102/4354 | FLOAT_INVERSE RO | 3/4 | 0.00-100.00 (%) | N/A |
| EC_FLOAT_INVERSE | 0x1104/4356 | FLOAT_INVERSE RO | 3/4 | 0-20000 (us/cm) | N/A |
| SALINITY FLOAT_INVERSE | 0x1106/4358 | FLOAT_INVERSE RO | 3/4 | 0-20000(mg/L) | N/A |
| TDS_FLOAT_INVERSE | 0x1108/4360 | FLOAT_INVERSE RO | 3/4 | 0-20000(mg/L) | N/A |
| EPSILON FLOAT_INVERSE | 0x110A/4362 | FLOAT_INVERSE RO | 3/4 | 0.00-300.00 | N/A |
| RESERVED FLOAT_INVERSE | 0x110C/4364 | FLOAT_INVERSE RO | 3/4 | RESERVED | 0 |
| VWC_RAWAD FLOAT_INVERSE | 0x110E/4366 | FLOAT_INVERSE RO | 3/4 | 0.00-4096.00 | N/A |
| RESERVED FLOAT_INVERSE | 0x1110/4368 | FLOAT_INVERSE RO | 3/4 | RESERVED | 0 |
| POREEC FLOAT_INVERSE | 0x1112/4370 | FLOAT_INVERSE RO | 3/4 | 0-32000 (us/cm) | N/A |
| RESERVED FLOAT_INVERSE | 0x1114/4372 | FLOAT_INVERSE RO | 3/4 | RESERVED | 0 |
| RESERVED FLOAT_INVERSE | 0x1116/4374 | FLOAT_INVERSE RO | 3/4 | RESERVED | 0 |
| RESERVED FLOAT_INVERSE | 0x1118/4376 | FLOAT_INVERSE RO | 3/4 | RESERVED | 0 |
| RESERVED FLOAT_INVERSE | 0x111A/4378 | FLOAT_INVERSE RO | 3/4 | RESERVED | 0 |
| RESERVED FLOAT_INVERSE | 0x111C/4380 | FLOAT_INVERSE RO | 3/4 | RESERVED | 0 |
| RESERVED FLOAT_INVERSE | 0x111E/4382 | FLOAT_INVERSE RO | 3/4 | RESERVED | 0 |
The following registers' value are the same with register 0x0000-0x0009, just the re-order of those register.
| Parameters | Register Addr. (HEX/DEC) | Data Type | Modbus Function Code(DEC) | Range and Comments | Default Value |
|---|---|---|---|---|---|
| TEMPRATURE | 0x1200/4608 | INT16 RO | 3/4 | -4000-8000 for -40.00~80.00°C | N/A |
| VWC | 0x1201/4609 | UINT16 RO | 3/4 | 0-10000 for 0-100% | N/A |
| EC | 0x1202/4610 | UINT16 RO | 3/4 | 0-20000 for 0-20000us/cm | N/A |
| POREEC | 0x1203/4611 | UINT16 RO | 3/4 | 0-32000 for 0-32000us/cm | N/A |
| EPSILON | 0x1204/4612 | UINT16 RO | 3/4 | 0-30000 for 0.00~300.00 | N/A |
| SALINITY | 0x1205/4613 | UINT16 RO | 3/4 | 0-20000 for 0-20000mg/L | N/A |
| TDS | 0x1206/4614 | UINT16 RO | 3/4 | 0-20000 for 0-20000mg/L | N/A |
| RESERVED | 0x1207/4615 | UINT16 RO | 3/4 | N/A | 0 |
| VWC_RAWAD | 0x1208/4616 | UINT16 RO | 3/4 | 0-4096 for 0-4096 | N/A |
| RESERVED | 0x1209/4617 | UINT16 RO | 3/4 | N/A | 0 |
- 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 Storage | N/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.00 | Default: N/A |
| Parameter Storage | N/A | |
| VWC — Volmetric Water Content | ||
|---|---|---|
| Data Range | 0-10000 For 0-100% | Default: N/A |
| Parameter Storage | N/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 Range | 0.00-100.00 (%) | Default: N/A |
| Parameter Storage | N/A | |
- Note: Volmetric Water Content value.
| EC — Electrical Conductivity | ||
|---|---|---|
| Data Range | 0-20000 For 0-20000 (us/cm) | Default: N/A |
| Parameter Storage | N/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 Range | 0-20000 (us/cm) | Default: N/A |
| Parameter Storage | N/A | |
- Note: Electrical Conductivity.
| SALINITY — Salinity | ||
|---|---|---|
| Data Range | 0-20000 For 0-20000 (mg/L) | Default: N/A |
| Parameter Storage | N/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 Range | 0-20000 (mg/L) | Default: N/A |
| Parameter Storage | N/A | |
- Note: Salinity
| TDS — Total Dissolved Solid | ||
|---|---|---|
| Data Range | 0-20000 For 0-20000 (mg/L) | Default: N/A |
| Parameter Storage | N/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 Range | 0-20000 (mg/L) | Default: N/A |
| Parameter Storage | N/A | |
- Note: Total Dissolved Solid
| EPSILON — Epsilon | ||
|---|---|---|
| Data Range | 0-30000 for 0.00-300.00 | Default: N/A |
| Parameter Storage | N/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 Range | 0.00-300.00 | Default: N/A |
| Parameter Storage | N/A | |
- Note: Epsilon
| VWC_RAWAD — VWC Raw AD | ||
|---|---|---|
| Data Range | 0-4096 for 0-4096 | Default: N/A |
| Parameter Storage | N/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 Range | 0-4096.00 | Default: N/A |
| Parameter Storage | N/A | |
- Note: Water Content Raw AD value
| POREEC_RAWAD — Pore EC | ||
|---|---|---|
| Data Range | 0-32000 (us/cm) | Default: N/A |
| Parameter Storage | N/A | |
- Note: Pore EC
| POREEC_FLOAT — Pore EC, FLOAT Format POREEC_FLOAT_INVERSE — Pore EC, FLOAT_INVERSE Format | ||
|---|---|---|
| Data Range | 0-32000 (us/cm) | Default: N/A |
| Parameter Storage | N/A | |
- Note: Pore EC
| SOILTYPE — Soil Type | ||
|---|---|---|
| Data Range | 0-5 0:Mineral 1:Sand 2:Clay 3:Organic 4:User Defined Curve 5:Soilless(Rockwool, etc) | Default: 0:Mineral |
| Parameter Storage | YES | |
- Note: Soil Type.
| TEMPUNIT — Temperature Unit | ||
|---|---|---|
| Data Range | 0:°C 1:°F | Default: 0 |
| Parameter Storage | YES | |
- Note: Temperature Unit.
| ECTEMPCOFF — EC Temperature Compensation Coefficient | ||
|---|---|---|
| Data Range | 0-100 for 0.0%-10.0% | Default: 20(2%) |
| Parameter Storage | YES | |
- Note: EC Temperature Compensation Coefficient
| SALINITYCOFF — Salinity Coefficient | ||
|---|---|---|
| Data Range | 0-100 for 0.00-1.00 | Default: 55(0.55) |
| Parameter Storage | YES | |
- Note: Salinity Coefficient.
| TDSCOFF — TDS Coefficient | ||
|---|---|---|
| Data Range | 0-100 for 0.00-1.00 | Default: 50(0.50) |
| Parameter Storage | YES | |
- Note: TDS Coefficient.
| MEASUREMETHOD — Measure Method | ||
|---|---|---|
| Data Range | 0: Continuous 1: Request | Default: 1 |
| Parameter Storage | YES | |
- 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 Range | 0-200 for 0-20.00 | Default: 58(5.8) |
| Parameter Storage | YES | |
- Note: Epsilon Value when Substrate VWC is 0%
| SLAVEADDRESS — Serial Comm Slave Address | ||
|---|---|---|
| Data Range | 0-255 | Default: 1 |
| Parameter Storage | YES | |
- Note: Please re-power on the sensor to take effective after set.
| BAUDRATE — Serial Comm Baudrate | ||
|---|---|---|
| Data Range | 0-5 0:1200bps 1:2400bps 2:4800bps 3:9600bps 4:19200bps 5:38400bps | Default: 3 |
| Parameter Storage | YES | |
- Note: Please re-power on the sensor to take effective after set.
| PROTOCOL — Serial Comm Protocol | ||
|---|---|---|
| Data Range | 0-1 0:Modbus RTU 1:Modbus ASCii | Default: 0 |
| Parameter Storage | YES | |
- Note: Please re-power on the sensor to take effective after set.
| PARITY — Serial Comm Parity | ||
|---|---|---|
| Data Range | 0-2 0:NONE 1:EVEN 2:ODD | Default: 0 |
| Parameter Storage | YES | |
- Note: Please re-power on the sensor to take effective after set.
| DATABITS — Serial Comm Databits | ||
|---|---|---|
| Data Range | 1:8 databits | Default: 1 |
| Parameter Storage | YES | |
- Note: Please re-power on the sensor to take effective after set.
| STOPBITS — Serial Comm Stopbits | ||
|---|---|---|
| Data Range | 0-1 0:1 stopbit 1:2 stopbits | Default: 0 |
| Parameter Storage | YES | |
- Note: Please re-power on the sensor to take effective after set.
| RESPONSEDELAY — Serial Comm Response Delay | ||
|---|---|---|
| Data Range | 0-255 for 0-2550 milliseconds, 0 for disabled | Default: 0 |
| Parameter Storage | YES | |
- 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 Range | 0-255 for 0-255 seconds, 0 for disabled | |
| Parameter Storage | YES | |
- 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 |||
| AA | 1 byte | Slave Address, 0-255 |
| 0x03 | 1 byte | Function Code 3 |
| RRRR | 2 byte | Starting Register Addr |
| NNNN | 2 byte | Quantity of Register to read |
| CCCC | 2 byte | CRC CHECKSUM |
Slave Response:AA 03 MM VV0 VV1 VV2 VV3... CCCC |||
| AA | 1 byte | Slave Address, 0-255 |
| 0x03 | 1 byte | Function Code 3 |
| MM | 1 byte | Register Data Byte Count |
| VV0,VV1 | 2 byte | Register Value (High8bits first) |
| VV2,VV3 | 2 byte | Register Value (High8bits first) |
| ... | ... | ... |
| CCCC | 2 byte | CRC CHECKSUM |
| Example: Read register 0x0200-0x0201, that is slave address and baudrate. |
|---|
Master Request:01 03 0200 0002 C5B3 |||
| Slave Addr. | 1 byte | 0x01 |
| Function Code | 1 byte | 0x03 |
| Starting Register Addr. | 2 byte | 0x0200 |
| Quantity of Register to read | 2 byte | 0x0002 |
| Checksum | 2 byte | 0xC5B3 |
Slave Response:01 03 04 00 01 00 03 EB F2 |||
| Slave Addr. | 1 byte | 0x01 |
| Function Code | 1 byte | 0x03 |
| Register Data Byte Count | 1 byte | 0x04 |
| Register Value: Address | 2 byte | 0x00 (HIGH 8 Bits) 0x01 (LOW 8 Bits) |
| Register Value: Baudrate | 2 byte | 0x00 (HIGH 8 Bits) 0x03 (LOW 8 Bits) |
| Checksum | 2 byte | 0xEB F2 |
6.4.2Function code 4 – protocol example
Master Request:AA 04 RRRR NNNN CCCC |||
| Master Request:AA 04 RRRR NNNN CCCC | ||
|---|---|---|
| AA | 1 byte | Slave Address, 0-255 |
| 0x04 | 1 byte | Function Code 4 |
| RRRR | 2 byte | Starting Register Addr |
| NNNN | 2 byte | Quantity of Register to read |
| CCCC | 2 byte | CRC CHECKSUM |
Slave Response:AA 04 MM VV0 VV1 VV2 VV3... CCCC |||
| Slave Response:AA 04 MM VV0 VV1 VV2 VV3... CCCC | ||
|---|---|---|
| AA | 1 byte | Slave Address, 0-255 |
| 0x04 | 1 byte | Function Code 4 |
| MM | 1 byte | Register Data Byte Count |
| VV0,VV1 | 2 byte | Register Value (High8bits first) |
| VV2,VV3 | 2 byte | Register Value (High8bits first) |
| ... | ... | ... |
| CCCC | 2 byte | CRC CHECKSUM |
| Example: Read register 0x0000-0x0002, that is temperature, soil moisture, and EC. | ||
|---|---|---|
| Slave Addr. | 1 byte | 0x01 |
| Function Code | 1 byte | 0x04 |
| Starting Register Addr. | 2 byte | 0x0000 |
| Quantity of Register to read | 2 byte | 0x0003 |
| Checksum | 2 byte | 0xB00B |
Master Request:01 04 0000 0003 B00B |||
| Slave Addr. | 1 byte | 0x01 |
| Function Code | 1 byte | 0x04 |
| Starting Register Addr. | 2 byte | 0x0000 |
| Quantity of Register to read | 2 byte | 0x0003 |
| Checksum | 2 byte | 0xB00B |
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 byte | 0x01 |
| Function Code | 1 byte | 0x04 |
| Register Data Byte Count | 1 byte | 0x06 |
| Register Value: Temperature | 2 byte | 0x08 90 |
| Register Value: Soil Moisture | 2 byte | 0x0E 93 |
| Register Value: EC | 2 byte | 0x02 4E |
| Checksum | 2 byte | 0xD2 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 | ||
|---|---|---|
| AA | 1 byte | Slave Address, 0-255 |
| 0x06 | 1 byte | Function Code 6 |
| RRRR | 2 byte | Register Addr (High8bits first) |
| VVVV | 2 byte | Register Value (High8bits first) |
| CCCC | 2 byte | CRC CHECKSUM |
Slave Response:AA 06 RRRR VVVV CCCC |||
| Slave Response:AA 06 RRRR VVVV CCCC | ||
|---|---|---|
| AA | 1 byte | Slave Address, 0-255 |
| 0x06 | 1 byte | Function Code 6 |
| RRRR | 2 byte | Register Addr (High8bits first) |
| VVVV | 2 byte | Register Value (High8bits first) |
| CCCC | 2 byte | CRC CHECKSUM |
| Example: Write Register 0x0021, that is set temperature unit to °F. | ||
|---|---|---|
| Slave Addr. | 1 byte | 0x01 |
| Function Code | 1 byte | 0x06 |
| Register Addr. | 2 byte | 0x0021 (High8bits first) |
| Register Value | 2 byte | 0x0001 (High8bits first) |
| Checksum | 2 byte | 0x1800 |
Master Request:01 06 0021 0001 1800 |||
| Slave Addr. | 1 byte | 0x01 |
| Function Code | 1 byte | 0x06 |
| Register Addr. | 2 byte | 0x0021 (High8bits first) |
| Register Value | 2 byte | 0x0001 (High8bits first) |
| Checksum | 2 byte | 0x1800 |
Response:01 06 0021 0001 1800 |||
| Response:01 06 0021 0001 1800 | ||
|---|---|---|
| Slave Addr. | 1 byte | 0x01 |
| Function Code | 1 byte | 0x06 |
| Register Addr. | 2 byte | 0x0021 (High8bits first) |
| Register Value | 2 byte | 0x0001 (High8bits first) |
| Checksum | 2 byte | 0x1800 |
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 | ||
|---|---|---|
| AA | 1 byte | Slave Address, 0-255 |
| 0x10 | 1 byte | Function Code 0x10 |
| RRRR | 2 byte | Starting Register Addr |
| NNNN | 2 byte | Quantity of Register to write |
| MM | 1 byte | Register Data Byte Count |
| VVVV1 | 2 byte | Register Value (High8bits first) |
| VVVV2 | 2 byte | Register Value (High8bits first) |
| ... | ... | ... |
| CCCC | 2 byte | CRC CHECKSUM |
Slave Response:AA 10 RRRR NNNN CCCC |||
| Slave Response:AA 10 RRRR NNNN CCCC | ||
|---|---|---|
| AA | 1 byte | Slave Address, 0-255 |
| 0x10 | 1 byte | Function Code 0x10 |
| RRRR | 2 byte | Starting Register Addr |
| NNNN | 2 byte | Quantity of Register to write |
| CCCC | 2 byte | CRC CHECKSUM |
| Example: Write Register 0x0200-0x0201, that is set slave address to 1, and baudrate to 19200bps. | ||
|---|---|---|
| Slave Addr. | 1 byte | 0x01 |
| Function Code 0x10 | 1 byte | 0x10 (HEX) |
| Starting Register Addr | 2 byte | 0x0200 (High8bits first) |
| Quantity of Register to write | 2 byte | 0x0002 (High8bits first) |
| Register Data Byte Count | 1 byte | 0x04 |
| Register Value: Slave Address | 2 byte | 0x0001 |
| Register Value: Baudrate | 2 byte | 0x0004 |
| Checksum | 2 byte | 0xBACC |
Master Request:01 10 0200 0002 04 0001 0004 BACC |||
| Slave Addr. | 1 byte | 0x01 |
| Function Code 0x10 | 1 byte | 0x10 (HEX) |
| Starting Register Addr | 2 byte | 0x0200 (High8bits first) |
| Quantity of Register to write | 2 byte | 0x0002 (High8bits first) |
| Register Data Byte Count | 1 byte | 0x04 |
| Register Value: Slave Address | 2 byte | 0x0001 |
| Register Value: Baudrate | 2 byte | 0x0004 |
| Checksum | 2 byte | 0xBACC |
Slave Response:01 10 0200 0002 4070 |||
| Slave Response:01 10 0200 0002 4070 | ||
|---|---|---|
| Slave Addr. | 1 byte | 0x01 |
| Function Code 0x10 | 1 byte | 0x10 |
| Starting Register Addr | 2 byte | 0x0200 (High8bits first) |
| Quantity of Register to write | 2 byte | 0x0002 (High8bits first) |
| Checksum | 2 byte | 0x4070 |
Gallery
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.