Home / Support / Integration Hub / Eastron Guide
Protocol Deep Dive

Eastron SDM120 / SDM630 Modbus to MQTT Integration Guide

Struggling with weird scientific notation and garbage float values? Here is the complete Modbus RTU wiring and IEEE 754 decoding guide to polling Eastron smart meters accurately.

Heading to the field?

Download the official Application Note (PDF) for offline wiring diagrams and Hex payload analysis.

Download PDF

1. The Challenge with Eastron Meters

Eastron SDM120 (Single-Phase) and SDM630 (Three-Phase) meters are the global gold standard for EV charger sub-metering, solar export limiting, and tenant billing. They are highly accurate and very affordable.

However, integrating them into a custom SCADA, Node-RED, or Home Assistant setup is notoriously difficult. Why? Because Eastron does not use standard 16-bit integers. Every single electrical metric is output as an IEEE 754 32-bit Floating-Point Number. If your software or hardware isn’t configured to decode this specific binary format, you will receive nothing but chaotic garbage values.

2. RS485 Terminal Wiring

Eastron meters have clearly labeled RS485 ports, but the pin numbers vary drastically between the single-phase and three-phase models. Connect them to your RS485 Master gateway using a shielded twisted-pair cable.

Meter ModelEastron RS485 TerminalRS485 Master Gateway
SDM120 (1-Phase)Pin 10 (A)A+ (Data+)
Pin 9 (B)B- (Data-)
SDM630 (3-Phase)Pin 23 (A)A+ (Data+)
Pin 24 (B)B- (Data-)

* Note: Eastron meters are highly sensitive to bus reflection. If you are daisy-chaining multiple meters (e.g., in a tenant building), install a 120Ω termination resistor across A and B on the very last meter.

3. Eastron Modbus Register Map (Key Metrics)

By default, Eastron meters ship with a Baud Rate of 2400 or 9600, with 8 Data Bits, 1 Stop Bit, and NONE or EVEN Parity (Check your meter’s LCD to confirm). The default Slave ID is 1.

Eastron strictly uses Input Registers (Function Code 0x04) for real-time measurements. Each metric spans 2 registers (4 bytes).

Register (Dec)Data TypeDescriptionUnit
30001 (0x00)Float32Phase 1 Line VoltageVolts
30007 (0x06)Float32Phase 1 Line CurrentAmps
30013 (0x0C)Float32Total Active Power (System)Watts
30073 (0x48)Float32Total Import EnergykWh
30343 (0x156)Float32Total Active Energy (Import + Export)kWh

The IEEE 754 Endianness Trap

Because standard Modbus RTU is a 16-bit protocol, it has no native concept of “Floats”. Eastron breaks the 32-bit float into two 16-bit words. If your software reads the voltage as 1.43e-42 instead of 230.5, your Byte Order is inverted. You must apply a word-swap (commonly changing from ABCD to CDAB or BADC format) to reconstruct the float correctly.

4. Integration Architecture: DIY vs. Enterprise Gateway

Decoding Float32 data in real-time gives you two options: writing your own parsing scripts (best for single-site hobbyists) or deploying a hardware bridge (best for commercial scalability).

Option A: Software Parsing (Python / Node-RED)

If you are using a Raspberry Pi with a USB-RS485 adapter, you must handle the byte-swapping programmatically.

Python Example (pymodbus):
import struct
# Eastron returns Big-Endian (ABCD)
# Assume registers return: [17254, 13107]
high_word = 17254
low_word = 13107
float_val = struct.unpack(‘>f’, struct.pack(‘>HH’, high_word, low_word))[0]
print(float_val) # Output: 230.2
Node-RED Example:

Use the node-red-contrib-modbus palette. Set the read type to Input Register and use a Buffer Parser node set to Float (Big Endian) to merge the two 16-bit words.

Option B: Hardware Parsing (Edge Gateway)

For commercial deployments (e.g., managing 20+ EV chargers), relying on USB adapters and OS-level Python scripts introduces point-of-failure risks.

  • No Coding Required: A dedicated Edge Gateway (like the Valtoris VT-DTU500) has native IEEE 754 decoding burned into its firmware.
  • Click & Configure: You simply select “Float32” in the web UI. The hardware autonomously polls the meter and pushes a clean, structured JSON payload (e.g., {"Voltage": 230.2}) directly to your AWS/Azure MQTT broker.
  • Reliability: Hardware watchdogs and industrial isolation prevent bus lockups.