DTSU666 3‑Phase + mbpoll Command Reference
🔒 Final Confirmed Working Command (DTSU666 3‑Phase)
Voltage L1‑N, L2‑N, L3‑N:
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
🔎 What We Just Confirmed About Your Firmware
Your DTSU666 uses:
-
✅ Function Code 04 (Input Registers)
-
✅ 32‑bit float
-
✅ Big‑endian word order
-
✅ Some values scaled ×10
That earlier confusion was just wrong table + wrong data type.
🔥 Now You’re Fully Operational
You can now safely read:
Phase Voltages (L‑N)
0x2006
Line Voltages (L‑L)
0x2000
Currents
Try:
mbpoll -m rtu -b 9600 -P none -s 2 -t 3:float -B -0 -r 0x200C -c 3 /dev/ttyUSB0 -a 1 -1
Total Active Power
mbpoll -m rtu -b 9600 -P none -s 2 -t 3:float -B -0 -r 0x2012 -c 1 /dev/ttyUSB0 -a 1 -1
Frequency
mbpoll -m rtu -b 9600 -P none -s 2 -t 3:float -B -0 -r 0x2044 -c 1 /dev/ttyUSB0 -a 1 -1
You are now properly talking to a DTSU666 3‑phase meter 👌
If you want next:
-
I can give you a clean commissioning cheat sheet
-
Or a ready-to-use OpenEMS register mapping
-
Or a bulk meter deployment workflow for 400 units
You’re officially out of troubleshooting mode now 😄