An unofficial summary of facts (addresses, types, units, scaling) from the maker's manual. Not affiliated with the maker; values can differ by firmware or model. Always check the device manual before writing (run commands, settings).
Default communication
| Protocol | Modbus RTU |
|---|---|
| Baud (factory) | 9600 bps — options: 2400, 4800, 9600, 19200, 38400 |
| Data · parity · stop | 8 · None · 1 |
| Slave ID (factory) | 1 (1~247) |
| 32-bit order | ABCD |
| Manual address style | 40001/30001 style (wire address + 1, first digit = table) |
- The document lists 30001/40001-style numbers with a 'Modbus Protocol Start Address Hex' column (30001 ↔ 00 00, 40003 ↔ 00 02). Wire address = number − 30001 / − 40001; 461457 uses − 400001 (PDF p.3-10). No printed page numbers, so refs are PDF pages.
- Addressing confirmed by the frame examples in 3.8-3.9: read Volts 1 01 04 00 00 00 02 71 CB → 01 04 04 43 66 33 34 1B 38 (230.2) (PDF p.22-23); read Demand Time 01 03 00 00 00 02 C4 0B → 01 03 04 3F 80 00 00 F7 CF (1.0) (PDF p.23-24); write Demand Period 60 01 10 00 02 00 02 04 42 70 00 00 67 D5 → 01 10 00 02 00 02 E0 08 (PDF p.24-25). With the exception 01 90 01 8D C0 and diagnostic 01 08 00 00 AA 55 5E 94, CRC recomputed and correct for all eight frames.
- Default is most significant register first (PDF p.2; example 43 66 33 34 = 230.2). The document says this can be changed via a 'Register Order' holding register, but that register is not in the table.
- Defaults 9600 bps, 1 stop bit, no parity, address 1 (PDF p.9-10, 40019/40021/40029). Address change takes effect after restart.
- The read limit differs within the document: '50 values (100 registers)' vs '40 parameters or less' (PDF p.3). Staying at 40 parameters (80 registers) or fewer is safe.
Registers (40)
«Wire» is the 0-based address in the request frame (PortDock's «0-based» notation). Value = raw × scale. Table: HR holding register, IR input register, CO coil, DI discrete input. Function codes in hex.
Swipe the table sideways — the first column (manual address) stays put.
| Manual | Wire | Table | Name | Type | Unit · scale | R/W | FC | Details |
|---|---|---|---|---|---|---|---|---|
| 30001 | 0 (0x0000) | IR | Phase 1 line-to-neutral voltage | F32 ABCD | V | R | 04 | PDF p.3 |
| 30003 | 2 (0x0002) | IR | Phase 2 line-to-neutral voltage | F32 ABCD | V | R | 04 | PDF p.3 |
| 30005 | 4 (0x0004) | IR | Phase 3 line-to-neutral voltage | F32 ABCD | V | R | 04 | PDF p.3 |
| 30007 | 6 (0x0006) | IR | Phase 1 current | F32 ABCD | A | R | 04 | PDF p.3 |
| 30009 | 8 (0x0008) | IR | Phase 2 current | F32 ABCD | A | R | 04 | PDF p.3 |
| 30011 | 10 (0x000A) | IR | Phase 3 current | F32 ABCD | A | R | 04 | PDF p.3 |
| 30013 | 12 (0x000C) | IR | Phase 1 active power | F32 ABCD | W | R | 04 | PDF p.3 |
| 30015 | 14 (0x000E) | IR | Phase 2 active power | F32 ABCD | W | R | 04 | PDF p.3 |
| 30017 | 16 (0x0010) | IR | Phase 3 active power | F32 ABCD | W | R | 04 | PDF p.3 |
| 30031 | 30 (0x001E) | IR | Phase 1 power factor | F32 ABCD | R | 04 | Sign shows current direction (+ forward, − reverse) PDF p.4 | |
| 30033 | 32 (0x0020) | IR | Phase 2 power factor | F32 ABCD | R | 04 | PDF p.4 | |
| 30035 | 34 (0x0022) | IR | Phase 3 power factor | F32 ABCD | R | 04 | PDF p.4 | |
| 30043 | 42 (0x002A) | IR | Average line-to-neutral voltage | F32 ABCD | V | R | 04 | PDF p.4 |
| 30049 | 48 (0x0030) | IR | Sum of line currents | F32 ABCD | A | R | 04 | PDF p.4 |
| 30053 | 52 (0x0034) | IR | Total system power | F32 ABCD | W | R | 04 | PDF p.4 |
| 30057 | 56 (0x0038) | IR | Total system volt-amps | F32 ABCD | VA | R | 04 | PDF p.4 |
| 30061 | 60 (0x003C) | IR | Total system VAr | F32 ABCD | VAr | R | 04 | PDF p.4 |
| 30063 | 62 (0x003E) | IR | Total system power factor | F32 ABCD | R | 04 | PDF p.4 | |
| 30071 | 70 (0x0046) | IR | Frequency | F32 ABCD | Hz | R | 04 | PDF p.4 |
| 30073 | 72 (0x0048) | IR | Total import active energy | F32 ABCD | kWh | R | 04 | PDF p.4 |
| 30075 | 74 (0x004A) | IR | Total export active energy | F32 ABCD | kWh | R | 04 | PDF p.4 |
| 30077 | 76 (0x004C) | IR | Total import reactive energy | F32 ABCD | kVArh | R | 04 | PDF p.4 |
| 30079 | 78 (0x004E) | IR | Total export reactive energy | F32 ABCD | kVArh | R | 04 | PDF p.4 |
| 30085 | 84 (0x0054) | IR | Total system power demand | F32 ABCD | W | R | 04 | Calculated as import − export PDF p.4 |
| 30201 | 200 (0x00C8) | IR | Line 1 to line 2 voltage | F32 ABCD | V | R | 04 | PDF p.4 |
| 30203 | 202 (0x00CA) | IR | Line 2 to line 3 voltage | F32 ABCD | V | R | 04 | PDF p.4 |
| 30205 | 204 (0x00CC) | IR | Line 3 to line 1 voltage | F32 ABCD | V | R | 04 | PDF p.4 |
| 30225 | 224 (0x00E0) | IR | Neutral current | F32 ABCD | A | R | 04 | PDF p.4 |
| 30343 | 342 (0x0156) | IR | Total active energy | F32 ABCD | kWh | R | 04 | Import + export PDF p.5 |
| 30345 | 344 (0x0158) | IR | Total reactive energy | F32 ABCD | kVArh | R | 04 | Import + export PDF p.5 |
| 40003 | 2 (0x0002) | HR | Demand period | F32 ABCD | min | R/W | 03·10 | 0 = 0 (shows present value) · 5 = 5 · 8 = 8 · 10 = 10 · 15 = 15 · 20 = 20 · 30 = 30 · 60 = 60 (default) PDF p.8-9 |
| 40011 | 10 (0x000A) | HR | System type | F32 ABCD | R/W | 03·10 | Requires password (40025) first 1 = 1P2W · 3 = 3P4W · 4 = 1P3W PDF p.9 | |
| 40013 | 12 (0x000C) | HR | Pulse 1 width | F32 ABCD | ms | R/W | 03·10 | 60 = 60 ms · 100 = 100 ms (default) · 200 = 200 ms PDF p.9 |
| 40019 | 18 (0x0012) | HR | Network parity and stop bits | F32 ABCD | R/W | 03·10 | 0 = 1 stop bit, no parity (default) · 1 = 1 stop bit, even parity · 2 = 1 stop bit, odd parity · 3 = 2 stop bits, no parity PDF p.9 | |
| 40021 | 20 (0x0014) | HR | Network node address | F32 ABCD | R/W | 03·10 | Default 1; effective after restart Range 1 ~ 247 PDF p.9 | |
| 40023 | 22 (0x0016) | HR | Pulse 1 divisor | F32 ABCD | R/W | 03·10 | 0 = 400 imp/kWh (kVArh) · 1 = 100 imp/kWh (kVArh) · 2 = 10 imp/kWh (kVArh) · 3 = 1 kWh (kVArh)/imp · 4 = 0.1 imp/kWh (kVArh) · 5 = 0.01 imp/kWh (kVArh) PDF p.10 | |
| 40025 | 24 (0x0018) | HR | Password | F32 ABCD | R/W | 03·10 | Write before changing protected registers; default 1000, times out after 1 minute (PDF p.11) PDF p.10 | |
| 40029 | 28 (0x001C) | HR | Network baud rate | F32 ABCD | R/W | 03·10 | Effective after restart 0 = 2400 bps · 1 = 4800 bps · 2 = 9600 bps (default) · 3 = 19200 bps · 4 = 38400 bps PDF p.10 | |
| 40087 | 86 (0x0056) | HR | Pulse 1 energy type | F32 ABCD | R/W | 03·10 | 1 = Import active energy · 2 = Total active energy · 4 = Export active energy (default) · 5 = Import reactive energy · 6 = Total reactive energy · 8 = Export reactive energy PDF p.10 | |
| 461457 | 61456 (0xF010) | HR | Reset | U16 | W | 10 | 2-byte hex (F0 10) 0 = Reset maximum demand PDF p.10-11 |
Notes
- Left out: 40015 Password Lock (text says 'write any value to lock' but Mode is r), 40059 Scroll time and 40061 Backlight time (description cells mixed with demand-period text), 464513 serial number (unsigned int32, word order not given), 40001 Demand Time (only in the example, not in the table), -2T tariff registers (34877~, 35471~; 35487 appears twice).
- Contradictions in the document: 'Broadcast mode (address 0) is supported' (PDF p.2) vs 'broadcast address not supported' (section 3). 30255 is named total power factor but its unit is Degrees, so it is left out.
- Reading/writing an odd count or odd start address returns an exception (PDF p.2-3).
Read it with PortDock
- Install the free PortDock Modbus Master and connect with the device's settings.
- On the table toolbar, «Device profile…» → pick this device → «Load». Polling tables, names, types and the Slave ID are filled in (optionally the serial settings too).
- Names carry the unit and scale (e.g. «×0.01 Hz»). Values on screen are raw — multiply by the scale.
- To test your program without the device, PortDock Modbus Slave's «Emulate device…» serves the same map with example values.
Download JSON
- eastron/sdm54.json (GitHub raw) · copy on this site · history
- schema.json — format (JSON Schema). table, address (0-based), type and order match the PortDock CSV.
- License: CC BY 4.0 — please cite:
PortDock device register maps, v2026.10 · 09ac1d0b2792, https://portdock.dev/devices/
and this page. LICENSE · data bundle, version and changelog - Found a mistake? Please open a GitHub issue with the manual page.
Sources
- SDM54-M/-2T Smart Meter Modbus Protocol Implementation V1.1 — Zhejiang Eastron Electronic Co., Ltd., 2021 V1.1 (header 'SDM54-M/-2T MODBUS PROTOCOL 2021 V1.1'); file name eastronsdm54-msdm54-2tprotocol.pdf (posted 2025-03-14 on the eastrongroup.com download center) · PDF pp.2-3 overview, pp.3-8 input registers, pp.8-11 holding registers, pp.22-26 frame examples (no printed page numbers) · checked 2026-10-29