Docs/ Device Guides/ DFRobot SEN0601

DFRobot SEN0601

The SEN0601 is a 5-in-1 RS485 Modbus soil sensor: volumetric water content, soil temperature, electrical conductivity, salinity, and TDS from a single probe insertion. It requires a Pi Hub (or any Linux machine running Scout) with a USB-RS485 adapter. If you want moisture-only readings and wireless convenience, see the Ecowitt WH51 instead.

What it measures

ReadingUnitTypical rangeUse in TentPilot
moisture % VWC 0–100% Soil Monitoring dashboard, moisture-aware irrigation skipping
temperature °C -40–80°C Root-zone temp display; separate from canopy temperature
EC μS/cm 0–20,000 μS/cm Fertigation EC feedback; salt buildup detection
salinity mg/L 0–10,000 mg/L Displayed alongside EC
TDS mg/L 0–10,000 mg/L Displayed alongside EC

Requirements

Not for cloud-only setups

The SEN0601 communicates over a physical RS485 wire — it cannot be polled from the TentPilot cloud directly. A machine running Scout on the same wire is required. Scout then forwards readings to the cloud over WebSocket.

Wiring

The SEN0601 ships with a 4-wire flying lead. Connect as follows:

WireLabelConnect to
Brown VCC 12V DC (positive)
Black GND 12V DC (ground)
Yellow RS485 A (D+) USB-RS485 adapter — A terminal
Blue RS485 B (D−) USB-RS485 adapter — B terminal

You can run up to 32 SEN0601 probes on a single RS485 bus by daisy-chaining the A/B lines. Each probe must have a unique Modbus address (default is 0x01). See the address configuration step below if adding multiple probes.

Wire length

RS485 supports cable runs up to ~1200m. For most grow room setups you can use any shielded 2-pair cable. Twisted pair (like CAT5e) works well — use one pair for A/B signal and one pair for power.

Setup in TentPilot

1

Verify the adapter is visible on the Pi Hub

SSH into your Pi Hub and confirm the USB-RS485 adapter is detected:

ls /dev/ttyUSB*
# Should show: /dev/ttyUSB0

If the device doesn't appear, check that the CH340 driver is loaded (lsmod | grep ch341). Raspberry Pi OS includes it by default.

2

Add the SEN0601 in the TentPilot dashboard

Go to Devices → Add Device → DFRobot SEN0601. Configure:

  • Serial port/dev/ttyUSB0 (or the port shown in step 1)
  • Modbus address1 (default; change if you've reconfigured the probe)
  • Baud rate9600 (factory default)
  • Room assignment — assign to the room/zone where the probe is inserted

Click Test Connection — TentPilot will send a single Modbus read request and display the result. If it fails, double-check A/B polarity (swap the two signal wires if readings are absent).

3

Configure multiple probes (if applicable)

Each probe on the same RS485 bus needs a unique Modbus address. The factory default is 0x01. To change the address, you need to send a Modbus write command before connecting the second probe. TentPilot includes an address configuration tool under Devices → SEN0601 → Configure Address. Do this one probe at a time — disconnect all other probes before writing a new address.

# Modbus address range: 0x01 – 0xF7 (1–247)
# Default baud rate: 9600
# Protocol: Modbus RTU
4

Assign roles

In Devices, set the probe's role:

  • Soil moisture — contributes to moisture-aware irrigation skipping for the assigned room
  • Fertigation EC feedback — EC and TDS readings are surfaced in the Fertigation panel as root-zone EC

A single probe can serve both roles simultaneously.

Sensor specifications

Troubleshooting

Test Connection returns no data

Check wiring polarity first — RS485 A and B are easy to swap. Try reversing the yellow and blue wires. Confirm the probe has power (12V on VCC/GND) before suspecting a data issue.

Readings look wrong (moisture 0% when soil is wet)

Confirm the probe is fully inserted to the marked insertion depth. The sensor element must be in contact with the substrate — loose or partially inserted probes will read zero. Also check that the VCC supply is stable; a weak power supply causes erratic readings.

Multiple probes — only one responds

Each probe on the bus must have a unique Modbus address. If two probes share the same address, their responses collide and neither returns valid data. Use TentPilot's address configuration tool (with one probe at a time connected) to assign unique addresses.

Scout doesn't see the USB-RS485 adapter after reboot

USB device paths like /dev/ttyUSB0 can change across reboots if multiple USB devices are plugged in. Use a udev rule to assign a persistent name, or configure Scout to use the adapter's serial ID instead of the path.