# SDM01 Modbus RTU Map

{% hint style="info" %}
**Status:** Stable | **Applies to:** SDM01 Combo ALL | **Updated:** 2026-04-01&#x20;
{% endhint %}

### 1. Applied Product Models

<table><thead><tr><th width="64">#</th><th width="208">Ordering Number</th><th>Description</th></tr></thead><tbody><tr><td>1</td><td><strong>SDM01-TWM-12TS</strong></td><td>SCTA-3×120A/Φ16 Wi-Fi (Tuya LAN+) + RS485</td></tr><tr><td>2</td><td><strong>SDM01-TWM-20TS</strong></td><td>SCTA-3×200A/Φ20 Wi-Fi (Tuya LAN+) + RS485</td></tr><tr><td>3</td><td><strong>SDM01-TWM-12</strong></td><td>SCTA-3×120A/Φ16 Wi-Fi (Tuya) + RS485</td></tr><tr><td>4</td><td><strong>SDM01-TWM-20</strong></td><td>SCTA-3×200A/Φ20 Wi-Fi (Tuya) + RS485</td></tr><tr><td>5</td><td><strong>SDM01-TZM-12</strong></td><td>SCTA-3×120A/Φ16 Zigbee (Tuya) + RS485</td></tr><tr><td>6</td><td><strong>SDM01-TZM-20</strong></td><td>SCTA-3×200A/Φ20 Zigbee (Tuya) + RS485</td></tr><tr><td>7</td><td><strong>SDM01-EWM-12</strong></td><td>SDM01 SCTA-3×120A/Φ16 Wi-Fi (ESP32) + RS485</td></tr><tr><td>8</td><td><strong>SDM01-EWM-20</strong></td><td>SDM01 SCTA-3×200A/Φ20 Wi-Fi (ESP32) + RS485</td></tr><tr><td>9</td><td><strong>SDM01-TZM-12-U01</strong></td><td>SDM01 SCTA-3×120A/Φ16 Zigbee (Std. ZB3.0) + RS485</td></tr><tr><td>10</td><td><strong>SDM01-TZM-20-U01</strong></td><td>SDM01 SCTA-3×200A/Φ20 Zigbee (Std. ZB3.0) + RS485</td></tr></tbody></table>

***

### 2. Physical Layer & Wiring Guide

> **💡 Default Communication Parameters:** **Baud Rate:** 9600 bps | **Data Bits:** 8 | **Parity:** None | **Stop Bits:** 1 | **Default Address:** 247

* **Cable Type:** Twisted pair cable (Shielded highly recommended for industrial environments).
* **Topology:** Bus (Daisy-chain). *Strictly avoid Star or T-branch wiring.*
* **Cable Specification:** AWG 24-16.
* **Maximum Distance:** 800 - 1200m (at 9600 bps).
* **Termination Resistor:** 120Ω (Required at both physical endpoints of the bus).
* **Bus Capacity:** Max 32 nodes per segment (Up to 256 nodes if using 1/8 Unit Load drivers).

<figure><img src="/files/eIXxPCCRjRwnHVAPVfm0" alt=""><figcaption></figcaption></figure>

***

### 3. Modbus Register Map

#### 📌 General Notes for Integrators

* **Function Codes Supported:** `0x03` (Read Holding), `0x04` (Read Input), `0x06` (Write Single), `0x10` (Write Multiple).
* **Endianness (Byte Order):** All `FLOAT32` data types follow **Big-Endian (ABCD)** byte order.
* **Register Offset:** All addresses listed below are **0-based** (Protocol Addresses). If your PLC/Master requires 1-based addressing (e.g., 40001 format), please add `40001` to the DEC address.

#### 3.1 Product Identification

<table><thead><tr><th width="105">Address (DEC)</th><th width="112">Address (HEX)</th><th width="197">Description</th><th>Func Code</th><th width="80">R/W</th><th width="98">Bytes</th><th>Data Type</th><th>Value / Range</th></tr></thead><tbody><tr><td>100</td><td><code>0x0064</code></td><td>Meter Type</td><td>03, 04</td><td>R</td><td>20</td><td>UTF8 String</td><td>"iMeter_3PN" (or Custom)</td></tr><tr><td>110</td><td><code>0x006E</code></td><td>Manufacturer</td><td>03, 04</td><td>R</td><td>20</td><td>UTF8 String</td><td>"The Manufacturer" (or Custom)</td></tr><tr><td>120</td><td><code>0x0078</code></td><td>Product ID</td><td>03, 04</td><td>R</td><td>10</td><td>UTF8 String</td><td>"SDM01x" (or Custom)</td></tr><tr><td>125</td><td><code>0x007D</code></td><td>Serial Number</td><td>03, 04, 10</td><td>R/W</td><td>10</td><td>UTF8 String</td><td>"YYWWZZZZ" (Digits only)</td></tr><tr><td>130</td><td><code>0x0082</code></td><td>Hardware Version</td><td>03, 04</td><td>R</td><td>10</td><td>UTF8 String</td><td>Format: "xxx.xx.xx"</td></tr><tr><td>135</td><td><code>0x0087</code></td><td>Firmware Version</td><td>03, 04</td><td>R</td><td>10</td><td>UTF8 String</td><td>Format: "xxx.xx.xx"</td></tr></tbody></table>

#### 3.2 Basic Metering Data

*Note: All Float32 values occupy 2 Modbus Registers (4 Bytes).*

<table><thead><tr><th width="110">Address (DEC)</th><th width="106">Address (HEX)</th><th width="231">Description</th><th>Func Code</th><th width="75">R/W</th><th>Data Type</th><th>Range</th><th>Unit</th></tr></thead><tbody><tr><td>1000</td><td><code>0x03E8</code></td><td>Voltage A-N</td><td>03, 04</td><td>R</td><td>FLOAT32</td><td>0 - 1000</td><td>V</td></tr><tr><td>1002</td><td><code>0x03EA</code></td><td>Voltage B-N</td><td>03, 04</td><td>R</td><td>FLOAT32</td><td>0 - 1000</td><td>V</td></tr><tr><td>1004</td><td><code>0x03EC</code></td><td>Voltage C-N</td><td>03, 04</td><td>R</td><td>FLOAT32</td><td>0 - 1000</td><td>V</td></tr><tr><td>1006</td><td><code>0x03EE</code></td><td>Current A</td><td>03, 04</td><td>R</td><td>FLOAT32</td><td>0 - 1000</td><td>A</td></tr><tr><td>1008</td><td><code>0x03F0</code></td><td>Current B</td><td>03, 04</td><td>R</td><td>FLOAT32</td><td>0 - 1000</td><td>A</td></tr><tr><td>1010</td><td><code>0x03F2</code></td><td>Current C</td><td>03, 04</td><td>R</td><td>FLOAT32</td><td>0 - 1000</td><td>A</td></tr><tr><td>1012</td><td><code>0x03F4</code></td><td>Active Power A</td><td>03, 04</td><td>R</td><td>FLOAT32</td><td>-1000 - 1000</td><td>kW</td></tr><tr><td>1014</td><td><code>0x03F6</code></td><td>Active Power B</td><td>03, 04</td><td>R</td><td>FLOAT32</td><td>-1000 - 1000</td><td>kW</td></tr><tr><td>1016</td><td><code>0x03F8</code></td><td>Active Power C</td><td>03, 04</td><td>R</td><td>FLOAT32</td><td>-1000 - 1000</td><td>kW</td></tr><tr><td>1018</td><td><code>0x03FA</code></td><td>Reactive Power A</td><td>03, 04</td><td>R</td><td>FLOAT32</td><td>-1000 - 1000</td><td>kVAR</td></tr><tr><td>1020</td><td><code>0x03FC</code></td><td>Reactive Power B</td><td>03, 04</td><td>R</td><td>FLOAT32</td><td>-1000 - 1000</td><td>kVAR</td></tr><tr><td>1022</td><td><code>0x03FE</code></td><td>Reactive Power C</td><td>03, 04</td><td>R</td><td>FLOAT32</td><td>-1000 - 1000</td><td>kVAR</td></tr><tr><td>1024</td><td><code>0x0400</code></td><td>Apparent Power A</td><td>03, 04</td><td>R</td><td>FLOAT32</td><td>-1000 - 1000</td><td>kVA</td></tr><tr><td>1026</td><td><code>0x0402</code></td><td>Apparent Power B</td><td>03, 04</td><td>R</td><td>FLOAT32</td><td>-1000 - 1000</td><td>kVA</td></tr><tr><td>1028</td><td><code>0x0404</code></td><td>Apparent Power C</td><td>03, 04</td><td>R</td><td>FLOAT32</td><td>-1000 - 1000</td><td>kVA</td></tr><tr><td>1030</td><td><code>0x0406</code></td><td>Power Factor A</td><td>03, 04</td><td>R</td><td>FLOAT32</td><td>-1.0 - 1.0</td><td>-</td></tr><tr><td>1032</td><td><code>0x0408</code></td><td>Power Factor B</td><td>03, 04</td><td>R</td><td>FLOAT32</td><td>-1.0 - 1.0</td><td>-</td></tr><tr><td>1034</td><td><code>0x040A</code></td><td>Power Factor C</td><td>03, 04</td><td>R</td><td>FLOAT32</td><td>-1.0 - 1.0</td><td>-</td></tr><tr><td>1036</td><td><code>0x040C</code></td><td>Average Voltage L-N</td><td>03, 04</td><td>R</td><td>FLOAT32</td><td>0 - 1000</td><td>V</td></tr><tr><td>1038</td><td><code>0x040E</code></td><td>Average Line Current</td><td>03, 04</td><td>R</td><td>FLOAT32</td><td>0 - 1000</td><td>A</td></tr><tr><td>1040</td><td><code>0x0410</code></td><td>Unbalanced Line Currents</td><td>03, 04</td><td>R</td><td>FLOAT32</td><td>-300 - 300</td><td>%</td></tr><tr><td>1042</td><td><code>0x0412</code></td><td>Total Line Currents</td><td>03, 04</td><td>R</td><td>FLOAT32</td><td>0 - 3000</td><td>A</td></tr><tr><td>1044</td><td><code>0x0414</code></td><td>Total Active Power</td><td>03, 04</td><td>R</td><td>FLOAT32</td><td>-3000 - 3000</td><td>kW</td></tr><tr><td>1046</td><td><code>0x0416</code></td><td>Total Reactive Power</td><td>03, 04</td><td>R</td><td>FLOAT32</td><td>-3000 - 3000</td><td>kVAR</td></tr><tr><td>1048</td><td><code>0x0418</code></td><td>Total Apparent Power</td><td>03, 04</td><td>R</td><td>FLOAT32</td><td>-3000 - 3000</td><td>kVA</td></tr><tr><td>1050</td><td><code>0x041A</code></td><td>Total Power Factor</td><td>03, 04</td><td>R</td><td>FLOAT32</td><td>-1.0 - 1.0</td><td>-</td></tr><tr><td>1052</td><td><code>0x041C</code></td><td>Frequency</td><td>03, 04</td><td>R</td><td>FLOAT32</td><td>0 - 1000</td><td>Hz</td></tr><tr><td>1054</td><td><code>0x041E</code></td><td>Total Import Active Energy</td><td>03, 04</td><td>R</td><td>FLOAT32</td><td>±1,999,999,999</td><td>kWh</td></tr><tr><td>1056</td><td><code>0x0420</code></td><td>Total Export Active Energy</td><td>03, 04</td><td>R</td><td>FLOAT32</td><td>±1,999,999,999</td><td>kWh</td></tr><tr><td>1058</td><td><code>0x0422</code></td><td>Total Import &#x26; Export Active Energy</td><td>03, 04</td><td>R</td><td>FLOAT32</td><td>±1,999,999,999</td><td>kWh</td></tr><tr><td>1060</td><td><code>0x0424</code></td><td>Phase A Import Active Energy</td><td>03, 04</td><td>R</td><td>FLOAT32</td><td>±1,999,999,999</td><td>kWh</td></tr><tr><td>1062</td><td><code>0x0426</code></td><td>Phase A Export Active Energy</td><td>03, 04</td><td>R</td><td>FLOAT32</td><td>±1,999,999,999</td><td>kWh</td></tr><tr><td>1064</td><td><code>0x0428</code></td><td>Phase A Import &#x26; Export Active Energy</td><td>03, 04</td><td>R</td><td>FLOAT32</td><td>±1,999,999,999</td><td>kWh</td></tr><tr><td>1066</td><td><code>0x042A</code></td><td>Phase B Import Active Energy</td><td>03, 04</td><td>R</td><td>FLOAT32</td><td>±1,999,999,999</td><td>kWh</td></tr><tr><td>1068</td><td><code>0x042C</code></td><td>Phase B Export Active Energy</td><td>03, 04</td><td>R</td><td>FLOAT32</td><td>±1,999,999,999</td><td>kWh</td></tr><tr><td>1070</td><td><code>0x042E</code></td><td>Phase B Import &#x26; Export Active Energy</td><td>03, 04</td><td>R</td><td>FLOAT32</td><td>±1,999,999,999</td><td>kWh</td></tr><tr><td>1072</td><td><code>0x0430</code></td><td>Phase C Import Active Energy</td><td>03, 04</td><td>R</td><td>FLOAT32</td><td>±1,999,999,999</td><td>kWh</td></tr><tr><td>1074</td><td><code>0x0432</code></td><td>Phase C Export Active Energy</td><td>03, 04</td><td>R</td><td>FLOAT32</td><td>±1,999,999,999</td><td>kWh</td></tr><tr><td>1076</td><td><code>0x0434</code></td><td>Phase C Import &#x26; Export Active Energy</td><td>03, 04</td><td>R</td><td>FLOAT32</td><td>±1,999,999,999</td><td>kWh</td></tr></tbody></table>

#### 3.3 RS485 Communication Settings

<table><thead><tr><th width="102">Address (DEC)</th><th width="111">Address (HEX)</th><th width="161">Description</th><th>Func Code</th><th>R/W</th><th>Data Type</th><th>Value Mapping</th><th>Default</th></tr></thead><tbody><tr><td>6000</td><td><code>0x1770</code></td><td>Modbus Address</td><td>03, 04, 06, 10</td><td>R/W</td><td>UINT16</td><td><code>1 - 246</code> (Valid Node IDs)</td><td><code>247</code></td></tr><tr><td>6001</td><td><code>0x1771</code></td><td>Baud Rate</td><td>03, 04, 06, 10</td><td>R/W</td><td>UINT16</td><td><code>0</code> = 9600<br><code>1</code> = 2400<br><code>2</code> = 4800<br><code>3</code> = 9600<br><code>4</code> = 19200<br><code>5</code> = 38400</td><td><code>0</code> (9600 bps)</td></tr><tr><td>6002</td><td><code>0x1772</code></td><td>Parity / Stop Bits</td><td>03, 04, 06, 10</td><td>R/W</td><td>UINT16</td><td><code>0</code> = N, 8, 1<br><code>1</code> = E, 8, 1<br><code>2</code> = O, 8, 1<br><code>3</code> = N, 8, 2</td><td><code>0</code> (N, 8, 1)</td></tr></tbody></table>

***

### 4. Control & Broadcast Commands

#### 4.1 Device Specific Commands (Unicast)

Send these commands to a specific device's Modbus address.

| Address (DEC) | Address (HEX) | Description                            | Func Code | R/W | Data Type | Write Value      |
| ------------- | ------------- | -------------------------------------- | --------- | --- | --------- | ---------------- |
| 10000         | `0x2710`      | Trigger LED Blinking (Device Locating) | 06        | W   | UINT16    | `0x5055` (20565) |
| 10001         | `0x2711`      | Reset Energy Accumulators              | 06        | W   | UINT16    | `0x51AA` (20906) |

> 🔍 **Feature: Device Locating via LED** When multiple meters are installed in a dense electrical panel, send `0x5055` to a specific device's Slave ID. The target meter's **LED will blink rapidly for 15 seconds**, allowing field engineers to visually identify the physical device corresponding to that IP/Slave ID.

#### 4.2 Broadcast Address Assignment

Send this command to **Broadcast Address `0`**.

<table><thead><tr><th width="106.39996337890625">Address (DEC)</th><th width="104">Address (HEX)</th><th width="120.7999267578125">Description</th><th width="85.5999755859375">Func Code</th><th width="75.2000732421875">R/W</th><th width="124.7999267578125">Data Type</th><th>Write Value</th></tr></thead><tbody><tr><td>30000</td><td><code>0x7530</code></td><td>Assign Modbus Address (Button Triggered)</td><td>10</td><td>W</td><td>2× UINT16</td><td><code>0x55AA</code> + <code>[New Address]</code></td></tr></tbody></table>

> **🛠️ How to use Broadcast Address Assignment:** This feature allows quick commissioning without needing to wire devices one by one.
>
> 1. The Host PLC sends a broadcast write command (Slave ID = `0`) to register `30000`.
> 2. The payload must be 2 words (4 bytes): `0x55AA` followed by the `[New Address]` (e.g., `0x0005`).
> 3. **Action:** Only the meter that currently has its **physical reset button pressed** will accept this command and update its address. All other meters on the bus will ignore it.

***

### 5. Compatible Meter Emulation

To ensure seamless integration with existing Home Energy Management Systems (EMS) automation applications - such Dynamic Load Balancing and Export limiting, the SDM01 series features **automatic register mapping emulation** for the standard versions of industry-leading meters.

The compatibility depends on the specific SDM01 model series, as detailed in the table below:

| SDM01 Model Series                                                      | Compatible Emulation (Standard Versions)                   |
| ----------------------------------------------------------------------- | ---------------------------------------------------------- |
| <p><strong>SDM01-TWM-</strong>\* <br><strong>SDM01-TZM-</strong>\*</p>  | <p>• Eastron SDM630MCT<br>• ABB B23</p>                    |
| <p><strong>SDM01-EWM-</strong>*<br><strong>SDM01-TZM-*-U01</strong></p> | <p>• Eastron SDM630MCT<br>• ABB B23<br>• CHINT DTSU666</p> |

**Scope of Emulation:** This emulation covers all commonly used core electrical parameters. If your PLC, SCADA, or automation system already has a built-in driver or template for the meters above, you can connect the SDM01 and read data directly without modifying your Modbus polling profiles.

The seamlessly mapped parameters include:

* **Voltage (U) & Current (I)** (Per phase)
* **Power** (Per phase Active Power and Total Active Power)
* **Energy** (Per phase Forward Active Energy and the Total Value, Per phase Reserve Active Energy and the Total Value)

*(Note: Emulation focuses on standard metering data. Manufacturer-specific diagnostic or hardware configuration registers are not included. **Important:** In solar export limiting applications, brands like Eastron and CHINT frequently supply customized models to specific inverter manufacturers. These custom versions may have modified register maps that are incompatible with the standard common registers. If you are unsure about the compatibility of your specific meter version, please contact the document maintainer for confirmation.)*<br>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.bituo-technik.com/device-api/sdm01-modbus-rtu-map.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
