Novus N1500 Modbus register map
Also covers N1500LC, N1500G
Universal process indicator with up to four alarms, analog retransmission and optional RS485 Modbus RTU: process value, min/max, status, alarms, input and retransmission settings, custom linearization
- Official
- 82 registers
- Modbus RTU
- Revision 1 · 2026-10-31
- Identity: model, firmware
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 8E1 · 9600 baud, 8 data bits, even parity, 1 stop bit
- Byte / word order
- ABCD · bytes big-endian, words high first
- Addresses
- 0-based
Connection values are defaults: the device may be configured differently.
Map
- Registers
- 78 holding registers, 4 coils
- Groups
- 10
- Translation tables
- 7
- Revision
- 1 · 2026-10-31
- Firmware
- Communication manual for software V2.3x
- Added
- ()
- File
- maps/novus/n1500.mbmap.json · 17 KB · history
- SHA-256
- 6314bf3d11fa2c74130a31a410b7773643e3d83fe3b86adedd664ab82624d76c
- Manufacturer
- novus.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.
| Role | Register | Address | Type | Values |
|---|---|---|---|---|
| Firmware | Software version | holding 7 | uint16 | |
| Model | Equipment ID | holding 8 | uint16 | 3 = N1500 |
Sources and notes
- Indicador N1500 / N1500LC / N1500G - Manual de Comunicação · version V2.3x D linked in issue #94; tables 01 and 02
Source: Novus N1500 / N1500LC / N1500G communication manual V2.3x D (Portuguese)
- Modbus RTU needs the optional RS485 interface. Functions 03, 05 and 06; writes with address 0 are broadcast.
- 8 data bits, 1 stop bit, no parity or even parity (chosen together with the baud rate in register 42). The manual does not give the factory address or baud rate: check the adres and bavd screens on the indicator.
- Every register is a signed 16-bit value. Registers 12 and up can be read and written; most registers below 12 are read-only.
- The process value, limits, alarm setpoints, offset and hysteresis are integers in the indicator's display unit, with the decimal places set in register 11 (dppos): 1234 with dppos = 1 is 123.4.
- A write outside the allowed range is not refused: the indicator stores the maximum allowed value and returns it.
- The F key and digital input function lists and the input type list differ on the LC model; the tables in this map are those of the standard model, and the LC values are in the register descriptions.
- The custom linearization points (registers 61 to 90 for the input, 91 to 120 for the indication) are not listed.
- Written from the manufacturer's manual; not tested on a device.
| Area | Address | Name | Type | Access | Unit | Scale | Description |
|---|---|---|---|---|---|---|---|
| HR | 0 | int16 | R | Decimal places set by Decimal point position (register 11) | |||
| HR | 1 | int16 | R | Lowest value since the last clear | |||
| HR | 2 | int16 | R | Highest value since the last clear | |||
| HR | 3 | uint16 | R | The manual gives a range of 0 to 120000, which does not fit one register; values above 65535 cannot be read here | |||
| HR | 4 | int16 | R | Value of the screen being shown; its range depends on the screen | |||
| HR | 5 | uint16 | R | ||||
| HR | 6 | bool bit 0 | R | ||||
| HR | 6 | bool bit 1 | R | ||||
| HR | 6 | bool bit 2 | R | ||||
| HR | 6 | bool bit 3 | R | ||||
| HR | 6 | bool bit 4 | R | ||||
| HR | 6 | bool bit 5 | R | ||||
| HR | 6 | bool bit 8 | R | ||||
| HR | 6 | bool bit 9 | R | ||||
| HR | 6 | bool bit 10 | R | ||||
| HR | 6 | bool bit 11 | R | ||||
| HR | 6 | bool bit 12 | R | ||||
| HR | 9 | bool bit 0 | R | ||||
| HR | 9 | bool bit 1 | R | ||||
| HR | 9 | bool bit 2 | R | ||||
| HR | 9 | bool bit 3 | R | ||||
| HR | 9 | bool bit 5 | R | ||||
| HR | 9 | bool bit 6 | R | ||||
| HR | 9 | bool bit 7 | R | ||||
| HR | 9 | bool bit 8 | R | ||||
| HR | 9 | bool bit 9 | R | ||||
| HR | 9 | bool bit 11 | R | ||||
| HR | 9 | bool bit 12 | R | ||||
| HR | 9 | bool bit 13 | R | ||||
| HR | 9 | bool bit 14 | R | ||||
| HR | 9 | bool bit 15 | R | ||||
| HR | 10 | uint16 | W | ||||
| CO | 0 | bool | RW | Coil 1 in the manual (00001). Can be written only when alarm 1 function is Off | |||
| CO | 1 | bool | RW | Coil 2 in the manual (00002). Can be written only when alarm 2 function is Off | |||
| CO | 2 | bool | RW | Coil 3 in the manual (00003). Can be written only when alarm 3 function is Off | |||
| CO | 3 | bool | RW | Coil 4 in the manual (00004). Can be written only when alarm 4 function is Off | |||
| HR | 11 | uint16 | R | dppos | |||
| HR | 37 | uint16 | RW | intyp. On the LC model: 0 = 0-20 mV, 1 = -20 to 20 mV, 2 = 0-50 mV, 3-5 = the same with custom linearization, 6 = 0-20 mA, 7 = 4-20 mA, 8-9 = the same with custom linearization | |||
| HR | 38 | uint16 | RW | vnit; not on the LC model | |||
| HR | 39 | int16 | RW | inlol | |||
| HR | 40 | int16 | RW | inkil | |||
| HR | 14 | uint16 | RW | filtr | |||
| HR | 15 | int16 | RW | ofset; between the indication limits | |||
| HR | 16 | uint16 | RW | scale | |||
| HR | 17 | uint16 | RW | s.root | |||
| HR | 12 | uint16 | RW | f.fvnc. On the LC model also 4 = High, 5 = Low, 6 = Zero | |||
| HR | 13 | uint16 | RW | dig.in. On the LC model also 4 = High, 5 = Low, 6 = Tare | |||
| HR | 19 | int16 | RW | al.ref; reference for the differential alarms, between the indication limits | |||
| HR | 21 | int16 | RW | sp.al1 | |||
| HR | 22 | int16 | RW | sp.al2 | |||
| HR | 23 | int16 | RW | sp.al3 | |||
| HR | 24 | int16 | RW | sp.al4 | |||
| HR | 25 | uint16 | RW | ||||
| HR | 26 | uint16 | RW | ||||
| HR | 27 | uint16 | RW | ||||
| HR | 28 | uint16 | RW | ||||
| HR | 29 | uint16 | RW | ||||
| HR | 30 | uint16 | RW | ||||
| HR | 31 | uint16 | RW | ||||
| HR | 32 | uint16 | RW | ||||
| HR | 33 | int16 | RW | ky.al1, in display units | |||
| HR | 34 | int16 | RW | ky.al2, in display units | |||
| HR | 35 | int16 | RW | ky.al3, in display units | |||
| HR | 36 | int16 | RW | ky.al4, in display units | |||
| HR | 46 | uint16 | RW | s | |||
| HR | 47 | uint16 | RW | s | |||
| HR | 48 | uint16 | RW | s | |||
| HR | 49 | uint16 | RW | s | |||
| HR | 50 | uint16 | RW | s | |||
| HR | 51 | uint16 | RW | s | |||
| HR | 52 | uint16 | RW | s | |||
| HR | 53 | uint16 | RW | s | |||
| HR | 20 | uint16 | RW | ovt.ty | |||
| HR | 18 | uint16 | RW | ovt.er; where the 4-20 mA output goes on an input error | |||
| HR | 54 | int16 | RW | ou.lol; indication that gives 4 mA (0 mA) | |||
| HR | 55 | int16 | RW | ou.kil; indication that gives 20 mA | |||
| HR | 41 | uint16 | RW | adres | |||
| HR | 42 | uint16 | RW | bavd | |||
| HR | 7 | uint16 | R | ×0.01 | 100 is V1.00 | ||
| HR | 8 | uint16 | R | Other values are special versions | |||
| HR | 43 | uint16 | R | 0-9999; the serial number is this followed by the lower display part | |||
| HR | 44 | uint16 | R | 0-9999 |
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).