Lumel ND20 Modbus register map
1- and 3-phase power network meter with harmonics, 15/30/60 min mean power, relay and analogue outputs, Modbus RTU over RS485
- Official
- 372 registers
- Modbus RTU
- Revision 1 · 2026-10-18
- Identity: firmware, 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
- 1default
- Serial
- 9600 8N2 · 9600 baud, 8 data bits, none parity, 2 stop bits
- Byte / word order
- ABCD · bytes big-endian, words high first
- Addresses
- 0-based
- Max read
- 82 registers per request
Connection values are defaults: the device may be configured differently.
Map
- Registers
- 372 holding registers
- Groups
- 8
- Revision
- 1 · 2026-10-18
- Added
- ()
- File
- maps/lumel/nd20.mbmap.json · 57 KB · history
- SHA-256
- 5962314e3dd04002500ad43ee7c8a7c6bded83724a0ba033a2ec6d1d239c9c95
- Manufacturer
- lumel.com.pl
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.
| Role | Register | Address | Type | Values |
|---|---|---|---|---|
| Firmware | Program version | holding 4053 | uint16 | |
| Serial number | Serial number | holding 4051 | uint32 ABCD |
Sources and notes
- ND20 power network meter user manual section 8 (RS-485 interface, tables 9-12); program version 1.09 is the newest one the manual mentions
Source: Lumel, ND20 power network meter user manual, section 8
- Measurements are read from the 7000 area: IEEE 754 floats in two registers, bytes in the order 3-2-1-0. The same data is available as 32-bit registers (7500-7786, one address per value) and in the byte order 1-0-3-2 (6000-6573); this map uses the 7000 and 7800 areas.
- Values the meter cannot give are returned as 1e20 (above range or error) or -1e20 (below range).
- Which values exist depends on the measurement mode (3Ph/4W, 3Ph/3W or 1Ph/2W). The manual has a column per mode; for 3Ph/3W the per-phase powers, voltages and power factors are not available.
- Energy is also in registers 4038-4049 as 32-bit integers in units of 100 Wh. The meter returns 1e20 when it cannot give a value; the manual does not say how the integer energy registers behave.
- Registers 1000-1077 hold the mean power archive (a window of 15 records); they are not listed here.
- Registers marked with firmware_min 1.09 exist from program version 1.09. Registers 4062-4068 are reserved.
| Area | Address | Name | Type | Access | Unit | Scale | Description |
|---|---|---|---|---|---|---|---|
| HR | 4053 | uint16 | R | ×0.01 | |||
| HR | 4051 | uint32 ABCD | R | ||||
| HR | 4050 | uint16 | R | ||||
| HR | 4050 | bool bit 15 | R | ||||
| HR | 4050 | bool bit 14 | R | ||||
| HR | 4050 | bool bit 13 | R | ||||
| HR | 4050 | bool bit 12 | R | ||||
| HR | 4050 | bool bit 11 | R | ||||
| HR | 4050 | bool bit 10 | R | ||||
| HR | 4050 | bool bit 7 | R | ||||
| HR | 4050 | bool bit 6 | R | ||||
| HR | 4050 | bool bit 5 | R | ||||
| HR | 4050 | bool bit 4 | R | ||||
| HR | 4050 | bool bit 3 | R | ||||
| HR | 4050 | bool bit 2 | R | ||||
| HR | 4050 | bool bit 1 | R | ||||
| HR | 4050 | bool bit 0 | R | ||||
| HR | 4050 | uint16 bits 8–9 | R | ||||
| HR | 4061 | bool bit 14 | R | ||||
| HR | 4061 | bool bit 13 | R | ||||
| HR | 4061 | bool bit 12 | R | ||||
| HR | 4061 | bool bit 11 | R | Nature of the reactive power (status register 2) | |||
| HR | 4061 | bool bit 10 | R | Nature of the reactive power (status register 2) | |||
| HR | 4061 | bool bit 9 | R | Nature of the reactive power (status register 2) | |||
| HR | 4061 | bool bit 8 | R | Nature of the reactive power (status register 2) | |||
| HR | 4061 | bool bit 7 | R | Nature of the reactive power (status register 2) | |||
| HR | 4061 | bool bit 6 | R | Nature of the reactive power (status register 2) | |||
| HR | 4061 | bool bit 5 | R | Nature of the reactive power (status register 2) | |||
| HR | 4061 | bool bit 4 | R | Nature of the reactive power (status register 2) | |||
| HR | 4061 | bool bit 3 | R | Nature of the reactive power (status register 2) | |||
| HR | 4061 | bool bit 2 | R | Nature of the reactive power (status register 2) | |||
| HR | 4061 | bool bit 1 | R | Nature of the reactive power (status register 2) | |||
| HR | 4061 | bool bit 0 | R | Nature of the reactive power (status register 2) | |||
| HR | 7000 | float32 ABCD | R | V | |||
| HR | 7002 | float32 ABCD | R | A | |||
| HR | 7004 | float32 ABCD | R | W | |||
| HR | 7006 | float32 ABCD | R | var | |||
| HR | 7008 | float32 ABCD | R | VA | |||
| HR | 7010 | float32 ABCD | R | ||||
| HR | 7012 | float32 ABCD | R | ||||
| HR | 7014 | float32 ABCD | R | V | |||
| HR | 7016 | float32 ABCD | R | A | |||
| HR | 7018 | float32 ABCD | R | W | |||
| HR | 7020 | float32 ABCD | R | var | |||
| HR | 7022 | float32 ABCD | R | VA | |||
| HR | 7024 | float32 ABCD | R | ||||
| HR | 7026 | float32 ABCD | R | ||||
| HR | 7028 | float32 ABCD | R | V | |||
| HR | 7030 | float32 ABCD | R | A | |||
| HR | 7032 | float32 ABCD | R | W | |||
| HR | 7034 | float32 ABCD | R | var | |||
| HR | 7036 | float32 ABCD | R | VA | |||
| HR | 7038 | float32 ABCD | R | ||||
| HR | 7040 | float32 ABCD | R | ||||
| HR | 7042 | float32 ABCD | R | V | |||
| HR | 7044 | float32 ABCD | R | A | |||
| HR | 7046 | float32 ABCD | R | W | |||
| HR | 7048 | float32 ABCD | R | var | |||
| HR | 7050 | float32 ABCD | R | VA | |||
| HR | 7052 | float32 ABCD | R | ||||
| HR | 7054 | float32 ABCD | R | ||||
| HR | 7056 | float32 ABCD | R | Hz | |||
| HR | 7058 | float32 ABCD | R | V | |||
| HR | 7060 | float32 ABCD | R | V | |||
| HR | 7062 | float32 ABCD | R | V | |||
| HR | 7064 | float32 ABCD | R | V | |||
| HR | 7066 | float32 ABCD | R | W | |||
| HR | 7080 | float32 ABCD | R | ||||
| HR | 7082 | float32 ABCD | R | ||||
| HR | 7084 | float32 ABCD | R | ||||
| HR | 7086 | float32 ABCD | R | ||||
| HR | 7088 | float32 ABCD | R | ° | |||
| HR | 7090 | float32 ABCD | R | ° | |||
| HR | 7092 | float32 ABCD | R | ° | |||
| HR | 7094 | float32 ABCD | R | A | |||
| HR | 7068 | float32 ABCD | R | V/% | |||
| HR | 7070 | float32 ABCD | R | V/% | |||
| HR | 7072 | float32 ABCD | R | V/% | |||
| HR | 7074 | float32 ABCD | R | A/% | |||
| HR | 7076 | float32 ABCD | R | A/% | |||
| HR | 7078 | float32 ABCD | R | A/% | |||
| HR | 7096 | float32 ABCD | R | 100 MWh | |||
| HR | 7098 | float32 ABCD | R | kWh | |||
| HR | 7100 | float32 ABCD | R | 100 MWh | |||
| HR | 7102 | float32 ABCD | R | kWh | |||
| HR | 7104 | float32 ABCD | R | 100 Mvarh | |||
| HR | 7106 | float32 ABCD | R | kvarh | |||
| HR | 7108 | float32 ABCD | R | 100 Mvarh | |||
| HR | 7110 | float32 ABCD | R | kvarh | |||
| HR | 7112 | float32 ABCD | R | 100 MWh | |||
| HR | 7114 | float32 ABCD | R | kWh | |||
| HR | 7116 | float32 ABCD | R | 100 MWh | |||
| HR | 7118 | float32 ABCD | R | kWh | |||
| HR | 7120 | float32 ABCD | R | ||||
| HR | 7122 | float32 ABCD | R | ||||
| HR | 7124 | float32 ABCD | R | ||||
| HR | 7126 | float32 ABCD | R | mA | |||
| HR | 7128 | float32 ABCD | R | V | |||
| HR | 7130 | float32 ABCD | R | V | |||
| HR | 7132 | float32 ABCD | R | V |
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).