meta data for this page
  •  

This is an old revision of the document!


LamaPLC: Eastron SDM 230 with Modbus Communication

Eastron SDM230

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:

SpecificationDetail
Nominal Voltage (Un)230V AC (range 176~276V AC)
Base Current (Ib)10A
Max. Current (Imax)100A
Frequency50/60 Hz (±10%)
AccuracyActive Energy: Class 1 (IEC62053-21) / Class B (EN50470-3)
Power Consumption<2W/10VA
Operating Temperature-25°C to +55°C
Mounting35mm DIN rail
IP RatingIP51 (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.

FeatureSDM230 V1SDM230 V2 & V3
Physical Wiring LayoutNon-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 CalculationBasic energy measurement mode.Enhanced “Net-counting” (better for solar/bidirectional energy).
Exported EnergyLimited export recording capability.Separate and reliable measurement of exported energy (kWh).
Default Baud RateOften defaults to 2400 bps.Often defaults to 9600 bps (configurable).
Resettable EnergySingle total energy counter.Includes a second, user-resettable total energy counter.
CertificationsOlder certificationsUpdated MID certification options available
Firmware DateOlder buildsRecent 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.

2026/02/14 23:38

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:

Convert word array (input registers) to real array in labView

32-bit (2 words) input registers

The registers are read-only. All values are 4-byte IEEE 754 float type.

Register Nr32 bit addressDescriptionUnitType SDM…
300011Phase 1 Line to Neutral VoltsV72, 230, 630
300032Phase 2 Line to Neutral VoltsV72, 630
300053Phase 3 Line to Neutral VoltsV72, 630
300074Phase 1 CurrentA72, 230, 630
300095Phase 2 CurrentA72, 630
300116Phase 3 CurrentA72, 630
300137Active Power Phase 1W72, 230, 630
300158Active Power Phase 2W72, 630
300179Active Power Phase 3W72, 630
3001910Apparent Power Phase 1VA72, 230, 630
3002111Apparent Power Phase 2VA72, 630
3002312Apparent Power Phase 3VA72, 630
3002513Reactive Power Phase 1VAr72, 230, 630
3002714Reactive Power Phase 2VAr72, 630
3002915Reactive Power Phase 3VAr72, 630
3003116Power Factor Phase 1
(pos: forward Current, neg: reverse Current)
-72, 230, 630
3003317Power Factor Phase 2
(pos: forward Current, neg: reverse Current)
-72, 630
3003518Power Factor Phase 3
(pos: forward Current, neg: reverse Current)
-72, 630
3003719Phase 1 Phase angleDegrees230, 630
3003920Phase 2 Phase angleDegrees630
3004121Phase 3 Phase angleDegrees630
3004322Average Line to Neutral VoltsV72, 630
3004724Average Line CurrentA72, 630
3004925Summary of Line CurrentsA72, 630
3005327Total System PowerW72, 630
3005729Total System Apparent PowerVA72, 630
3006131Total System Reactive PowerVAr72, 630
3006332Total System Power factor
(pos: forward Current, neg: reverse Current)
-72, 630
3006734Total System Phase angleDegrees630
3007136Frequency of Supply VoltagesHz72, 230, 630
3007337Total Import EnergykWh72, 230, 630
3007538Total Export EnergykWh72, 230, 630
3007739Total Import Reactive EnergykVArh230, 630
3007940Total Export Reactive EnergykVArh230, 630
3008141Total PowerkVAh630
3008342Current HourAh630
3008543Total System Power Demand
(Power sum Demand calculation is for Import – Export)
W230, 630
3008744Maximum total System Power Demand
(Power sum Demand calculation is for Import – Export)
VA230, 630
3008945Current System positive Power DemandW230, 630
3009146Maximum System positive Power DemandW230, 630
3009347Current System reverse Power DemandW230, 630
3009548Maximum System reverse Power DemandW230, 630
3010151Total System Apparent Power DemandVA630
3010352Maximum Total System Apparent Power DemandVA630
3010553Neutral Current DemandA630
3010754Maximum Neutral Current DemandA630
30201101Line 1 to Line 2 VoltsV72, 630
30203102Line 2 to Line 3 VoltsV72, 630
30205103Line 3 to Line 1 VoltsV72, 630
30207104Average Line to Line VoltsV72, 630
30225113Neutral CurrentA72, 630
30235118Phase 1 L/N Volts THD%630
30237119Phase 2 L/N Volts THD%630
30239120Phase 3 L/N Volts THD%630
30241121Phase 1 Current THD%630
30243122Phase 2 Current THD%630
30245123Phase 3 Current THD%630
30249125Average Line to Neutral Volts THD%630
30251126Average Line Current THD%630
30259130Phase 1 Current DemandA230, 630
30261131Phase 2 Current DemandA630
30263132Phase 3 Current DemandA630
30265133Maximum Phase 1 Current DemandA230, 630
30267134Maximum Phase 2 Current DemandA630
30269135Maximum Phase 3 Current DemandA630
30335168Line 1 to Line 2 Volts THD%630
30337169Line 2 to Line 3 Volts THD%630
30339170Line 3 to Line 1 Volts THD%630
30341171Average Line to Line Volts THD%630
30343172Total Active Energy
(total kWh / kVarh equals Import + Export)
kWh72, 230, 630
30345173Total Reactive Energy
(total kWh / kVarh equals Import + Export)
kvarh72, 230, 630
30347174L1 Import Active EnergykWh630
30349175L2 Import Active EnergykWh630
30351176L3 Import Active EnergykWh630
30353177L1 Export Active EnergykWh630
30355178L2 Export Active EnergykWh630
30357179L3 Export Active EnergykWh630
30359180L1 total Active Energy
(total kWh / kVarh equals Import + Export)
kWh630
30361181L2 total Active Energy
(total kWh / kVarh equals Import + Export)
kWh630
30363182L3 total Active Energy
(total kWh / kVarh equals Import + Export)
kWh630
30365183L1 Import Reactive Energykvarh630
30367184L2 Import Reactive Energykvarh630
30369185L3 Import Reactive Energykvarh630
30371186L1 Export Reactive Energykvarh630
30373187L2 Export Reactive Energykvarh630
30375188L3 Export Reactive Energykvarh630
30377189L1 total Reactive Energy
(total kWh / kVarh equals Import + Export)
kvarh630
30379190L2 total Reactive Energy
(total kWh / kVarh equals Import + Export)
kvarh630
30381191L3 total Reactive Energy
(total kWh / kVarh equals Import + Export)
kvarh630
30385193Current Resettable Total Active EnergykWh72, 230, 630
30387194Current Resettable Total Reactive Energykvarh72, 230, 630
30389389Resettable Import Active EnergykWh72
30391391Resettable Export Active EnergykWh72
30397397Netto Energy (Import - Export)kWh72
312811281Total Import Active PowerW72
312831283Total Export Active PowerW72

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

SDM630/SDM230 Modbus Import registers in .csv file-format

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.

2026/02/14 23:38

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 Nr32 bit addressParameterValid rangetypeType SDM…
400033Demand periodSpecify 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
4001111System typeWrite system type: 3p4w = 3, 3p3w = 2, and 1p2w= 1.
Requires password, see parameter “password”.
Length: 4 byte
Data Format: Float
Mode:rw
72, 630
4001313Pulse 1 widthSpecify pulse1 duration in milliseconds: 60, 100, or 200, with 100 as the default.Length: 4 byte
Data Format: Float
Mode:rw
230, 630
4001515Password lockEnter 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
4001919Network Parity StopSpecify 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
4002121Network NodeWrite 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
4002323Pulse1 Divisor1Write 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
4002525PasswordEnter the password to access protected registers. Default: 0000.Length: 4 byte
Data Format: Float
Mode:rw
630
4002929Network Baud RateWrite 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
4006363Current Transformer ratioConfigurable scale from 1 to 2000, example: 200A:5A → 200 divided by 5 → Set value: 40Length: 4 byte
Data Format: Float
Mode:rw
630
4008787Pulse 1 Energy TypeWrite 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-reset00 00 :reset the Maximum demandLength: 2 byte
Data Format: Hex
Mode:w
630
462721-Demand IntervalSlide 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 PowerDefault 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 ModeData 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 ModeData 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 numberSerial numberLength: 4 byte
Data Format: unsigned int32
Mode:r
630
2026/06/05 15:50

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 PinFunctionArduino Pin
VCCPower5V
GNDGroundGND
DIDriver Input (TX)Pin 4 (SoftwareSerial TX)
ROReceiver Output (RX)Pin 3 (SoftwareSerial RX)
DE & REDriver/Receiver EnablePin 2 (Connect these two pins together)
ARS485+SDM230 Terminal A
BRS485-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