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
| Reading | Unit | Typical range | Use 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
- Pi Hub (or any Linux machine running Scout) with an available USB port
- USB-RS485 adapter — CH340 or FTDI-based adapters both work. Verify the adapter shows up as
/dev/ttyUSB0(or similar) in Linux. - 12V DC power supply — the SEN0601 requires 5–24V; 12V is a convenient standard shared with peristaltic pumps
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:
| Wire | Label | Connect 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.
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
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.
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 address —
1(default; change if you've reconfigured the probe) - Baud rate —
9600(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).
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
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
- Supply voltage: 5–24V DC (12V recommended)
- Current draw: ≤20mA at 12V
- Protocol: RS485 Modbus RTU
- Default baud rate: 9600
- Default address:
0x01 - Moisture accuracy: ±3% VWC (typical)
- Temperature accuracy: ±0.5°C
- EC measurement range: 0–20,000 μS/cm
- IP rating: IP68 (fully waterproof)
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.