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 22:38

Modbus communication

RS485 communication interface, MODBUS RTU protocol:

  • Baudrate: 9600 Baud (default, can be set)
  • Parity: Even
  • Databits: 8
  • Stopbits: 1
  • Default slave ID: 45
  • 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

32-bit (2 words) input registers

The registers are read-only.
Float conversion: 32-bit float with big-endian

CodeRegister NrDescriptionTypeUnitModbus
reading
1st modbus block
V130000Line neutral voltFloatVBasis 0x00, words: 37
C130006CurrentFloatA0x06
ACP130012Active powerFloatW0x0C
APP130018Apparent powerFloatVA0x12
RAP130024Reactive powerFloatVAr0x18
PF130030Power factorFloat-0x1E
PA130036Phase angleFloat°0x24
2nd modbus block
FR130070FrequencyFloatHzBasis 0x46, words: 25
IACE130072Import active energyFloatkWh0x02
EACE130074Export active energyFloatkWh0x04
IRAE130076Import reactive energyFloatkvarh0x06
ERAE130078Export reactive energyFloatkvarh0x08
TP30084Total system power demandFloatW0x0E
-30086Maximum total system power demandFloatW0x10
-30088Current system positive power demandFloatW0x12
-30090Maximum system positive power demandFloatW0x14
-30092Current system reverse power demandFloatW0x16
-30094Maximum system reverse power demandFloatW0x18
3th modbus block
-30258Current demandFloatABasis 0x102, words: 7
-30264Maximum current demandFloatA0x06
4th modbus block
TAE30342Total active energyFloatkWhBasis 0x342, words: 7
TRE30344Total reactive energyFloatkvarh
-30384Current resettable total active energyFloatkWh
-30386Current resettable total reactive energyFloatkvarh
MA40020Modbus node address
RW, default 45
Float-
MBR40028Modbus baud rate
RW, 0 = 2400 bps(default) 1 = 4800 bps 2 = 9600 bps 5=1200 bps
Float-

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 physical lines.

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: 1, Until now: 24