meta data for this page
This is an old revision of the document!
LamaPLC: Eastron SDM 230 with Modbus Communication
The Eastron SDM230 Modbus MID 1-phase kWh meter is ideal for the precise monitoring of, for example, a solar panel system, a charging station, a heat pump, or another 1-phase group of your choice. On the illuminated LCD screen, you can immediately see how many kWh the respective system consumes or produces, and it is used for official registration and billing of the measurement data. For example, if you want to bill a tenant for the electricity consumption of a specific room.
Key Features
- Measurement: Measures various parameters, including active energy (kWh), reactive energy (kVArh), power (kW, kVAr, kVA), voltage, current, frequency, and power factor.
- Bi-directional Energy: Supports bi-directional energy measurement (import and export), making it suitable for solar PV and battery storage applications.
- Direct Connection: Designed for a maximum 100A direct connection, eliminating the need for external current transformers (CTs).
- Display: Features a blue-backlit LCD screen for easy reading of data.
- Communication: Includes two pulse outputs and a communication port (RS485 Modbus or M-Bus, depending on the model) for remote monitoring and integration with building management systems (BMS) or SCADA systems. Some models also offer Wi-Fi or LoRaWAN communication options.
- Certification: Many variants are MID-certified (Class B EN50470-3), making them suitable for billing applications.
- Design: Compact design (two modules wide, 36mm) for DIN rail mounting.
Technical Specifications
According to Eastron Europe and Camax.co.uk, the general specifications are as follows:
| Specification | Detail |
|---|---|
| Nominal Voltage (Un) | 230V AC (range 176~276V AC) |
| Base Current (Ib) | 10A |
| Max. Current (Imax) | 100A |
| Frequency | 50/60 Hz (±10%) |
| Accuracy | Active Energy: Class 1 (IEC62053-21) / Class B (EN50470-3) |
| Power Consumption | <2W/10VA |
| Operating Temperature | -25°C to +55°C |
| Mounting | 35mm DIN rail |
| IP Rating | IP51 (indoor) |
Eastron SDM 230 Versions
The differences between versions of the Eastron SDM230 primarily involve physical wiring updates, communication defaults, and enhanced firmware features relating to energy measurement.
| Feature | SDM230 V1 | SDM230 V2 & V3 |
|---|---|---|
| Physical Wiring Layout | Non-standard. Live In/Out at the top; Neutral In/Out at the bottom. | Standard. Live and Neutral In at the top; Live and Neutral Out at the bottom. |
| Energy Calculation | Basic energy measurement mode. | Enhanced “Net-counting” (better for solar/bidirectional energy). |
| Exported Energy | Limited export recording capability. | Separate and reliable measurement of exported energy (kWh). |
| Default Baud Rate | Often defaults to 2400 bps. | Often defaults to 9600 bps (configurable). |
| Resettable Energy | Single total energy counter. | Includes a second, user-resettable total energy counter. |
| Certifications | Older certifications | Updated MID certification options available |
| Firmware Date | Older builds | Recent builds (typically post-2018 for V2/V3) |
If you'd like to support the development of the site with the price of a coffee — or a few — please do so here.
Here's a handy tip: you can quickly save this page as a PDF by clicking “export to PDF” in the menu on the right side of the screen.
Modbus communication
Read Limits: Do not attempt to read more than 40 parameters (80 registers) in a single Modbus request to avoid exception errors.
RS485 communication interface, MODBUS RTU protocol:
- Baudrate: 9600 Baud (default, can be set)
- Parity: Even
- Databits: 8
- Stopbits: 1
- Default slave ID: 1 (SMD72D), 45 (SDM72CTM)
- Number of Drivers and Receivers: 32 Drivers, 32 Receivers (without repeater)
- Maximum Cable Length: 1200 m
- Maximum Data Rate: 10 Mbaud
- Maximum Common Mode Voltage: 12 V .. –7 V
- Minimum Driver Output Levels (Loaded): +/– 1.5 V
- Minimum Driver Output Levels (Unloaded): +/– 6 V
- Drive Load: Minimum 60 ohms
- Driver Output Short Circuit Current Limit: 150 mA to Gnd, 250 mA to 12 V, 250 mA to -7 V
- Minimum Receiver Input Resistance: 12 kΩ
- Receiver Sensitivity: +/- 200 mV
Convert word array to real array
The Input registers are in a word format and must be converted into real numbers in pairs. This conversion involves straightforward bit-level merging, which can be implemented in LabView, for example, as shown below:
32-bit (2 words) input registers
The registers are read-only. All values are 4-byte IEEE 754 float type.
| Register Nr | 32 bit address | Description | Unit | Type SDM… |
|---|---|---|---|---|
| 30001 | 1 | Phase 1 Line to Neutral Volts | V | 72, 230, 630 |
| 30003 | 2 | Phase 2 Line to Neutral Volts | V | 72, 630 |
| 30005 | 3 | Phase 3 Line to Neutral Volts | V | 72, 630 |
| 30007 | 4 | Phase 1 Current | A | 72, 230, 630 |
| 30009 | 5 | Phase 2 Current | A | 72, 630 |
| 30011 | 6 | Phase 3 Current | A | 72, 630 |
| 30013 | 7 | Active Power Phase 1 | W | 72, 230, 630 |
| 30015 | 8 | Active Power Phase 2 | W | 72, 630 |
| 30017 | 9 | Active Power Phase 3 | W | 72, 630 |
| 30019 | 10 | Apparent Power Phase 1 | VA | 72, 230, 630 |
| 30021 | 11 | Apparent Power Phase 2 | VA | 72, 630 |
| 30023 | 12 | Apparent Power Phase 3 | VA | 72, 630 |
| 30025 | 13 | Reactive Power Phase 1 | VAr | 72, 230, 630 |
| 30027 | 14 | Reactive Power Phase 2 | VAr | 72, 630 |
| 30029 | 15 | Reactive Power Phase 3 | VAr | 72, 630 |
| 30031 | 16 | Power Factor Phase 1 (pos: forward Current, neg: reverse Current) | - | 72, 230, 630 |
| 30033 | 17 | Power Factor Phase 2 (pos: forward Current, neg: reverse Current) | - | 72, 630 |
| 30035 | 18 | Power Factor Phase 3 (pos: forward Current, neg: reverse Current) | - | 72, 630 |
| 30037 | 19 | Phase 1 Phase angle | Degrees | 230, 630 |
| 30039 | 20 | Phase 2 Phase angle | Degrees | 630 |
| 30041 | 21 | Phase 3 Phase angle | Degrees | 630 |
| 30043 | 22 | Average Line to Neutral Volts | V | 72, 630 |
| 30047 | 24 | Average Line Current | A | 72, 630 |
| 30049 | 25 | Summary of Line Currents | A | 72, 630 |
| 30053 | 27 | Total System Power | W | 72, 630 |
| 30057 | 29 | Total System Apparent Power | VA | 72, 630 |
| 30061 | 31 | Total System Reactive Power | VAr | 72, 630 |
| 30063 | 32 | Total System Power factor (pos: forward Current, neg: reverse Current) | - | 72, 630 |
| 30067 | 34 | Total System Phase angle | Degrees | 630 |
| 30071 | 36 | Frequency of Supply Voltages | Hz | 72, 230, 630 |
| 30073 | 37 | Total Import Energy | kWh | 72, 230, 630 |
| 30075 | 38 | Total Export Energy | kWh | 72, 230, 630 |
| 30077 | 39 | Total Import Reactive Energy | kVArh | 230, 630 |
| 30079 | 40 | Total Export Reactive Energy | kVArh | 230, 630 |
| 30081 | 41 | Total Power | kVAh | 630 |
| 30083 | 42 | Current Hour | Ah | 630 |
| 30085 | 43 | Total System Power Demand (Power sum Demand calculation is for Import – Export) | W | 230, 630 |
| 30087 | 44 | Maximum total System Power Demand (Power sum Demand calculation is for Import – Export) | VA | 230, 630 |
| 30089 | 45 | Current System positive Power Demand | W | 230, 630 |
| 30091 | 46 | Maximum System positive Power Demand | W | 230, 630 |
| 30093 | 47 | Current System reverse Power Demand | W | 230, 630 |
| 30095 | 48 | Maximum System reverse Power Demand | W | 230, 630 |
| 30101 | 51 | Total System Apparent Power Demand | VA | 630 |
| 30103 | 52 | Maximum Total System Apparent Power Demand | VA | 630 |
| 30105 | 53 | Neutral Current Demand | A | 630 |
| 30107 | 54 | Maximum Neutral Current Demand | A | 630 |
| 30201 | 101 | Line 1 to Line 2 Volts | V | 72, 630 |
| 30203 | 102 | Line 2 to Line 3 Volts | V | 72, 630 |
| 30205 | 103 | Line 3 to Line 1 Volts | V | 72, 630 |
| 30207 | 104 | Average Line to Line Volts | V | 72, 630 |
| 30225 | 113 | Neutral Current | A | 72, 630 |
| 30235 | 118 | Phase 1 L/N Volts THD | % | 630 |
| 30237 | 119 | Phase 2 L/N Volts THD | % | 630 |
| 30239 | 120 | Phase 3 L/N Volts THD | % | 630 |
| 30241 | 121 | Phase 1 Current THD | % | 630 |
| 30243 | 122 | Phase 2 Current THD | % | 630 |
| 30245 | 123 | Phase 3 Current THD | % | 630 |
| 30249 | 125 | Average Line to Neutral Volts THD | % | 630 |
| 30251 | 126 | Average Line Current THD | % | 630 |
| 30259 | 130 | Phase 1 Current Demand | A | 230, 630 |
| 30261 | 131 | Phase 2 Current Demand | A | 630 |
| 30263 | 132 | Phase 3 Current Demand | A | 630 |
| 30265 | 133 | Maximum Phase 1 Current Demand | A | 230, 630 |
| 30267 | 134 | Maximum Phase 2 Current Demand | A | 630 |
| 30269 | 135 | Maximum Phase 3 Current Demand | A | 630 |
| 30335 | 168 | Line 1 to Line 2 Volts THD | % | 630 |
| 30337 | 169 | Line 2 to Line 3 Volts THD | % | 630 |
| 30339 | 170 | Line 3 to Line 1 Volts THD | % | 630 |
| 30341 | 171 | Average Line to Line Volts THD | % | 630 |
| 30343 | 172 | Total Active Energy (total kWh / kVarh equals Import + Export) | kWh | 72, 230, 630 |
| 30345 | 173 | Total Reactive Energy (total kWh / kVarh equals Import + Export) | kvarh | 72, 230, 630 |
| 30347 | 174 | L1 Import Active Energy | kWh | 630 |
| 30349 | 175 | L2 Import Active Energy | kWh | 630 |
| 30351 | 176 | L3 Import Active Energy | kWh | 630 |
| 30353 | 177 | L1 Export Active Energy | kWh | 630 |
| 30355 | 178 | L2 Export Active Energy | kWh | 630 |
| 30357 | 179 | L3 Export Active Energy | kWh | 630 |
| 30359 | 180 | L1 total Active Energy (total kWh / kVarh equals Import + Export) | kWh | 630 |
| 30361 | 181 | L2 total Active Energy (total kWh / kVarh equals Import + Export) | kWh | 630 |
| 30363 | 182 | L3 total Active Energy (total kWh / kVarh equals Import + Export) | kWh | 630 |
| 30365 | 183 | L1 Import Reactive Energy | kvarh | 630 |
| 30367 | 184 | L2 Import Reactive Energy | kvarh | 630 |
| 30369 | 185 | L3 Import Reactive Energy | kvarh | 630 |
| 30371 | 186 | L1 Export Reactive Energy | kvarh | 630 |
| 30373 | 187 | L2 Export Reactive Energy | kvarh | 630 |
| 30375 | 188 | L3 Export Reactive Energy | kvarh | 630 |
| 30377 | 189 | L1 total Reactive Energy (total kWh / kVarh equals Import + Export) | kvarh | 630 |
| 30379 | 190 | L2 total Reactive Energy (total kWh / kVarh equals Import + Export) | kvarh | 630 |
| 30381 | 191 | L3 total Reactive Energy (total kWh / kVarh equals Import + Export) | kvarh | 630 |
| 30385 | 193 | Current Resettable Total Active Energy | kWh | 72, 230, 630 |
| 30387 | 194 | Current Resettable Total Reactive Energy | kvarh | 72, 230, 630 |
| 30389 | 389 | Resettable Import Active Energy | kWh | 72 |
| 30391 | 391 | Resettable Export Active Energy | kWh | 72 |
| 30397 | 397 | Netto Energy (Import - Export) | kWh | 72 |
| 31281 | 1281 | Total Import Active Power | W | 72 |
| 31283 | 1283 | Total Export Active Power | W | 72 |
The additional energy meters with Easton-type Modbus communication: SDM72, SDM230, SDM630
Source: https://www.eastroneurope.com/images/uploads/products/protocol/SDM630_MODBUS_Protocol.pdf
If you'd like to support the development of the site with the price of a coffee — or a few — please do so here.
Here's a handy tip: you can quickly save this page as a PDF by clicking “export to PDF” in the menu on the right side of the screen.
32-bit (2 words) holding registers
Registers are classified as read-only (r), read/write (rw), or write-only (w). All values are 4-byte IEEE 754 floating-point numbers.
| Register Nr | 32 bit address | Parameter | Valid range | type | Type SDM… |
|---|---|---|---|---|---|
| 40003 | 3 | Demand period | Specify demand periods as 0, 5, 8, 10, 15, 20, 30, or 60 minutes, with 60 as the default. Setting the period to 0 displays the current parameter value for demand, while demand max shows the highest parameter value since the last reset. | Length: 4 byte Data Format: Float Mode:rw | 630 |
| 40011 | 11 | System type | Write system type: 3p4w = 3, 3p3w = 2, and 1p2w= 1. Requires password, see parameter “password”. | Length: 4 byte Data Format: Float Mode:rw | 72, 630 |
| 40013 | 13 | Pulse 1 width | Specify pulse1 duration in milliseconds: 60, 100, or 200, with 100 as the default. | Length: 4 byte Data Format: Float Mode:rw | 230, 630 |
| 40015 | 15 | Password lock | Enter any value to access password lock-protected registers. To check the lock status: 0 indicates locked, 1 indicates unlocked. Reading this status will also reset the password timeout to one minute. | Length: 4 byte Data Format: Float Mode:rw | 630 |
| 40019 | 19 | Network Parity Stop | Specify the network port parity and stop bits for the MODBUS Protocol as follows: 0 = One stop bit, no parity (default). 1 = One stop bit, even parity. 2 = One stop bit, odd parity. 3 = Two stop bits, no parity. A restart is required for changes to take effect. | Length: 4 byte Data Format: Float Mode:rw | 72, 230, 630 |
| 40021 | 21 | Network Node | Write the network port node address: 1 to 247 for MODBUS Protocol, default 1. Requires a restart to become effective. | Length: 4 byte Data Format: Float Mode:rw | 72, 230 |
| 40023 | 23 | Pulse1 Divisor1 | Write pulse divisor index: n = 0 to 5 0: 0.0025 kWh(kVArh)/imp 1: 0.01 kWh(kVArh)/imp 2: 0.1 kWh(kVArh)/imp 3: 1 kWh(kVArh)/imp 4: 10 kWh(kVArh)/imp 5: 100 kWh(kVArh)/imp | Length: 4 byte Data Format: Float Mode:rw | 630 |
| 40025 | 25 | Password | Enter the password to access protected registers. Default: 0000. | Length: 4 byte Data Format: Float Mode:rw | 630 |
| 40029 | 29 | Network Baud Rate | Write the network port baud rate for MODBUS Protocol, where: 0: 2400 baud 1: 4800 baud 2: 9600 baud, default 3: 19200 baud 4: 38400 baud Requires a restart to become effective | Length: 4 byte Data Format: Float Mode:rw | 72, 230, 630 |
| 40063 | 63 | Current Transformer ratio | Configurable scale from 1 to 2000, example: 200A:5A → 200 divided by 5 → Set value: 40 | Length: 4 byte Data Format: Float Mode:rw | 630 |
| 40087 | 87 | Pulse 1 Energy Type | Write MODBUS Protocol input parameter for pulse output 1: 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 | Length: 4 byte Data Format: Float Mode:rw | 630 |
| 461457 | - | reset | 00 00 :reset the Maximum demand | Length: 2 byte Data Format: Hex Mode:w | 630 |
| 462721 | - | Demand Interval | Slide Time, Automatic Scroll Display Interval (Scroll Time), Backlight Time Scroll Time=0: the display does not scroll automatically Backlight Time=0: Backlight is Always On. | Length: 4 byte Data Format: BCD “min-min-s-min” Mode:rw | 230 |
| 463761 | - | System Power | Default Format: Hex 0000: 0.001kWh (kVArh) /imp (default) 0001: 0.01kWh (kVArh) /imp 0002: 0.1kWh (kVArh) /imp 0003: 1kWh (kVArh) /imp | Length: 4 byte Data Format: Float Mode:rw | 230 |
| 463776 | - | Measurement Mode | Data Format: Hex 0001: Mode 1 (Total = Import) 0002: Mode 2 (Total = Import + Export) 0003: Mode 3 (Total = Import - Export) | Length: 4 byte Data Format: Float Mode:rw | 230 |
| 463792 | - | Pulse Output & LED Indicator Mode | Data Format: Hex 0000: Import & Export Energy, LED flashes for Import & Export Energy 0001: Import Energy, LED flashes for Import Energy only 0002: Export Energy, LED flashes for Export Energy only | Length: 4 byte Data Format: Float Mode:rw | 230 |
| 464513 | - | Serial number | Serial number | Length: 4 byte Data Format: unsigned int32 Mode:r | 630 |
Arduino & Eastron SDM 230
To use the Eastron SDM230 with an Arduino, you need an RS-485-to-TTL converter module and a library such as the SDM_Energy_Meter library by reaper7, since the meter uses Modbus RTU over RS-485.
Required Hardware
- Arduino Board: e.g., Uno, Nano, or ESP32.
- RS485 Converter Module: A module based on the MAX485 or similar chip.
- Eastron SDM230: Ensure its Modbus ID (address) and Baud Rate are noted (defaults are typically Address 1 and 2400 bps or 9600 bps; check your model's manual).
Wiring Schematic (MAX485 module)
| MAX485 Pin | Function | Arduino Pin |
|---|---|---|
| VCC | Power | 5V |
| GND | Ground | GND |
| DI | Driver Input (TX) | Pin 4 (SoftwareSerial TX) |
| RO | Receiver Output (RX) | Pin 3 (SoftwareSerial RX) |
| DE & RE | Driver/Receiver Enable | Pin 2 (Connect these two pins together) |
| A | RS485+ | SDM230 Terminal A |
| B | RS485- | SDM230 Terminal B |
Arduino Example Code
This example uses the SDM_Energy_Meter library. First, install the library via the Arduino Library Manager.
#include <SoftwareSerial.h> #include <SDM.h> // Pins for SoftwareSerial communication (RX, TX) SoftwareSerial sdmSerial(3, 4); // Pin used to control the DE/RE pins of the MAX485 converter #define RS485_EN 2 // Create an SDM object (SoftwareSerial instance, Enable Pin, Slave ID) // Default address is 1 (0x01) SDM sdm(&sdmSerial, RS485_EN, 0x01); void setup() { Serial.begin(115200); // Serial monitor output to PC sdmSerial.begin(9600); // SDM230 default baud rate (Check your meter, may be 2400bps) Serial.println("\nEastron SDM230 Reader Initialized"); } void loop() { // Read Voltage (Register 0x0000) float voltage = sdm.readVal(SDM_PHASE_1_VOLTAGE); if (!isnan(voltage)) { Serial.print("Voltage: "); Serial.print(voltage); Serial.println(" V"); } else { Serial.println("Failed to read Voltage"); } // Read Total Power (Register 0x000C) float power = sdm.readVal(SDM_PHASE_1_POWER); if (!isnan(power)) { Serial.print("Power: "); Serial.print(power); Serial.println(" W"); } else { Serial.println("Failed to read Power"); } // Read Total Active Energy (Register 0x0156 or 0x0048 for Import) float energy = sdm.readVal(SDM_TOTAL_ACTIVE_ENERGY); if (!isnan(energy)) { Serial.print("Total Energy: "); Serial.print(energy); Serial.println(" kWh"); } else { Serial.println("Failed to read Energy"); } delay(3000); // Wait 3 seconds before next read }
This page has been accessed for: Today: 2, Until now: 47

