MBMap Registry
  1. Devices
  2. Electron do Brasil
  3. EP4 IoT

Electron do Brasil EP4 IoT Modbus register map

Thermal protection relay (ANSI 23, 26, 38, 45, 49, 74, 77, 94) with four temperature sensors, alarm, shutdown, fault and ventilation relays, analog output and Modbus RTU

  • Official
  • 86 registers
  • Modbus RTU
  • Revision 1 · 2026-11-10
  • Identity: serial number

Official: Written from the manufacturer's documentation, but not tested on a device yet. Check the map against the manufacturer's documentation before you write to a live device. Tested it? Report a test.

Communication

Protocol
Modbus RTU
Unit ID
1
Serial
9600 8N1 · 9600 baud, 8 data bits, none parity, 1 stop bit
Byte / word order
ABCD · bytes big-endian, words high first
Addresses
1-based · wire address = address − 1

Connection values are defaults: the device may be configured differently.

Map

Registers
86 holding registers
Groups
6
Translation tables
6
Revision
1 · 2026-11-10
Added
()
File
maps/electron/ep4-iot.mbmap.json · 20 KB · history
SHA-256
db133223210e2e4b97e3bfdc92fe77af87b467abe03ad1eb1495d56bfab7a4b4
Manufacturer
electron.com.br

Device identity

What a tool can read to check that this map fits the connected device (SPEC.md section 4.7). Registers with a role are read like any other register.

Registers
RoleRegisterAddressTypeValues
Serial number Serial number holding 97 uint32 ABCD

Sources and notes

Source: Electron do Brasil, Mapa de Registradores MODBUS RTU, Relé de Proteção Térmica EP4 IoT

  • All registers are holding registers. The document numbers them 1 to 99 and calls the type Holding Register (40.000), so the addresses are 1-based (address on the wire = number minus 1). The document does not say so explicitly: if a read fails, try address_base 0.
  • The document allows 2400 to 57600 bps with automatic baud rate detection, 8 data bits and 1 stop bit. It gives no parity, default baud rate or slave address: 9600 N and 1 are placeholders; the slave address is in register 50.
  • Temperatures are shown in the document with one decimal and a scale of -1000:10, which it does not explain. They are given as raw values: check against the display before applying a scale.
  • Registers 26, 42, 43, 45, 46, 47, 48, 49 and 61 are bit fields, one entry per bit. The command bits are write-only. Registers 80 to 83 (map latitude, two registers each, both labelled latitude) and the maximum current-output temperature of sensor 4 are not in the document or not clear, so they are left out.
  • The EP3 IoT document linked in issue #128 has exactly the same content and title (EP4 IoT), so this map may not match an EP3 IoT.
  • Written from the manufacturer's document; not tested on a device.
AreaAddressNameTypeAccessUnitScaleDescription
HR 1 uint16 RW Range 0 to 200.0; the document's scale column (-1000:10) is not explained, so the value is raw (check against the display)
HR 2 uint16 RW Range 0 to 200.0; the document's scale column (-1000:10) is not explained, so the value is raw (check against the display)
HR 3 uint16 RW Range 0 to 200.0; the document's scale column (-1000:10) is not explained, so the value is raw (check against the display)
HR 4 uint16 RW Range 0 to 200.0; the document's scale column (-1000:10) is not explained, so the value is raw (check against the display)
HR 9 uint16 RW ×0.1 Range 0 to 10.0
HR 10 uint16 RW Range 0 to 200.0; the document's scale column (-1000:10) is not explained, so the value is raw (check against the display)
HR 11 uint16 RW Range 0 to 200.0; the document's scale column (-1000:10) is not explained, so the value is raw (check against the display)
HR 12 uint16 RW Range 0 to 200.0; the document's scale column (-1000:10) is not explained, so the value is raw (check against the display)
HR 13 uint16 RW Range 0 to 200.0; the document's scale column (-1000:10) is not explained, so the value is raw (check against the display)
HR 18 uint16 RW min
HR 19 uint16 RW Range 0 to 200.0; the document's scale column (-1000:10) is not explained, so the value is raw (check against the display)
HR 20 uint16 RW Range 0 to 200.0; the document's scale column (-1000:10) is not explained, so the value is raw (check against the display)
HR 21 uint16 RW Range 0 to 200.0; the document's scale column (-1000:10) is not explained, so the value is raw (check against the display)
HR 22 uint16 RW Range 0 to 200.0; the document's scale column (-1000:10) is not explained, so the value is raw (check against the display)
HR 24 uint16 RW
HR 25 uint16 RW
HR 26 bool bit 0 W Write 1
HR 26 bool bit 1 W Write 1
HR 27 uint16 RW ×0.1 Range 0 to 30.0
HR 28 uint16 RW
HR 29 uint16 R Range 0 to 200.0; the document's scale column (-1000:10) is not explained, so the value is raw (check against the display)
HR 30 uint16 R Range 0 to 200.0; the document's scale column (-1000:10) is not explained, so the value is raw (check against the display)
HR 31 uint16 R Range 0 to 200.0; the document's scale column (-1000:10) is not explained, so the value is raw (check against the display)
HR 32 uint16 R Range 0 to 200.0; the document's scale column (-1000:10) is not explained, so the value is raw (check against the display)
HR 33 int16 RW Range -10.0 to 10.0; the document's scale column (-1000:10) is not explained, so the value is raw (check against the display)
HR 34 int16 RW Range -10.0 to 10.0; the document's scale column (-1000:10) is not explained, so the value is raw (check against the display)
HR 35 int16 RW Range -10.0 to 10.0; the document's scale column (-1000:10) is not explained, so the value is raw (check against the display)
HR 36 int16 RW Range -10.0 to 10.0; the document's scale column (-1000:10) is not explained, so the value is raw (check against the display)
HR 37 uint16 R Range 0 to 200.0; the document's scale column (-1000:10) is not explained, so the value is raw (check against the display)
HR 38 uint16 R Range 0 to 200.0; the document's scale column (-1000:10) is not explained, so the value is raw (check against the display)
HR 39 uint16 R Range 0 to 200.0; the document's scale column (-1000:10) is not explained, so the value is raw (check against the display)
HR 40 uint16 R Range 0 to 200.0; the document's scale column (-1000:10) is not explained, so the value is raw (check against the display)
HR 42 bool bit 0 RW
HR 42 bool bit 1 RW
HR 42 bool bit 2 RW
HR 42 bool bit 3 RW
HR 43 bool bit 0 RW
HR 43 bool bit 1 RW
HR 43 bool bit 2 RW
HR 43 bool bit 3 RW The document lists value 1 as Normal for this relay: taken to be a typing error
HR 45 bool bit 0 R
HR 45 bool bit 1 R
HR 45 bool bit 2 R
HR 45 bool bit 3 R
HR 46 bool bit 0 R
HR 46 bool bit 1 R
HR 46 bool bit 2 R
HR 46 bool bit 3 R Sensor 4 is the ambient sensor
HR 47 bool bit 0 R
HR 47 bool bit 1 R
HR 47 bool bit 2 R
HR 47 bool bit 3 R Sensor 4 is the ambient sensor
HR 48 bool bit 0 R
HR 48 bool bit 1 R
HR 48 bool bit 2 R
HR 48 bool bit 3 R
HR 48 bool bit 4 R
HR 48 bool bit 6 R
HR 48 bool bit 7 R
HR 49 bool bit 0 R
HR 49 bool bit 1 R
HR 49 bool bit 2 R
HR 49 bool bit 3 R
HR 50 uint16 R Range 1 to 254
HR 51 uint16 RW
HR 60 uint16 RW
HR 61 bool bit 0 RW
HR 61 bool bit 1 RW
HR 61 bool bit 2 RW
HR 61 bool bit 3 RW
HR 62 uint16 RW ms ×500 The value is the number of 500 ms periods; range 5 to 50
HR 63 int16 RW Range -1.00 to 1.00; the document's scale column (-1000:100) is not explained, so the value is raw (check against the display)
HR 70 uint16 RW Range 0 to 2000; the document's scale column (-1000:10) is not explained, so the value is raw (check against the display)
HR 71 uint16 RW Range 0 to 2000; the document's scale column (-1000:10) is not explained, so the value is raw (check against the display)
HR 72 uint16 RW Range 0 to 2000; the document's scale column (-1000:10) is not explained, so the value is raw (check against the display)
HR 73 uint16 RW Range 0 to 2000; the document's scale column (-1000:10) is not explained, so the value is raw (check against the display)
HR 75 uint16 RW Range 0 to 2000; the document's scale column (-1000:10) is not explained, so the value is raw (check against the display)
HR 76 uint16 RW Range 0 to 2000; the document's scale column (-1000:10) is not explained, so the value is raw (check against the display)
HR 77 uint16 RW Range 0 to 2000; the document's scale column (-1000:10) is not explained, so the value is raw (check against the display)
HR 92 int16 R Range -50.0 to 250.0; the document's scale column (-1000:10) is not explained, so the value is raw (check against the display)
HR 93 int16 R Range -50.0 to 250.0; the document's scale column (-1000:10) is not explained, so the value is raw (check against the display)
HR 94 uint16 R Range 1 to 31
HR 95 uint16 R Range 1 to 12
HR 96 uint16 R Range 2020 to 2099
HR 97 uint32 ABCD R Registers 97 (MSB) and 98 (LSB)
HR 99 uint16 R Range 0 to 999

Help improve this map