Electron do Brasil MasterTemp Modbus register map
Transformer temperature monitor (ANSI 49I/49) with oil and winding temperatures, thermal image, fan groups, analog outputs and Modbus RTU
- Official
- 150 registers
- Modbus RTU
- Revision 1 · 2026-11-10
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
- 150 holding registers
- Groups
- 8
- Translation tables
- 13
- Revision
- 1 · 2026-11-10
- Added
- ()
- File
- maps/electron/mastertemp.mbmap.json · 32 KB · history
- SHA-256
- 42ce7bb07a43654e2ec11cf3a9b2edc21e065dc02427c24c62a0bd2b6066a828
- Manufacturer
- electron.com.br
Sources and notes
- Mapa de Registradores MODBUS RTU, MasterTemp · version 7.0 linked in issue #134
Source: Electron do Brasil, Mapa de Registradores MODBUS RTU, MasterTemp, v7.0
- All registers are holding registers. The document numbers them from 1 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, 1 stop bit and no, even or odd parity. It gives no default baud rate or slave address: 9600 N and 1 are placeholders. Register 92 holds the parity setting.
- Temperatures have the scale -1000:10 in the document. It is read here as: value = raw / 10 - 100, which fits the stated range of -50.0 to 250.0 with raw values from 500 to 3500. This reading is not confirmed by the document: check one value against the display.
- Other scales in the document are written as 1:N and are read as raw / N. Registers whose scale column is unclear are given as raw values.
- The document names the alarm temperatures of registers 2 to 4 'sensor 1 to 3' and the shutdown and fan temperatures 'winding 1 to 3'; the names here follow the document.
- Registers 15, 20, 46, 47, 49 are not in the document. Registers 76, 101, 108 to 118 and 140 to 149 are left out because their descriptions in the document are repeated, garbled or inconsistent.
- Registers 5, 10, 45, 48, 50, 52, 75 and 79 are bit fields, one entry per bit. The command bits of register 45 are write-only.
- Written from the manufacturer's document; not tested on a device.
| Area | Address | Name | Type | Access | Unit | Scale | Description |
|---|---|---|---|---|---|---|---|
| HR | 1 | uint16 | RW | °C | ×0.1 −100 | ||
| HR | 2 | uint16 | RW | °C | ×0.1 −100 | ||
| HR | 3 | uint16 | RW | °C | ×0.1 −100 | ||
| HR | 4 | uint16 | RW | °C | ×0.1 −100 | ||
| HR | 5 | bool bit 0 | RW | ||||
| HR | 6 | uint16 | RW | °C | ×0.1 −100 | ||
| HR | 7 | uint16 | RW | °C | ×0.1 −100 | ||
| HR | 8 | uint16 | RW | °C | ×0.1 −100 | ||
| HR | 9 | uint16 | RW | °C | ×0.1 −100 | ||
| HR | 10 | bool bit 0 | RW | ||||
| HR | 11 | uint16 | RW | °C | ×0.1 −100 | ||
| HR | 12 | uint16 | RW | °C | ×0.1 −100 | ||
| HR | 13 | uint16 | RW | °C | ×0.1 −100 | ||
| HR | 14 | uint16 | RW | °C | ×0.1 −100 | ||
| HR | 16 | uint16 | RW | °C | ×0.1 −100 | ||
| HR | 17 | uint16 | RW | °C | ×0.1 −100 | ||
| HR | 18 | uint16 | RW | °C | ×0.1 −100 | ||
| HR | 19 | uint16 | RW | °C | ×0.1 −100 | ||
| HR | 21 | uint16 | RW | °C | ×0.1 −100 | ||
| HR | 22 | uint16 | RW | °C | ×0.1 −100 | ||
| HR | 23 | uint16 | RW | °C | ×0.1 −100 | ||
| HR | 24 | uint16 | RW | °C | ×0.1 −100 | ||
| HR | 25 | uint16 | RW | Range 0 to 100; the scale column in the document is not clear, so the value is raw | |||
| HR | 26 | uint16 | RW | Range 0 to 100; the scale column in the document is not clear, so the value is raw | |||
| HR | 27 | uint16 | RW | min | |||
| HR | 28 | uint16 | RW | ×0.1 | Winding-to-oil gradient setting; the document gives no unit | ||
| HR | 29 | uint16 | RW | ×0.1 | Winding-to-oil gradient setting; the document gives no unit | ||
| HR | 30 | uint16 | RW | ×0.1 | Winding-to-oil gradient setting; the document gives no unit | ||
| HR | 31 | uint16 | RW | Range 0 to 300; the document gives no unit | |||
| HR | 32 | uint16 | RW | Range 0 to 300; the document gives no unit | |||
| HR | 33 | uint16 | RW | Range 0 to 300; the document gives no unit | |||
| HR | 34 | uint16 | RW | ×0.1 | |||
| HR | 35 | uint16 | RW | ×0.1 | |||
| HR | 36 | uint16 | RW | ×0.1 | |||
| HR | 37 | uint16 | RW | Range 1 to 9999; the document's scale column (1000:10) is not clear, so the value is raw | |||
| HR | 38 | uint16 | RW | Range 1 to 9999; the document's scale column (1000:10) is not clear, so the value is raw | |||
| HR | 39 | uint16 | RW | Range 1 to 9999; the document's scale column (1000:10) is not clear, so the value is raw | |||
| HR | 40 | uint16 | RW | ||||
| HR | 41 | uint16 | RW | ||||
| HR | 42 | uint16 | RW | ||||
| HR | 43 | uint16 | RW | ||||
| HR | 44 | uint16 | RW | The document labels every value "when 0"; the value is the index of the range | |||
| HR | 45 | bool bit 0 | W | Write 1 | |||
| HR | 45 | bool bit 1 | W | Write 1 | |||
| HR | 45 | bool bit 2 | W | Write 1 | |||
| HR | 45 | bool bit 3 | W | Write 1 | |||
| HR | 45 | bool bit 4 | W | Write 1 | |||
| HR | 45 | bool bit 5 | W | Write 1 | |||
| HR | 48 | bool bit 0 | RW | 0 = automatic, 1 = forced on | |||
| HR | 48 | bool bit 1 | RW | 0 = automatic, 1 = forced on | |||
| HR | 48 | bool bit 2 | RW | 0 = automatic, 1 = forced on | |||
| HR | 50 | bool bit 0 | RW | The document does not explain BKP and INDP | |||
| HR | 51 | uint16 | RW | ×0.1 | |||
| HR | 52 | bool bit 2 | RW | ||||
| HR | 52 | bool bit 3 | RW | ||||
| HR | 52 | bool bit 4 | RW | ||||
| HR | 53 | uint16 | R | °C | ×0.1 −100 | Document label: current temperature of sensor 1 | |
| HR | 54 | uint16 | R | °C | ×0.1 −100 | ||
| HR | 55 | uint16 | R | °C | ×0.1 −100 | ||
| HR | 56 | uint16 | R | °C | ×0.1 −100 | ||
| HR | 57 | uint16 | R | °C | ×0.1 −100 | ||
| HR | 58 | uint16 | R | °C | ×0.1 −100 | ||
| HR | 59 | uint16 | R | °C | ×0.1 −100 | ||
| HR | 60 | uint16 | R | °C | ×0.1 −100 | ||
| HR | 61 | uint16 | R | °C | ×0.1 −100 | ||
| HR | 62 | uint16 | R | °C | ×0.1 −100 | ||
| HR | 63 | uint16 | R | ×0.1 | |||
| HR | 64 | uint16 | R | ×0.1 | |||
| HR | 65 | uint16 | R | ×0.1 | |||
| HR | 66 | uint16 | R | % | ×0.1 | ||
| HR | 67 | uint16 | R | % | ×0.1 | ||
| HR | 68 | uint16 | R | % | ×0.1 | ||
| HR | 69 | uint16 | R | A | ×0.01 | ||
| HR | 70 | uint16 | R | A | ×0.01 | ||
| HR | 71 | uint16 | R | A | ×0.01 | ||
| HR | 72 | uint16 | R | A | ×0.01 | ||
| HR | 73 | uint16 | R | A | ×0.01 | ||
| HR | 74 | uint16 | R | A | ×0.01 | ||
| HR | 75 | bool bit 0 | RW | ||||
| HR | 75 | bool bit 1 | RW | ||||
| HR | 75 | bool bit 2 | RW | ||||
| HR | 75 | bool bit 3 | RW | ||||
| HR | 75 | bool bit 4 | RW | ||||
| HR | 75 | bool bit 5 | RW | ||||
| HR | 75 | bool bit 6 | RW | ||||
| HR | 75 | bool bit 7 | RW | ||||
| HR | 75 | bool bit 8 | RW | ||||
| HR | 75 | bool bit 9 | RW | ||||
| HR | 75 | bool bit 10 | RW | ||||
| HR | 77 | uint16 | RW | ×0.1 | |||
| HR | 78 | uint16 | RW | ||||
| HR | 79 | bool bit 0 | RW | 0 = automatic reset, 1 = manual reset | |||
| HR | 79 | bool bit 1 | RW | 0 = automatic reset, 1 = manual reset | |||
| HR | 79 | bool bit 2 | RW | 0 = automatic reset, 1 = manual reset | |||
| HR | 79 | bool bit 3 | RW | 0 = automatic reset, 1 = manual reset | |||
| HR | 79 | bool bit 4 | RW | 0 = automatic reset, 1 = manual reset | |||
| HR | 79 | bool bit 5 | RW | 0 = automatic reset, 1 = manual reset | |||
| HR | 79 | bool bit 6 | RW | 0 = automatic reset, 1 = manual reset | |||
| HR | 79 | bool bit 7 | RW | 0 = automatic reset, 1 = manual reset | |||
| HR | 79 | bool bit 8 | RW | 0 = automatic reset, 1 = manual reset |
No registers match
Try part of the name, an address (decimal or 0x hex) or clear the filters.
Help improve this map
- I tested it on a deviceReport whether it worked, even if you did not write the map.
- Suggest a correctionEdit the file on GitHub; it opens a pull request.
- Report a problemA wrong address, type, scale or byte order.
- Read the formatWhat each key of the file means (SPEC.md).