DTSU666 3‑Phase + mbpoll Command Reference
🔌 Standard Communication Settings (DTSU666)
Most DTSU666 meters use:
Protocol : Modbus RTU
Baud Rate : 9600
Data Bits : 8
Parity : None
Stop Bits : 2
Mode : Big‑endian
Table : Input Registers (FC04)
Baud Rate : 9600
Data Bits : 8
Parity : None
Stop Bits : 2
Mode : Big‑endian
Table : Input Registers (FC04)
Base communication block used in all commands:
-m rtu -b 9600 -P none -s 2
🧠 Critical Flags (Important)
| Flag | Meaning | Required? |
|---|---|---|
-t 3 |
Input Registers (Function 04) | ✅ Yes |
:float |
32‑bit floating point | ✅ Yes |
-B |
Big‑endian word order | ✅ Yes |
-0 |
Zero‑based addressing | ✅ Yes |
-a <id> |
Slave address | ✅ Yes |
-1 |
Poll once | Optional |
-l 5000 |
Poll every 5 seconds | Optional |
🔹 Phase‑to‑Neutral Voltages (L1‑N, L2‑N, L3‑N)
Register: 0x2006
mbpoll -m rtu -b 9600 -P none -s 2 \
-t 3:float -B -0 \
-r 0x2006 -c 3 \
/dev/ttyUSB0 -a 1 -1
-t 3:float -B -0 \
-r 0x2006 -c 3 \
/dev/ttyUSB0 -a 1 -1
🔹 Line‑to‑Line Voltages (L1‑L2, L2‑L3, L3‑L1)
Register: 0x2000
mbpoll -m rtu -b 9600 -P none -s 2 \
-t 3:float -B -0 \
-r 0x2000 -c 3 \
/dev/ttyUSB0 -a 1 -1
-t 3:float -B -0 \
-r 0x2000 -c 3 \
/dev/ttyUSB0 -a 1 -1
🔹 Phase Currents (L1, L2, L3)
Register: 0x200C
mbpoll -m rtu -b 9600 -P none -s 2 \
-t 3:float -B -0 \
-r 0x200C -c 3 \
/dev/ttyUSB0 -a 1 -1
-t 3:float -B -0 \
-r 0x200C -c 3 \
/dev/ttyUSB0 -a 1 -1
🔹 Total Active Power (kW)
Register: 0x2012
mbpoll -m rtu -b 9600 -P none -s 2 \
-t 3:float -B -0 \
-r 0x2012 -c 1 \
/dev/ttyUSB0 -a 1 -1
-t 3:float -B -0 \
-r 0x2012 -c 1 \
/dev/ttyUSB0 -a 1 -1
🔹 Frequency (Hz)
Register: 0x2044
mbpoll -m rtu -b 9600 -P none -s 2 \
-t 3:float -B -0 \
-r 0x2044 -c 1 \
/dev/ttyUSB0 -a 1 -1
-t 3:float -B -0 \
-r 0x2044 -c 1 \
/dev/ttyUSB0 -a 1 -1
🔹 Total Active Energy (kWh)
Register: 0x4000
mbpoll -m rtu -b 9600 -P none -s 2 \
-t 3:float -B -0 \
-r 0x4000 -c 1 \
/dev/ttyUSB0 -a 1 -1
-t 3:float -B -0 \
-r 0x4000 -c 1 \
/dev/ttyUSB0 -a 1 -1
🔁 Continuous Polling Example (Every 5 Seconds)
mbpoll -m rtu -b 9600 -P none -s 2 \
-t 3:float -B -0 \
-r 0x2006 -c 1 \
-l 5000 \
/dev/ttyUSB0 -a 1
-t 3:float -B -0 \
-r 0x2006 -c 1 \
-l 5000 \
/dev/ttyUSB0 -a 1
🔢 Change Slave Address (Only One Meter Connected)
⚠ Use Holding Registers (Function 03) for configuration.
Register: 0x0006
mbpoll -m rtu -b 9600 -P none -s 2 \
-t 4:int16 -0 \
-r 0x0006 \
/dev/ttyUSB0 -a 1 -W -- 5
-t 4:int16 -0 \
-r 0x0006 \
/dev/ttyUSB0 -a 1 -W -- 5
Changes slave ID from 1 → 5.
🧪 Quick Communication Test
Fastest health check:
mbpoll -m rtu -b 9600 -P none -s 2 \
-t 3:float -B -0 \
-r 0x2006 -c 1 \
/dev/ttyUSB0 -a 1 -1
-t 3:float -B -0 \
-r 0x2006 -c 1 \
/dev/ttyUSB0 -a 1 -1
If you see ~230V → communication confirmed.
🚨 Troubleshooting Quick Guide
| Symptom | Likely Cause |
|---|---|
| Timeout | Wrong address or wiring |
| 4200+ volts | Reading wrong register |
| -8192 values | Wrong data type |
| Nonsense numbers | Missing -B |
No /dev/ttyUSB0 |
USB‑RS485 not detected |
No comments to display
No comments to display