# DTSU666 3‑Phase + mbpoll Command Reference

---

# 🔌 Standard Communication Settings (DTSU666)

Most DTSU666 meters use:

<div class="relative w-full my-4" id="bkmrk-protocol-%3A-modbus-rt"><div class=""><div class="relative"><div class="h-full min-h-0 min-w-0"><div class="h-full min-h-0 min-w-0"><div class="border corner-superellipse/1.1 border-token-border-light bg-token-bg-elevated-secondary rounded-3xl"><div class="corner-superellipse/1.1 rounded-3xl bg-token-bg-elevated-secondary"><div class="relative z-0 flex max-w-full"><div class="q9tKkq_viewer cm-editor z-10 light:cm-light dark:cm-light flex h-full w-full flex-col items-stretch ͼk ͼy" dir="ltr" id="bkmrk-protocol-%3A-modbus-rt-1"><div class="cm-scroller"><div class="cm-content q9tKkq_readonly">Protocol : Modbus RTU  
Baud Rate : 9600  
Data Bits : 8  
Parity : None  
Stop Bits : 2  
Mode : Big‑endian  
Table : Input Registers (FC04)</div></div></div></div></div></div></div></div><div class=""><div class="">  
</div></div></div></div></div>Base communication block used in all commands:

<div class="relative w-full my-4" id="bkmrk--m-rtu--b-9600--p-no"><div class=""><div class="relative"><div class="h-full min-h-0 min-w-0"><div class="h-full min-h-0 min-w-0"><div class="border corner-superellipse/1.1 border-token-border-light bg-token-bg-elevated-secondary rounded-3xl"><div class="corner-superellipse/1.1 rounded-3xl bg-token-bg-elevated-secondary"><div class="relative z-0 flex max-w-full"><div class="q9tKkq_viewer cm-editor z-10 light:cm-light dark:cm-light flex h-full w-full flex-col items-stretch ͼk ͼy" dir="ltr" id="bkmrk--m-rtu--b-9600--p-no-1"><div class="cm-scroller"><div class="cm-content q9tKkq_readonly"><span class="ͼu">-m</span> rtu <span class="ͼu">-b</span> <span class="ͼq">9600</span> <span class="ͼu">-P</span> none <span class="ͼu">-s</span> <span class="ͼq">2</span></div></div></div></div></div></div></div></div><div class=""><div class="">  
</div></div></div></div></div>---

# 🧠 Critical Flags (Important)

<div class="TyagGW_tableContainer" id="bkmrk-flag-meaning-require"><div class="group TyagGW_tableWrapper flex flex-col-reverse w-fit" tabindex="-1"><table class="w-fit min-w-(--thread-content-width)" data-end="979" data-start="620"><thead data-end="650" data-start="620"><tr data-end="650" data-start="620"><th class="" data-col-size="sm" data-end="627" data-start="620">Flag</th><th class="" data-col-size="sm" data-end="637" data-start="627">Meaning</th><th class="" data-col-size="sm" data-end="650" data-start="637">Required?</th></tr></thead><tbody data-end="979" data-start="684"><tr data-end="734" data-start="684"><td data-col-size="sm" data-end="693" data-start="684">`-t 3`</td><td data-col-size="sm" data-end="725" data-start="693">Input Registers (Function 04)</td><td data-col-size="sm" data-end="734" data-start="725">✅ Yes</td></tr><tr data-end="779" data-start="735"><td data-col-size="sm" data-end="746" data-start="735">`:float`</td><td data-col-size="sm" data-end="770" data-start="746">32‑bit floating point</td><td data-col-size="sm" data-end="779" data-start="770">✅ Yes</td></tr><tr data-end="820" data-start="780"><td data-col-size="sm" data-end="787" data-start="780">`-B`</td><td data-col-size="sm" data-end="811" data-start="787">Big‑endian word order</td><td data-col-size="sm" data-end="820" data-start="811">✅ Yes</td></tr><tr data-end="861" data-start="821"><td data-col-size="sm" data-end="828" data-start="821">`-0`</td><td data-col-size="sm" data-end="852" data-start="828">Zero‑based addressing</td><td data-col-size="sm" data-end="861" data-start="852">✅ Yes</td></tr><tr data-end="899" data-start="862"><td data-col-size="sm" data-end="874" data-start="862">`-a <id>`</td><td data-col-size="sm" data-end="890" data-start="874">Slave address</td><td data-col-size="sm" data-end="899" data-start="890">✅ Yes</td></tr><tr data-end="931" data-start="900"><td data-col-size="sm" data-end="907" data-start="900">`-1`</td><td data-col-size="sm" data-end="919" data-start="907">Poll once</td><td data-col-size="sm" data-end="931" data-start="919">Optional</td></tr><tr data-end="979" data-start="932"><td data-col-size="sm" data-end="944" data-start="932">`-l 5000`</td><td data-col-size="sm" data-end="967" data-start="944">Poll every 5 seconds</td><td data-col-size="sm" data-end="979" data-start="967">Optional</td></tr></tbody></table>

</div></div>---

---

## 🔹 Phase‑to‑Neutral Voltages (L1‑N, L2‑N, L3‑N)

Register: `0x2006`

<div class="relative w-full my-4" id="bkmrk-mbpoll--m-rtu--b-960"><div class=""><div class="relative"><div class="h-full min-h-0 min-w-0"><div class="h-full min-h-0 min-w-0"><div class="border corner-superellipse/1.1 border-token-border-light bg-token-bg-elevated-secondary rounded-3xl"><div class="corner-superellipse/1.1 rounded-3xl bg-token-bg-elevated-secondary"><div class="relative z-0 flex max-w-full"><div class="q9tKkq_viewer cm-editor z-10 light:cm-light dark:cm-light flex h-full w-full flex-col items-stretch ͼk ͼy" dir="ltr" id="bkmrk-mbpoll--m-rtu--b-960-1"><div class="cm-scroller"><div class="cm-content q9tKkq_readonly">mbpoll <span class="ͼu">-m</span> rtu <span class="ͼu">-b</span> <span class="ͼq">9600</span> <span class="ͼu">-P</span> none <span class="ͼu">-s</span> <span class="ͼq">2</span> \  
<span class="ͼu">-t</span> <span class="ͼq">3</span>:float <span class="ͼu">-B</span> <span class="ͼu">-0</span> \  
<span class="ͼu">-r</span> 0x2006 <span class="ͼu">-c</span> <span class="ͼq">3</span> \  
/dev/ttyUSB0 <span class="ͼu">-a</span> <span class="ͼq">1</span> <span class="ͼu">-1</span></div></div></div></div></div></div></div></div><div class=""><div class="">  
</div></div></div></div></div>---

## 🔹 Line‑to‑Line Voltages (L1‑L2, L2‑L3, L3‑L1)

Register: `0x2000`

<div class="relative w-full my-4" id="bkmrk-mbpoll--m-rtu--b-960-2"><div class=""><div class="relative"><div class="h-full min-h-0 min-w-0"><div class="h-full min-h-0 min-w-0"><div class="border corner-superellipse/1.1 border-token-border-light bg-token-bg-elevated-secondary rounded-3xl"><div class="corner-superellipse/1.1 rounded-3xl bg-token-bg-elevated-secondary"><div class="relative z-0 flex max-w-full"><div class="q9tKkq_viewer cm-editor z-10 light:cm-light dark:cm-light flex h-full w-full flex-col items-stretch ͼk ͼy" dir="ltr" id="bkmrk-mbpoll--m-rtu--b-960-3"><div class="cm-scroller"><div class="cm-content q9tKkq_readonly">mbpoll <span class="ͼu">-m</span> rtu <span class="ͼu">-b</span> <span class="ͼq">9600</span> <span class="ͼu">-P</span> none <span class="ͼu">-s</span> <span class="ͼq">2</span> \  
<span class="ͼu">-t</span> <span class="ͼq">3</span>:float <span class="ͼu">-B</span> <span class="ͼu">-0</span> \  
<span class="ͼu">-r</span> 0x2000 <span class="ͼu">-c</span> <span class="ͼq">3</span> \  
/dev/ttyUSB0 <span class="ͼu">-a</span> <span class="ͼq">1</span> <span class="ͼu">-1</span></div></div></div></div></div></div></div></div><div class=""><div class="">  
</div></div></div></div></div>---

## 🔹 Phase Currents (L1, L2, L3)

Register: `0x200C`

<div class="relative w-full my-4" id="bkmrk-mbpoll--m-rtu--b-960-4"><div class=""><div class="relative"><div class="h-full min-h-0 min-w-0"><div class="h-full min-h-0 min-w-0"><div class="border corner-superellipse/1.1 border-token-border-light bg-token-bg-elevated-secondary rounded-3xl"><div class="corner-superellipse/1.1 rounded-3xl bg-token-bg-elevated-secondary"><div class="relative z-0 flex max-w-full"><div class="q9tKkq_viewer cm-editor z-10 light:cm-light dark:cm-light flex h-full w-full flex-col items-stretch ͼk ͼy" dir="ltr" id="bkmrk-mbpoll--m-rtu--b-960-5"><div class="cm-scroller"><div class="cm-content q9tKkq_readonly">mbpoll <span class="ͼu">-m</span> rtu <span class="ͼu">-b</span> <span class="ͼq">9600</span> <span class="ͼu">-P</span> none <span class="ͼu">-s</span> <span class="ͼq">2</span> \  
<span class="ͼu">-t</span> <span class="ͼq">3</span>:float <span class="ͼu">-B</span> <span class="ͼu">-0</span> \  
<span class="ͼu">-r</span> 0x200C <span class="ͼu">-c</span> <span class="ͼq">3</span> \  
/dev/ttyUSB0 <span class="ͼu">-a</span> <span class="ͼq">1</span> <span class="ͼu">-1</span></div></div></div></div></div></div></div></div><div class=""><div class="">  
</div></div></div></div></div>---

## 🔹 Total Active Power (kW)

Register: `0x2012`

<div class="relative w-full my-4" id="bkmrk-mbpoll--m-rtu--b-960-6"><div class=""><div class="relative"><div class="h-full min-h-0 min-w-0"><div class="h-full min-h-0 min-w-0"><div class="border corner-superellipse/1.1 border-token-border-light bg-token-bg-elevated-secondary rounded-3xl"><div class="corner-superellipse/1.1 rounded-3xl bg-token-bg-elevated-secondary"><div class="relative z-0 flex max-w-full"><div class="q9tKkq_viewer cm-editor z-10 light:cm-light dark:cm-light flex h-full w-full flex-col items-stretch ͼk ͼy" dir="ltr" id="bkmrk-mbpoll--m-rtu--b-960-7"><div class="cm-scroller"><div class="cm-content q9tKkq_readonly">mbpoll <span class="ͼu">-m</span> rtu <span class="ͼu">-b</span> <span class="ͼq">9600</span> <span class="ͼu">-P</span> none <span class="ͼu">-s</span> <span class="ͼq">2</span> \  
<span class="ͼu">-t</span> <span class="ͼq">3</span>:float <span class="ͼu">-B</span> <span class="ͼu">-0</span> \  
<span class="ͼu">-r</span> 0x2012 <span class="ͼu">-c</span> <span class="ͼq">1</span> \  
/dev/ttyUSB0 <span class="ͼu">-a</span> <span class="ͼq">1</span> <span class="ͼu">-1</span></div></div></div></div></div></div></div></div><div class=""><div class="">  
</div></div></div></div></div>---

## 🔹 Frequency (Hz)

Register: `0x2044`

<div class="relative w-full my-4" id="bkmrk-mbpoll--m-rtu--b-960-8"><div class=""><div class="relative"><div class="h-full min-h-0 min-w-0"><div class="h-full min-h-0 min-w-0"><div class="border corner-superellipse/1.1 border-token-border-light bg-token-bg-elevated-secondary rounded-3xl"><div class="corner-superellipse/1.1 rounded-3xl bg-token-bg-elevated-secondary"><div class="relative z-0 flex max-w-full"><div class="q9tKkq_viewer cm-editor z-10 light:cm-light dark:cm-light flex h-full w-full flex-col items-stretch ͼk ͼy" dir="ltr" id="bkmrk-mbpoll--m-rtu--b-960-9"><div class="cm-scroller"><div class="cm-content q9tKkq_readonly">mbpoll <span class="ͼu">-m</span> rtu <span class="ͼu">-b</span> <span class="ͼq">9600</span> <span class="ͼu">-P</span> none <span class="ͼu">-s</span> <span class="ͼq">2</span> \  
<span class="ͼu">-t</span> <span class="ͼq">3</span>:float <span class="ͼu">-B</span> <span class="ͼu">-0</span> \  
<span class="ͼu">-r</span> 0x2044 <span class="ͼu">-c</span> <span class="ͼq">1</span> \  
/dev/ttyUSB0 <span class="ͼu">-a</span> <span class="ͼq">1</span> <span class="ͼu">-1</span></div></div></div></div></div></div></div></div><div class=""><div class="">  
</div></div></div></div></div>---

## 🔹 Total Active Energy (kWh)

Register: `0x4000`

<div class="relative w-full my-4" id="bkmrk-mbpoll--m-rtu--b-960-10"><div class=""><div class="relative"><div class="h-full min-h-0 min-w-0"><div class="h-full min-h-0 min-w-0"><div class="border corner-superellipse/1.1 border-token-border-light bg-token-bg-elevated-secondary rounded-3xl"><div class="corner-superellipse/1.1 rounded-3xl bg-token-bg-elevated-secondary"><div class="relative z-0 flex max-w-full"><div class="q9tKkq_viewer cm-editor z-10 light:cm-light dark:cm-light flex h-full w-full flex-col items-stretch ͼk ͼy" dir="ltr" id="bkmrk-mbpoll--m-rtu--b-960-11"><div class="cm-scroller"><div class="cm-content q9tKkq_readonly">mbpoll <span class="ͼu">-m</span> rtu <span class="ͼu">-b</span> <span class="ͼq">9600</span> <span class="ͼu">-P</span> none <span class="ͼu">-s</span> <span class="ͼq">2</span> \  
<span class="ͼu">-t</span> <span class="ͼq">3</span>:float <span class="ͼu">-B</span> <span class="ͼu">-0</span> \  
<span class="ͼu">-r</span> 0x4000 <span class="ͼu">-c</span> <span class="ͼq">1</span> \  
/dev/ttyUSB0 <span class="ͼu">-a</span> <span class="ͼq">1</span> <span class="ͼu">-1</span></div></div></div></div></div></div></div></div><div class=""><div class="">  
</div></div></div></div></div>---

# 🔁 Continuous Polling Example (Every 5 Seconds)

<div class="relative w-full my-4" id="bkmrk-mbpoll--m-rtu--b-960-12"><div class=""><div class="relative"><div class="h-full min-h-0 min-w-0"><div class="h-full min-h-0 min-w-0"><div class="border corner-superellipse/1.1 border-token-border-light bg-token-bg-elevated-secondary rounded-3xl"><div class="corner-superellipse/1.1 rounded-3xl bg-token-bg-elevated-secondary"><div class="relative z-0 flex max-w-full"><div class="q9tKkq_viewer cm-editor z-10 light:cm-light dark:cm-light flex h-full w-full flex-col items-stretch ͼk ͼy" dir="ltr" id="bkmrk-mbpoll--m-rtu--b-960-13"><div class="cm-scroller"><div class="cm-content q9tKkq_readonly">mbpoll <span class="ͼu">-m</span> rtu <span class="ͼu">-b</span> <span class="ͼq">9600</span> <span class="ͼu">-P</span> none <span class="ͼu">-s</span> <span class="ͼq">2</span> \  
<span class="ͼu">-t</span> <span class="ͼq">3</span>:float <span class="ͼu">-B</span> <span class="ͼu">-0</span> \  
<span class="ͼu">-r</span> 0x2006 <span class="ͼu">-c</span> <span class="ͼq">1</span> \  
<span class="ͼu">-l</span> <span class="ͼq">5000</span> \  
/dev/ttyUSB0 <span class="ͼu">-a</span> <span class="ͼq">1</span></div></div></div></div></div></div></div></div><div class=""><div class="">  
</div></div></div></div></div>---

# 🔢 Change Slave Address (Only One Meter Connected)

⚠ Use Holding Registers (Function 03) for configuration.

Register: `0x002E`

<div class="relative w-full my-4" id="bkmrk-mbpoll--m-rtu--b-960-14"><div class=""><div class="relative"><div class="h-full min-h-0 min-w-0"><div class="h-full min-h-0 min-w-0"><div class="border corner-superellipse/1.1 border-token-border-light bg-token-bg-elevated-secondary rounded-3xl"><div class="corner-superellipse/1.1 rounded-3xl bg-token-bg-elevated-secondary"><div class="relative z-0 flex max-w-full"><div class="q9tKkq_viewer cm-editor z-10 light:cm-light dark:cm-light flex h-full w-full flex-col items-stretch ͼk ͼy" dir="ltr" id="bkmrk-mbpoll--m-rtu--b-960-15"><div class="cm-scroller"><div class="cm-content q9tKkq_readonly">mbpoll <span class="ͼu">-m</span> rtu <span class="ͼu">-b</span> <span class="ͼq">9600</span> <span class="ͼu">-P</span> none <span class="ͼu">-s</span> <span class="ͼq">2</span> \  
<span class="ͼu">-t</span> <span class="ͼq">4</span>:int16 <span class="ͼu">-0</span> \  
<span class="ͼu">-r</span> 0x002E \  
/dev/ttyUSB0 <span class="ͼu">-a</span> <span class="ͼq">1</span> <span class="ͼu">-W</span> <span class="ͼu">--</span> <span class="ͼq">5</span></div></div></div></div></div></div></div></div><div class=""><div class="">  
</div></div></div></div></div>Changes slave ID from 1 → 5.

---

# 🧪 Quick Communication Test

Fastest health check:

<div class="relative w-full my-4" id="bkmrk-mbpoll--m-rtu--b-960-16"><div class=""><div class="relative"><div class="h-full min-h-0 min-w-0"><div class="h-full min-h-0 min-w-0"><div class="border corner-superellipse/1.1 border-token-border-light bg-token-bg-elevated-secondary rounded-3xl"><div class="corner-superellipse/1.1 rounded-3xl bg-token-bg-elevated-secondary"><div class="relative z-0 flex max-w-full"><div class="q9tKkq_viewer cm-editor z-10 light:cm-light dark:cm-light flex h-full w-full flex-col items-stretch ͼk ͼy" dir="ltr" id="bkmrk-mbpoll--m-rtu--b-960-17"><div class="cm-scroller"><div class="cm-content q9tKkq_readonly">mbpoll <span class="ͼu">-m</span> rtu <span class="ͼu">-b</span> <span class="ͼq">9600</span> <span class="ͼu">-P</span> none <span class="ͼu">-s</span> <span class="ͼq">2</span> \  
<span class="ͼu">-t</span> <span class="ͼq">3</span>:float <span class="ͼu">-B</span> <span class="ͼu">-0</span> \  
<span class="ͼu">-r</span> 0x2006 <span class="ͼu">-c</span> <span class="ͼq">1</span> \  
/dev/ttyUSB0 <span class="ͼu">-a</span> <span class="ͼq">1</span> <span class="ͼu">-1</span></div></div></div></div></div></div></div></div><div class=""><div class="">  
</div></div></div></div></div>If you see ~230V → communication confirmed.

---

# 🚨 Troubleshooting Quick Guide

<div class="TyagGW_tableContainer" id="bkmrk-symptom-likely-cause"><div class="group TyagGW_tableWrapper flex flex-col-reverse w-fit" tabindex="-1"><table class="w-fit min-w-(--thread-content-width)" data-end="2994" data-start="2743"><thead data-end="2769" data-start="2743"><tr data-end="2769" data-start="2743"><th class="" data-col-size="sm" data-end="2753" data-start="2743">Symptom</th><th class="" data-col-size="sm" data-end="2769" data-start="2753">Likely Cause</th></tr></thead><tbody data-end="2994" data-start="2798"><tr data-end="2835" data-start="2798"><td data-col-size="sm" data-end="2808" data-start="2798">Timeout</td><td data-col-size="sm" data-end="2835" data-start="2808">Wrong address or wiring</td></tr><tr data-end="2876" data-start="2836"><td data-col-size="sm" data-end="2850" data-start="2836">4200+ volts</td><td data-col-size="sm" data-end="2876" data-start="2850">Reading wrong register</td></tr><tr data-end="2911" data-start="2877"><td data-col-size="sm" data-end="2892" data-start="2877">-8192 values</td><td data-col-size="sm" data-end="2911" data-start="2892">Wrong data type</td></tr><tr data-end="2947" data-start="2912"><td data-col-size="sm" data-end="2931" data-start="2912">Nonsense numbers</td><td data-col-size="sm" data-end="2947" data-start="2931">Missing `-B`</td></tr><tr data-end="2994" data-start="2948"><td data-col-size="sm" data-end="2968" data-start="2948">No `/dev/ttyUSB0`</td><td data-col-size="sm" data-end="2994" data-start="2968">USB‑RS485 not detected</td></tr></tbody></table>

</div></div>