- Home
- Modbus register maps
- Flexit
- Nordic residential air handling unit (Flexit GO, built-in Modbus)
Air handler · Modbus register map
Flexit Nordic residential air handling unit (Flexit GO, built-in Modbus) Modbus register map
Updated 24 October 2026
Flexit Nordic units are residential balanced-ventilation air handlers with heat recovery. The controller exposes a Modbus RTU slave on RS-485: measurements and outputs are 32-bit IEEE floats over two registers (high word first), while modes, digital inputs and alarm states are single 16-bit registers. This map covers temperatures, fan speeds, ventilation mode commands, home/away set points, filter timer and the A/B alarm handling.
This page lists 59 Modbus registers for the Flexit Nordic residential air handling unit (Flexit GO, built-in Modbus) — 14 writable — with the table, 0-based wire address, data type, word order, scale, units and access of each, re-typed from Flexit’s own free documentation (linked below) and checked against it.
- Manufacturer
- Flexit
- Model
- Nordic residential air handling unit (Flexit GO, built-in Modbus)
- Equipment type
- Air handler
- Registers
- 59 (14 writable)
- Transport
- Modbus RTU
- Default unit ID
- 1
- Default serial
- 9600 baud, 8E1
- Documented addressing
- 0-based (the number printed is the address on the wire)
- 32-bit word order
- ABCD high word first (big-endian)
- Also known as
- Nordic S2, Nordic S3, Nordic S4, Nordic CL2, Nordic CL3, Nordic CL4, Flexit GO, Modbus Nordic Basic, 117989
Integration notes: Flexit Nordic residential air handling unit (Flexit GO, built-in Modbus)
Wire RS-485 to terminals 16 (D+), 17 (D-) and 18 (G0) through harness 116405, poll at 9600 8E1 address 1, and check 4x9001 = 0 first. Read temperatures and fan outputs as ABCD floats; set the ventilation mode with 4x2013 after writing 4x2040 = 1.
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 9001 | System status | UINT16 | System status (must be operation mode) | Read |
| IR 5 | Supply air temperature | FLOAT32 ABCD | Supply air temperature | Read |
| IR 1 | Outside air temperature | FLOAT32 ABCD | Outside air temperature | Read |
| IR 9 | Extract air temperature | FLOAT32 ABCD | Extract air temperature | Read |
| IR 3034 | Heat recovery ventilation state | UINT16 | Current ventilation mode | Read |
| HR 2013 | Room operating mode | UINT16 | Ventilation mode command | Read/write |
| HR 2040 | Comfort button | UINT16 | Comfort button (enables 4x2013) | Read/write |
| HR 1155 | Setpoint temperature when home | FLOAT32 ABCD | Home temperature set point | Read/write |
| IR 3001 | A-alarm indication | UINT16 | A-alarm indication | Read |
| HR 1271 | Operating time filter | FLOAT32 ABCD | Filter operating hours | Read/write |
Enable Modbus control & writes
Modbus is built into the Nordic controller; connect a master with cable harness 116405. 4x2013 Room operating mode works only while 4x2040 Comfort button = 1, and a mode selected on a digital input overrides it.
Byte order & addressing
- Addresses are 0-based: use the number after 3x/4x unchanged on the wire.
- Floats and 32-bit unsigned values occupy two registers with the high word in the lower address (ABCD); write them with FC 16 only.
- Many float registers sit at odd addresses (3x0001, 3x0005); read each as a 2-register block starting at the listed address.
- Several 16-bit enums start at 1, not 0 (ventilation state, alarm indication/state, the trigger and acknowledge registers).
Network setup
- Defaults: address 1 (1-247), 9600 baud (9600/19200), 8 data bits, even parity (none/even/odd), 1 stop bit (1/2).
- Nordic terminals: 16 = D+, 17 = D-, 18 = Ref (G0). Cable length 30 m maximum.
- Supported function codes: 03, 04, 06 and 16; up to 125 registers per read and 123 per write.
Watch out for
- If 4x9001 reads 2 (configuration mode) the other registers do not answer.
- A write that is out of range is clamped: the controller replies with the value actually stored, so read back after writing.
- A bulk read across a gap between defined registers fails with exception 02; read separate blocks.
- Temporary High and fireplace modes are started by writing 2 to 4x3006/4x3007, not by 4x2013.
Flexit Nordic residential air handling unit (Flexit GO, built-in Modbus) 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 |
|---|---|---|---|---|---|---|---|---|---|
| IR | 1doc 3x0001 | Outside air temperature | -50 to 50 °C. | FLOAT32 | ABCD | °C | Read | ||
| IR | 5doc 3x0005 | Supply air temperature | -50 to 80 °C. | FLOAT32 | ABCD | °C | Read | ||
| IR | 9doc 3x0009 | Extract air temperature | -50 to 80 °C. | FLOAT32 | ABCD | °C | Read | ||
| IR | 13doc 3x0013 | Exhaust air temperature | -50 to 80 °C. | FLOAT32 | ABCD | °C | Read | ||
| IR | 17doc 3x0017 | Room temperature | From the CI70 panel sensor, 0 to 50 °C. | FLOAT32 | ABCD | °C | Read | ||
| IR | 21doc 3x0021 | Supply air fan speed feedback | Measured supply fan speed. | FLOAT32 | ABCD | rpm | Read | ||
| IR | 25doc 3x0025 | Exhaust air fan speed feedback | Measured exhaust fan speed. | FLOAT32 | ABCD | rpm | Read | ||
| IR | 37doc 3x0037 | Supply air pressure | Only with duct-pressure fan control (CI80). | FLOAT32 | ABCD | Pa | Read | ||
| IR | 41doc 3x0041 | Extract air pressure | Only with duct-pressure fan control (CI80). | FLOAT32 | ABCD | Pa | Read | ||
| IR | 61doc 3x0061 | Extract air relative humidity | Only if a humidity sensor is configured on X3. | FLOAT32 | ABCD | % | Read | ||
| IR | 149doc 3x0149 | Room air quality input value | Air-quality sensor on X3, 0-2000 ppm; only if configured. | FLOAT32 | ABCD | ppm | Read | ||
| IR | 1001doc 3x1001 | Room air humidity 1 | Wireless CI77 sensor 1; needs the CI75 adapter. | FLOAT32 | ABCD | % | Read | ||
| IR | 1003doc 3x1003 | Room air humidity 2 | Wireless CI77 sensor 2; needs the CI75 adapter. | FLOAT32 | ABCD | % | Read | ||
| IR | 1005doc 3x1005 | Room air humidity 3 | Wireless CI77 sensor 3; needs the CI75 adapter. | FLOAT32 | ABCD | % | Read | ||
| IR | 1007doc 3x1007 | Room air quality 1 (CO2) | Wireless CI76 CO2 sensor; needs the CI75 adapter. | FLOAT32 | ABCD | ppm | Read | ||
| IR | 1021doc 3x1021 | A-alarm code | Code of the active A alarm, 0-9999. | FLOAT32 | ABCD | Read | |||
| IR | 1023doc 3x1023 | B-alarm code | Code of the active B alarm, 0-9999. | FLOAT32 | ABCD | Read | |||
| IR | 1025doc 3x1025 | Fault counter | Number of entries in the fault list. | FLOAT32 | ABCD | Read | |||
| IR | 1027doc 3x1027 | Fault list number | Current position in the fault list. | FLOAT32 | ABCD | Read | |||
| IR | 1029doc 3x1029 | Display fault list | Alarm code at the current fault-list position. | FLOAT32 | ABCD | Read | |||
| IR | 1035doc 3x1035 | Remaining time of rapid ventilation | Minutes left of temporary High. | FLOAT32 | ABCD | min | Read | ||
| IR | 1037doc 3x1037 | Remaining time of fireplace ventilation | Minutes left of fireplace mode. | FLOAT32 | ABCD | min | Read | ||
| IR | 3001doc 3x3001 | A-alarm indication | UINT16 | Read | 1 = Normal; 2 = Alarm | ||||
| IR | 3002doc 3x3002 | A-alarm state | UINT16 | Read | 1 = Acknowledged, unlocked; 2 = Unacknowledged; 3 = Locked | ||||
| IR | 3003doc 3x3003 | B-alarm indication | UINT16 | Read | 1 = Normal; 2 = Alarm | ||||
| IR | 3004doc 3x3004 | B-alarm state | UINT16 | Read | 1 = Acknowledged, unlocked; 2 = Unacknowledged; 3 = Locked | ||||
| IR | 3006doc 3x3006 | High input | Only if configured on DI1 or DI2. | UINT16 | Read | 0 = Inactive; 1 = Active | |||
| IR | 3007doc 3x3007 | Home input | Only if configured on DI1, DI2 or X8. | UINT16 | Read | 0 = Inactive; 1 = Active | |||
| IR | 3008doc 3x3008 | Away input | Only if configured on DI1, DI2 or X8. | UINT16 | Read | 0 = Inactive; 1 = Active | |||
| IR | 3009doc 3x3009 | Stop input | Only if configured on DI1 or DI2. | UINT16 | Read | 0 = Inactive; 1 = Active | |||
| IR | 3010doc 3x3010 | Fireplace ventilation input | Only if configured on DI1 or DI2. | UINT16 | Read | 0 = Inactive; 1 = Active | |||
| IR | 3011doc 3x3011 | Cooker hood ventilation input | Only if configured on DI1 or DI2. | UINT16 | Read | 0 = Inactive; 1 = Active | |||
| IR | 3013doc 3x3013 | Fire damper feedback | Only if a fire damper with feedback is configured. | UINT16 | Read | 0 = Inactive; 1 = Active | |||
| IR | 3015doc 3x3015 | Emergency off | Only if configured on X8. | UINT16 | Read | 0 = Inactive; 1 = Active | |||
| IR | 3023doc 3x3023 | Heating coil overtemperature detector | Only with an electric heater. | UINT16 | Read | 0 = Inactive; 1 = Active | |||
| IR | 3034doc 3x3034 | Heat recovery ventilation state | Ventilation mode the unit is running now. | UINT16 | Read | 1 = Off; 2 = Away; 3 = Home; 4 = High; 5 = Fume hood; 6 = Fireplace; 7 = Temporary high | |||
| HR | 1doc 4x0001 | Rotary heat exchanger speed | Output signal, 0-100 %. | FLOAT32 | ABCD | % | Read | ||
| HR | 5doc 4x0005 | Supply air fan speed | Fan output signal, 0-100 %. | FLOAT32 | ABCD | % | Read | ||
| HR | 9doc 4x0009 | Exhaust air fan speed | Fan output signal, 0-100 %. | FLOAT32 | ABCD | % | Read | ||
| HR | 13doc 4x0013 | Heating coil electric position | Only with an electric heater. | FLOAT32 | ABCD | % | Read | ||
| HR | 17doc 4x0017 | Heating coil valve position | Only with water heating. | FLOAT32 | ABCD | % | Read | ||
| HR | 25doc 4x0025 | Cooling coil valve position | Only with water cooling and the valve on X7. | FLOAT32 | ABCD | % | Read | ||
| HR | 1103doc 4x1103 | Rapid ventilation runtime | Length of temporary High, 1-360 min. | UINT32 | ABCD | min | Read/write | ||
| HR | 1105doc 4x1105 | Fireplace ventilation runtime | Length of fireplace mode, 0-360 min. | UINT32 | ABCD | min | Read/write | ||
| HR | 1155doc 4x1155 | Setpoint temperature when home | 10 to 30 °C. | FLOAT32 | ABCD | °C | Read/write | ||
| HR | 1163doc 4x1163 | Setpoint temperature when away | 10 to 30 °C. | FLOAT32 | ABCD | °C | Read/write | ||
| HR | 1269doc 4x1269 | Operating time for filter replacement | Filter change interval, 0-99990 h. | FLOAT32 | ABCD | h | Read/write | ||
| HR | 1271doc 4x1271 | Operating time filter | Hours run on the current filter, 0-99999 h. | FLOAT32 | ABCD | h | Read/write | ||
| HR | 1615doc 4x1615 | Away delay timer duration | Delay before Comfort button 0 switches to Away, 0-600 min. | UINT32 | ABCD | min | Read/write | ||
| HR | 2001doc 4x2001 | Heating coil pump command | Only with water heating. | UINT16 | Read | 0 = Inactive; 1 = Active | |||
| HR | 2007doc 4x2007 | Outside air damper command | Only if the damper is configured on Q1-Q3. | UINT16 | Read | 0 = Inactive; 1 = Active | |||
| HR | 2013doc 4x2013 | Room operating mode | Requested ventilation mode; used only while Comfort button 4x2040 = 1. | UINT16 | Read/write | 1 = Stop; 2 = Away; 3 = Home; 4 = High | |||
| HR | 2040doc 4x2040 | Comfort button | 0 = Away after the delay in 4x1615; 1 = follow 4x2013. | UINT16 | Read/write | 0 = Inactive; 1 = Active | |||
| HR | 3002doc 4x3002 | A-alarm acknowledgement | Write 2 to acknowledge or 3 to reset. | UINT16 | Read/write | 1 = Ready; 2 = Acknowledge; 3 = Reset | |||
| HR | 3003doc 4x3003 | B-alarm acknowledgement | Write 2 to acknowledge. | UINT16 | Read/write | 1 = Ready; 2 = Acknowledge | |||
| HR | 3004doc 4x3004 | Fault list operation | 2 steps to the next fault; 3 clears inactive alarms. | UINT16 | Read/write | 1 = Ready; 2 = Next fault; 3 = Refresh | |||
| HR | 3006doc 4x3006 | Trigger temporary rapid ventilation | Write 2 to start temporary High. | UINT16 | Read/write | 1 = Ready; 2 = Trigger | |||
| HR | 3007doc 4x3007 | Trigger temporary fireplace ventilation | Write 2 to start fireplace mode. | UINT16 | Read/write | 1 = Ready; 2 = Trigger | |||
| HR | 9001doc 4x9001 | System status | Other registers answer only while this reads 0. | UINT16 | Read | 0 = Operation mode; 2 = Configuration mode |
Notes on this map
- Connection, serial defaults, function codes and data-type encoding come from the companion instruction 'Flexit GO - External Modbus communication', 117989-01, 2020-01 (English section pp. 12-15): https://flexitwebsiteprodstorage.blob.core.windows.net/product-documents/2881 . It defines 32-bit values as dd cc at register x and bb aa at x+1, i.e. most significant word first (ABCD); the sheet header also says big-endian byte order.
- Both documents are listed on Flexit's FlexitGO product page (Documentation tab).
- Register 4x9001 System Status gates the rest: the sheet says the Modbus registers are only reachable while it reads 0 (Operation mode).
- Left out: 'Frost protection temp. for heating coil' (3x0033), because the sheet gives it units Pa and a -3000 to 3000 range, which cannot be right for a temperature.
- Left out: smoke/fire fan operation and CO detector inputs (3x3016-3x3020), fire damper command 4x2043 and cooling pump command 4x2004 - option-only points; read them from the sheet if your unit has them.
- Output registers 4x0001-4x0025 and 4x2001/4x2007 are holding registers but marked read-only (R) in the sheet; they report what the controller is driving and cannot be overridden.
- Alarm code values (3x1021 etc.) are numbers whose meanings are in the unit's alarm list, which this sheet does not reproduce.
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 Flexit Nordic residential air handling unit (Flexit GO, built-in Modbus)
What Modbus registers does the Flexit Nordic residential air handling unit (Flexit GO, built-in Modbus) have?
This map lists 59 registers: 36 input registers, 23 holding registers. 14 of them can be written. Registers vary with firmware, options and configuration, so confirm against the device.
Are the Flexit Nordic residential air handling unit (Flexit GO, built-in Modbus) Modbus addresses 0-based or 1-based?
The manufacturer's document numbers registers 0-based (the number printed is the address on the wire). 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. The register sheet's address column is headed 'Modbus address (Base 0)' and prints references with a table prefix (3x = input register, FC 04; 4x = holding register, FC 03/06/16). The number after the prefix is the wire address unchanged: 3x0001 -> input register 1, 4x2013 -> holding register 2013.
What byte order does the Flexit Nordic residential air handling unit (Flexit GO, built-in Modbus) use for 32-bit values?
Multi-register values in this map use ABCD (high word first (big-endian)). Set your client to this order for every 32/64-bit value in the table.
What are the minimum Modbus registers to integrate the Flexit Nordic residential air handling unit (Flexit GO, built-in Modbus)?
Start with HR 9001 System status (System status (must be operation mode)); IR 5 Supply air temperature (Supply air temperature); IR 1 Outside air temperature (Outside air temperature); IR 9 Extract air temperature (Extract air temperature); IR 3034 Heat recovery ventilation state (Current ventilation mode); HR 2013 Room operating mode (Ventilation mode command); HR 2040 Comfort button (Comfort button (enables 4x2013)); HR 1155 Setpoint temperature when home (Home temperature set point); IR 3001 A-alarm indication (A-alarm indication); HR 1271 Operating time filter (Filter operating hours).
How do I enable Modbus control of the Flexit Nordic residential air handling unit (Flexit GO, built-in Modbus)?
Modbus is built into the Nordic controller; connect a master with cable harness 116405. 4x2013 Room operating mode works only while 4x2040 Comfort button = 1, and a mode selected on a digital input overrides it.
Where is the official Flexit Nordic residential air handling unit (Flexit GO, built-in Modbus) Modbus documentation?
The source is Modbus Nordic Basic (register sheet, Modbus_Nordic_Basic.xlsx), published free by Flexit at https://flexitwebsiteprodstorage.blob.core.windows.net/product-documents/2883.
Source: Modbus Nordic Basic (register sheet, Modbus_Nordic_Basic.xlsx). Register numbers, types, scaling and units are reproduced as published; descriptions are our own.