Read voltage, current, power, power factor, frequency and energy from an Eastron SDM120 single-phase energy meter over Modbus RTU. This guide gives the full register map, FLOAT32 decoding, the FC04 input-register detail that trips people up, the default 2400-baud settings — and how to get live data with ModbusManager on Windows. Covers the SDM120M, SDM120CT and the closely related SDM220 and SDM230.
Windows 10/11 · Modbus RTU & TCP · one-time license
The Eastron SDM120 is probably the most installed single-phase DIN-rail Modbus energy meter in the world — one module wide, MID-certified variants, 45 A direct connection (or CT-operated as the SDM120CT) and a compact register map covering voltage, current, power and bidirectional energy. EV charger installations, solar export limiting, tenant sub-metering and heat-pump monitoring all lean on it. Its bigger siblings SDM220 and SDM230 share the same protocol style, and if you can read an SDM120 you can read the three-phase SDM630 too — same FLOAT32, two-registers-per-value pattern.
A free ModbusManager workspace that polls the whole SDM120 measurement block over FC04, decodes every value as FLOAT32 and shows a live dashboard — voltage, power and current gauges, power factor, frequency, import/export and total energy, plus a live power trend. Load it, set your meter’s slave ID and serial settings, and you are reading in under a minute.
Open via File › Open Workspace. The dashboard uses the tag engine, which is a Pro feature — the poll windows and register grid work in Standard too. ⚠ Default poll assumes slave ID 1; adjust in the poll window if your meter uses another address.
The SDM120 talks Modbus RTU over its 2-wire RS-485 terminals. Factory defaults below — all of them can be changed from the front-button set-up menu or by writing the holding registers.
| Setting | Default / options |
|---|---|
| Protocol | Modbus RTU, 2-wire RS-485 |
| Slave address | 1 (range 1–247) |
| Baud rate | 2400 default · options 1200–38400 depending on variant |
| Frame | 8 data bits, no parity · 1 stop bit on most units, 2 stop bits on some batches — check the set-up menu if you get CRC errors |
| Read measurements | FC04 (input registers), values as FLOAT32 register pairs |
| Read / write settings | FC03 read, FC16 write (holding registers) |
| Request limits | Start address and quantity must be even; max 40 values (80 registers) per request |
Every value is an IEEE 754 FLOAT32 held in two consecutive input registers, read with FC04. Addresses below are the documentation form (3xxxx) with the on-wire hex offset — ModbusManager accepts either with the Base 0/1 selector.
| Register | Hex offset | Parameter | Unit |
|---|---|---|---|
| 30001 | 0x0000 | Voltage | V |
| 30007 | 0x0006 | Current | A |
| 30013 | 0x000C | Active power | W |
| 30019 | 0x0012 | Apparent power | VA |
| 30025 | 0x0018 | Reactive power | VAr |
| 30031 | 0x001E | Power factor | – |
| 30071 | 0x0046 | Frequency | Hz |
| 30073 | 0x0048 | Import active energy | kWh |
| 30075 | 0x004A | Export active energy | kWh |
| 30077 | 0x004C | Import reactive energy | kvarh |
| 30079 | 0x004E | Export reactive energy | kvarh |
| 30343 | 0x0156 | Total active energy | kWh |
| 30345 | 0x0158 | Total reactive energy | kvarh |
Set-up lives in holding registers (FC03/FC16, also FLOAT32 pairs): 40021 / 0x0014 meter address, 40029 / 0x001C baud rate, plus relay-pulse and display options depending on variant. Write one parameter per message; some changes need a power cycle.
Wire A/B from your USB-RS485 adapter to terminals 9 (B-) and 10 (A+), open ModbusManager › Connect › RTU, pick the COM port and set 2400 baud, 8N1, slave ID 1 (or your meter’s settings).
Create a poll window: function code 04, start address 30001 (Base 1) or 0 (Base 0), quantity 80. The grid fills with raw registers — select the Float32 display column and real voltages and watts appear.
Skip the setup: open the free SDM120 workspace above. Polls, FLOAT32 tags and a live dashboard with gauges and a power trend are pre-configured — just match the slave ID and serial settings.
ModbusManager reads any SDM120 register directly, with built-in FLOAT32 decoding so you do not combine register pairs by hand, and a serial monitor to see every frame. The Standard edition ($49) covers polling, scaling and the serial monitor. The Pro edition ($119) adds drag-and-drop Modbus HMI software, a data logging Historian with CSV export for energy and load profiling, and an alarm system — all running locally on Windows, with no SCADA server or cloud account.
We use Google Analytics cookies to see how the site is used. You can accept or decline — declining keeps analytics off. See our Privacy Policy.