- Home
- Modbus register maps
- Lochinvar
- Knight / Armor / Wall Mount boilers (ModBus communication board)
Boiler / water heater · Modbus register map
Lochinvar Knight / Armor / Wall Mount boilers (ModBus communication board) Modbus register map
Updated 16 October 2026
Lochinvar's Knight, Armor, Wall Mount, FTXL, Shield and related boilers and water heaters speak Modbus RTU through an optional RS-485 communication board configured with DIP switches. A BAS can enable the unit, send a modulation rate or setpoint command, and supply tank, outdoor and system temperatures, with a configuration word telling the appliance which values to take from the BAS. Read-only data covers outlet/inlet/flue temperatures, firing rate, pump speeds, cascade power and status, blocking and lockout codes.
This page lists 43 Modbus registers for the Lochinvar Knight / Armor / Wall Mount boilers (ModBus communication board) — 11 writable — with the table, 0-based wire address, data type, word order, scale, units and access of each, re-typed from Lochinvar’s own free documentation (linked below) and checked against it.
- Manufacturer
- Lochinvar
- Model
- Knight / Armor / Wall Mount boilers (ModBus communication board)
- Equipment type
- Boiler / water heater
- Registers
- 43 (11 writable)
- Transport
- Modbus RTU
- Default unit ID
- Not stated
- Documented addressing
- Modicon 3xxxx/4xxxx (drop the prefix, subtract 1)
- Also known as
- Knight, Knight XL, Outdoor Knight, Outdoor Knight XL, Armor, Outdoor Armor, Wall Mount Armor, Knight Wall Mount, Knight Wall Hung, AQUAS, FTXL, Shield
Integration notes: Lochinvar Knight / Armor / Wall Mount boilers (ModBus communication board)
Set the board address, baud and parity on its DIP switches, put the boiler control in ModBus mode, then write the configuration word 40001 followed by the command registers. For a simple enable, write 40001 = 0x0001 and 40002 = 0x0001; for a modulation or setpoint command also set bit 2 (40001 = 0x0005) and write 40003. Monitor 30009-30016.
Minimum registers to map
Addresses are 0-based wire addresses. Enough to monitor and run the unit; map more as the job needs.
| Register | Name | Type | Why | Access |
|---|---|---|---|---|
| HR 0 | Configuration | BITMAP16 | Configuration bits: which values come from the BAS | Read/write |
| HR 1 | Coils | UINT16 | Enable / thermostat command word | Read/write |
| HR 2 | 0-10 Volt Input / Rate Command / Setpoint Command | UINT16 | Rate (%) or setpoint command | Read/write |
| IR 8 | Outlet Temperature | UINT16 | Outlet temperature | Read |
| IR 9 | Inlet Temperature | INT16 | Inlet temperature | Read |
| IR 11 | Firing Rate | UINT16 | Firing rate | Read |
| IR 13 | Boiler Status Code | UINT16 | Status code | Read |
| IR 15 | Boiler Lockout Code | UINT16 | Lockout code | Read |
Enable Modbus control & writes
In the boiler installer menu go to CONTROL MODES and set ModBus to ACTIVE, then pick the control mode (enable only, enable + rate/setpoint, rate only, DHW). Set BMS TYPE to POWER or SETPOINT for rate commands. Re-send the configuration word in 40001 before each command.
Communication loss & watchdog
MODBUS T/O in the CONTROL MODES menu, 5-120 s (default 10 s): if BAS-supplied temperatures or the 0-10 V value are not refreshed in time the boiler falls back to its own sensors. Enable-type commands must be refreshed at least every 4 minutes or the boiler reverts to its own inputs.
Byte order & addressing
- Modicon addressing: 40001 is holding register 0 on the wire.
- Temperatures are passed as degrees C x 10 (the manual's examples: 267 = 26.7 C, 683 = 68.3 C); the map assumes DIP switch 8 is OFF (Celsius).
- A rate command is a plain percentage (0-100). To command a temperature setpoint via 40003 the value is the 0-10 V equivalent percentage, interpolated from the BMS setpoint-at-low/high-voltage parameters, not degrees.
- The lockout code changes during normal operation; only trust it when the status code (30014) reads 40.
Network setup
- DIP switches 1-7 set the Modbus address (binary weights 1-64, maximum 127).
- DIP switch 8: OFF = Celsius, ON = Fahrenheit.
- DIP switch 9: OFF = 9600 baud, ON = 19200 baud.
- DIP switch 10: OFF = no parity with 2 stop bits, ON = even parity with 1 stop bit.
- RTU only; use 120 ohm termination at the ends of the RS-485 run.
- For cascades, a board on the leader alone gives total cascade data; fit a board to each unit to see individual temperatures.
Watch out for
- Writing commands without setting the matching bit in 40001 has no effect; the boiler keeps using its own inputs.
- Board LED D7 shows faults: 1.5 s on / 0.5 s off means no Modbus communication, 0.5 s on / 1.5 s off means no communication with the burner control.
Lochinvar Knight / Armor / Wall Mount boilers (ModBus communication board) Modbus registers
Address = 0-based wire address (the documented number is shown under it when it differs) · Order: ABCD = high word first, CDAB = low word first · Scale: engineering value = raw × scale.
| Table | Address | Name | Description | Type | Order | Scale | Units | Access | Values / bits |
|---|---|---|---|---|---|---|---|---|---|
| CO | 0doc 00001 | Room Thermostat 1 | Enable/heat demand input 1 written by the BAS. | BIT | Read/write | 0 = Off; 1 = On | |||
| CO | 1doc 00002 | Room Thermostat 2 | BIT | Read/write | 0 = Off; 1 = On | ||||
| CO | 2doc 00003 | Room Thermostat 3 | BIT | Read/write | 0 = Off; 1 = On | ||||
| CO | 4doc 00005 | Tank Thermostat | DHW tank thermostat demand written by the BAS. | BIT | Read/write | 0 = Off; 1 = On | |||
| DI | 1doc 10002 | Flow Switch | BIT | Read | 0 = Off; 1 = On | ||||
| DI | 2doc 10003 | Gas Pressure Switch | BIT | Read | 0 = Off; 1 = On | ||||
| DI | 3doc 10004 | Louver Proving Switch | BIT | Read | 0 = Off; 1 = On | ||||
| DI | 4doc 10005 | Air Pressure Switch | BIT | Read | 0 = Off; 1 = On | ||||
| DI | 5doc 10006 | Blocked Drain Switch | BIT | Read | 0 = Off; 1 = On | ||||
| DI | 6doc 10007 | Auto Reset High Limit | BIT | Read | 0 = Off; 1 = On | ||||
| DI | 7doc 10008 | Flame | BIT | Read | 0 = Off; 1 = On | ||||
| DI | 8doc 10009 | Room Thermostat 1 | BIT | Read | 0 = Off; 1 = On | ||||
| DI | 9doc 10010 | Tank Thermostat | BIT | Read | 0 = Off; 1 = On | ||||
| DI | 23doc 10024 | Room Thermostat 2 | BIT | Read | 0 = Off; 1 = On | ||||
| DI | 32doc 10033 | Run-time Contacts | BIT | Read | 0 = Off; 1 = On | ||||
| DI | 33doc 10034 | Alarm Contacts | BIT | Read | 0 = Off; 1 = On | ||||
| DI | 34doc 10035 | CH Pump | BIT | Read | 0 = Off; 1 = On | ||||
| DI | 35doc 10036 | DHW Pump | BIT | Read | 0 = Off; 1 = On | ||||
| DI | 36doc 10037 | Louver Relay | BIT | Read | 0 = Off; 1 = On | ||||
| DI | 37doc 10038 | Gas Valve | BIT | Read | 0 = Off; 1 = On | ||||
| DI | 38doc 10039 | System Pump | BIT | Read | 0 = Off; 1 = On | ||||
| DI | 43doc 10044 | DHW Recirculation Pump | BIT | Read | 0 = Off; 1 = On | ||||
| IR | 0doc 30001 | Discrete Inputs 1-16 | Packed copy of discrete inputs 1-16. | UINT16 | Read | ||||
| IR | 1doc 30002 | Discrete Inputs 17-32 | Packed copy of discrete inputs 17-32. | UINT16 | Read | ||||
| IR | 2doc 30003 | Discrete Inputs 33-48 | Packed copy of discrete inputs 33-48. | UINT16 | Read | ||||
| IR | 4doc 30005 | System Pump Speed | UINT16 | % | Read | ||||
| IR | 5doc 30006 | Cascade Total Power | Total cascade capacity (100-800 %). | UINT16 | % | Read | |||
| IR | 6doc 30007 | Cascade Current Power | Current cascade output (0-800 %). | UINT16 | % | Read | |||
| IR | 8doc 30009 | Outlet Temperature | Raw is degrees C x 10 (manual example: 683 = 68.3 C). | UINT16 | × 0.1 | °C | Read | ||
| IR | 9doc 30010 | Inlet Temperature | INT16 | × 0.1 | °C | Read | |||
| IR | 10doc 30011 | Flue Temperature | INT16 | × 0.1 | °C | Read | |||
| IR | 11doc 30012 | Firing Rate | UINT16 | % | Read | ||||
| IR | 12doc 30013 | Boiler Pump Speed | UINT16 | % | Read | ||||
| IR | 13doc 30014 | Boiler Status Code | What the appliance is doing; 40 = lockout. | UINT16 | Read | 2 = Heat demand blocked: high absolute outlet temperature; 3 = Heat demand blocked: high absolute flue temperature; 4 = Heat demand blocked: high absolute delta T; 8 = Heat demand blocked: low 24 VAC; 9 = Outdoor shutdown; 10 = Blocked: boiler switched off at display; 12 = Blocked: no correct cascade communication; 16 = Service function; 19 = DHW function storage tank; 21 = SH heat demand from room thermostat; 22 = SH heat demand from BMS; 23 = SH heat demand from cascade; 30 = Heat demand from freeze protection; 32 = DHW pump delay; 33 = SH pump delay; 34 = No heat function (after pump delay); 40 = Lockout; 32764 = Busy updating status; 32765 = DHW blocked: no tank sensor; 32766 = Burner control(s) manually shut down; 32767 = Code not present | |||
| IR | 14doc 30015 | Boiler Blocking Code | Reason heat demand is blocked or limited. | UINT16 | Read | 0 = No blocking; 1 = SH blocking; 2 = Low 24 VAC supply; 3 = General block; 4 = MRHL open; 5 = Boiler switched off (display); 6 = Wrong cascade communication; 7 = High delta T; 8 = High flue temperature; 9 = High outlet temperature; 10 = Service blocking; 12 = DHW blocking, high outlet temperature; 13 = Anti-cycling time; 14 = Storage tank demand blocked, fan problem; 15 = No system sensor with leader control present; 16 = Fan speed limited, high outlet temperature; 17 = Fan min decreased, low flame current; 18 = Max fan speed limited, high delta T; 19 = Max fan speed limited, high flue temperature; 32767 = Code not present | |||
| IR | 15doc 30016 | Boiler Lockout Code | Lockout reason; only valid while status code is 40. | UINT16 | Read | 161 = Parameters not re-programmed by Lochinvar; 164 = No reset allowed (> 15 minutes); 166 = Auto reset high limit; 167 = Blocked drain; 168 = Louver proving; 169 = Gas pressure switch; 170 = Flow switch; 177 = Flue sensor short; 178 = Flue sensor open; 179 = Inlet sensor short; 180 = Inlet sensor open; 192 = Outlet sensor short; 193 = Outlet sensor open; 204 = CRC EEPROM failed; 205 = EEPROM programmed; 206 = EEPROM programming error; 207 = EEPROM write error; 229 = Watchdog; 230 = Fan low (should be high); 231 = Fan high (should be low); 232 = No flame when running; 233 = No flame after ignition; 234 = Simultaneous output APS and fan; 235 = APS active not closed; 236 = APS active not open; 237 = Flame out of sequence; 239 = Gas valve relay test failed; 240 = MRHL; 32767 = Code not present | |||
| HR | 0doc 40001 | Configuration | Selects which values the BAS supplies instead of the boiler's own inputs. | BITMAP16 | Read/write | bit 0 = Boiler Enable from BAS; bit 1 = Tank Thermostat from BAS; bit 2 = Rate Command / 0-10V Input / Setpoint Command from BAS; bit 3 = Tank Setpoint from BAS; bit 4 = System Supply Temperature from BAS; bit 5 = Outdoor Temperature from BAS; bit 6 = Tank Temperature from BAS; bit 7 = System Return Temperature from BAS | |||
| HR | 1doc 40002 | Coils | Command word written by the BAS; write the values given in the manual's control-mode tables. | UINT16 | Read/write | ||||
| HR | 2doc 40003 | 0-10 Volt Input / Rate Command / Setpoint Command | Modulation % or setpoint, per the BMS Type setting (0-100). | UINT16 | % | Read/write | |||
| HR | 4doc 40005 | Tank Temperature | Tank temperature supplied by the BAS. | INT16 | × 0.1 | °C | Read/write | ||
| HR | 5doc 40006 | Outdoor Temperature | Outdoor temperature supplied by the BAS (-40 to 60 C). | INT16 | × 0.1 | °C | Read/write | ||
| HR | 6doc 40007 | System Supply Temperature | System supply temperature supplied by the BAS. | INT16 | × 0.1 | °C | Read/write | ||
| HR | 7doc 40008 | DHW Recirculation Temperature | DHW recirculation temperature supplied by the BAS. | INT16 | × 0.1 | °C | Read/write |
Notes on this map
- Temperatures: the manual's conversion section says the appliance passes temperatures in degrees C multiplied by 10 (worked examples: outdoor 26.7 C sent as 267; outlet 683 read as 68.3 C). Scale 0.1 is applied to every temperature register.
- Removed: System/Cascade Setpoint (30004), Outlet Setpoint (30008) and Tank Setpoint (40004). The memory map gives these a 0.5 C resolution while the conversion section says all temperature data is degrees C x 10, and the worked examples only cover other registers (outdoor temperature and outlet temperature). Because the scaling of these three is not settled by the document, they are left out.
- Signed types: registers whose published minimum is negative (inlet, flue, tank, outdoor, supply/return temperatures) are listed as INT16; the manual itself only says '16-bit word'.
- Dip switch 8 on the communication board selects degrees C (OFF) or F (ON) for the display/data; units here assume C (switch OFF), matching the manual's tables and conversion examples.
- Holding register 40002 'Coils' has no bit list: the manual's tables write 0x0001 to enable the unit but 0x0008 for the tank thermostat, which does not match the tank thermostat being coil 00005. Write only the exact values from the manual's control-mode tables.
- Input registers 30001-30003 are packed copies of the discrete inputs; the bit-to-input order is not stated, so they are listed as UINT16. Use the discrete inputs instead.
- The same manual also covers AWH and KBX appliances (pp. 30-33) with similar holding-register use; this map follows the main memory map on pp. 13-14.
Check it against the live device. A register map tells you what the controller can expose; the unit in front of you may differ by firmware or options. Read a few registers and compare them with the unit’s own display; for a 32-bit value the float and byte-order decoder shows all four word orders at once, so a wrong word order or scale is obvious. New to this? Read what a register map is and why addresses are off by one.
Questions about the Lochinvar Knight / Armor / Wall Mount boilers (ModBus communication board)
What Modbus registers does the Lochinvar Knight / Armor / Wall Mount boilers (ModBus communication board) have?
This map lists 43 registers: 4 coils, 18 discrete inputs, 14 input registers, 7 holding registers. 11 of them can be written. Registers vary with firmware, options and configuration, so confirm against the device.
Are the Lochinvar Knight / Armor / Wall Mount boilers (ModBus communication board) Modbus addresses 0-based or 1-based?
The manufacturer's document numbers registers Modicon 3xxxx/4xxxx (drop the prefix, subtract 1). Every address on this page is the 0-based wire address you put in the request; the documented number is shown under it where it differs. Addresses are printed Modicon-style (00001 coils, 10001 discrete inputs, 30001 input registers, 40001 holding registers). Subtract the table base and 1 for the wire address, e.g. Outlet Temperature 30009 is input register 8.
What are the minimum Modbus registers to integrate the Lochinvar Knight / Armor / Wall Mount boilers (ModBus communication board)?
Start with HR 0 Configuration (Configuration bits: which values come from the BAS); HR 1 Coils (Enable / thermostat command word); HR 2 0-10 Volt Input / Rate Command / Setpoint Command (Rate (%) or setpoint command); IR 8 Outlet Temperature (Outlet temperature); IR 9 Inlet Temperature (Inlet temperature); IR 11 Firing Rate (Firing rate); IR 13 Boiler Status Code (Status code); IR 15 Boiler Lockout Code (Lockout code).
How do I enable Modbus control of the Lochinvar Knight / Armor / Wall Mount boilers (ModBus communication board)?
In the boiler installer menu go to CONTROL MODES and set ModBus to ACTIVE, then pick the control mode (enable only, enable + rate/setpoint, rate only, DHW). Set BMS TYPE to POWER or SETPOINT for rate commands. Re-send the configuration word in 40001 before each command.
What happens when the Lochinvar Knight / Armor / Wall Mount boilers (ModBus communication board) loses Modbus communication?
MODBUS T/O in the CONTROL MODES menu, 5-120 s (default 10 s): if BAS-supplied temperatures or the 0-10 V value are not refreshed in time the boiler falls back to its own sensors. Enable-type commands must be refreshed at least every 4 minutes or the boiler reverts to its own inputs.
Where is the official Lochinvar Knight / Armor / Wall Mount boilers (ModBus communication board) Modbus documentation?
The source is ModBus and BACnet Communication Instructions (Knight, Knight XL, Armor, Outdoor Knight, AQUAS, FTXL, Wall Mount, Wall Hung, Shield) (MODB-I-O_100161545_2000014822 Rev T), published free by Lochinvar at https://assets.lochinvar.com/damroot/Original/10014/MODB-I-O_100161545_2000014822_Rev_T_(54850).pdf.
More Lochinvar Modbus register maps
Source: ModBus and BACnet Communication Instructions (Knight, Knight XL, Armor, Outdoor Knight, AQUAS, FTXL, Wall Mount, Wall Hung, Shield) · MODB-I-O_100161545_2000014822 Rev T. Register numbers, types, scaling and units are reproduced as published; descriptions are our own.