Merged reference combining two upstream documents:
- 2015 NeoPool docs — Sugar Valley, Juan Ramón Vadillo (March 23rd, 2015) — archived at
docs/modbus-registers-v2015.md- 2023 Vistapool docs v10.23 — Hayward technical department (October 13th, 2023) — archived at
docs/modbus-registers-v2023.mdWhere both sources document the same address, the 2015 text is canonical and the v10.23 wording is referenced via callouts. Registers introduced in v10.23 are marked Documented in 2023 v10.23 (Hayward / Vistapool); not present in 2015 NeoPool spec.
Two addresses (
0x0403and0x0430) are documented under different names and meanings in the two sources — those entries carry an explicit Note (v10.23 firmware) callout pointing at the alternate definition.
| Year | Maker | Filename | Notes |
|---|---|---|---|
| 2015 | Sugar Valley / NeoPool | docs/modbus-registers-v2015.md |
Canonical text for shared registers |
| 2023 | Hayward / Vistapool v10.23 | docs/modbus-registers-v2023.md |
New registers; conflict callouts at 0x0403 / 0x0430 |
The NeoPool / Vistapool Control System is equipped with RS485 communication ports using a MODBUS protocol that allows a remote controller to adjust the different working parameters of the device. The 2015 spec mentions two such ports; the 2023 v10.23 spec lists three.
The first port, labelled on the board as "DISPLAY", is usually connected to the Screen Controller, which is itself a MODBUS master. The other port, labelled as "RF/WIFI", is available for external communications.
A semaphore system has been implemented between all ports in order to manage register change requests happening simultaneously in both ports. However, the remote masters can always read any register concurrently.
The slave has the MODBUS address 1 as default communication address, but it can be changed with a reserved procedure (see MBF_NODE_ADDR).
Communication parameters for the RS485 asynchronous serial port:
| Parameter | Value |
|---|---|
| Baud rate | 19200 bauds |
| Parity | None |
| Stop bits | 1 |
Warning: The alteration of registers other than the ones described in this document could lead to a bad operation of the system, and in some cases, to an unrecoverable failure requiring technical assistance.
The register set is divided into 7 different pages:
| Starting Address | Name | Description |
|---|---|---|
| 0x0000 | MODBUS | Manages general configuration of the box. This page is reserved for internal purposes. |
| 0x0100 | MEASURE | Contains the different measurement information including hydrolysis current, pH level, redox level, etc. |
| 0x0200 | GLOBAL | Contains global information, such as the amount of time that each power unit has been working. |
| 0x0300 | FACTORY | Contains factory data such as calibration parameters for the different power units. |
| 0x0400 | INSTALLER | Contains a set of configuration registers related to the box installation, such as the relays used for each function, the amount of time that each pump must operate, etc. |
| 0x0500 | USER | Contains user configuration registers, such as the production level for the ionization and the hydrolysis, or the set points for the pH, redox, or chlorine regulation loops. |
| 0x0600 | MISC | Contains the configuration parameters for the screen controllers (language, colours, sound, etc.). |
Any modifications done over the registers should be made persistent by requesting an EEPROM storage. See MBF_SAVE_TO_EEPROM for more information.
Documented in 2023 v10.23 (Hayward / Vistapool); not present in 2015 NeoPool spec.
This register contains the current MODBUS slave address. Writing to this register changes the MODBUS address of the node.
The value of this register must be in the range of 1 to 240, both inclusive. Address 0 is reserved for sending broadcast messages to all devices.
When a write to this register occurs, the system must complete the write transaction by sending the response message, and only after that perform the change of the MODBUS address.
Current measured in the ionization system. The value is obtained from the microcontroller ADC and corrected using the calibration data:
MBF_PAR_ION_NOM: Maximum ionization currentMBF_PAR_ION_CAL0: ADC value measured at idle stateMBF_PAR_ION_CAL1: ADC value measured at maximum ionization current
Formula: MBF_ION_CURRENT = (adcValue - MBF_PAR_ION_CAL0) / (MBF_PAR_ION_CAL1 - MBF_PAR_ION_CAL0) * MBF_PAR_ION_NOM
Current working level measured in the hydrolysis/electrolysis system.
Formula: MBF_HIDRO_CURRENT = (hidroAdcValue - MBF_PAR_HIDRO_CAL0) / (MBF_PAR_HIDRO_CAL1 - MBF_PAR_HIDRO_CAL0) * MBF_PAR_HIDRO_NOM
pH level measured in hundredths. A value of 700 means pH 7.00.
This register is only valid if the pH module is enabled. Check MBF_PH_STATUS for the module status.
Redox/ORP level measured in hundredths of ppm. A value of 100 means 1.00 ppm.
This register is only valid if the Redox module is enabled. Check MBF_RX_STATUS.
Chlorine concentration level measured in hundredths of ppm. A value of 100 means 1.00 ppm.
This register is only valid if the Chlorine module is enabled. Check MBF_CL_STATUS.
Conductivity level measured in the water. Only valid if the conductivity module is enabled. Check MBF_CD_STATUS.
Temperature measured by the water temperature sensor, in tenths of degrees Celsius. A value of 200 means 20.0 °C.
Status of the pH control module. Bitmask:
| Bits | Mask | Description |
|---|---|---|
| 0-3 | 0x000F | pH alarm (see alarm value tables below) |
| 7 | 0x0080 | Regulation out of range (value on the wrong side of setpoint; not exposed as entity — too sensitive for practical use) |
| 10 | 0x0400 | pH control module controlled by flow detection (if enabled via MBF_PAR_HIDRO_ION_CAUDAL) |
| 11 | 0x0800 | Low pH pump relay on (pump activated) |
| 12 | 0x1000 | High pH pump relay on (pump activated) |
| 13 | 0x2000 | pH control module active and controlling pumps |
| 14 | 0x4000 | pH measurement module active and taking measurements |
| 15 | 0x8000 | pH measurement module detected |
pH alarm values for acid and base regulation:
| Value | Description |
|---|---|
| 0 | No alarm |
| 1 | pH too high: pH value exceeds PH1 setpoint by 0.8 units |
| 2 | pH too low: pH value is below PH2 setpoint by 0.8 units |
| 3 | pH pump (acid or base) exceeded the maximum working time set in MBF_PAR_RELAY_PH_MAX_TIME and has been stopped |
| 4 | pH value is above PH1 setpoint |
| 5 | pH value is below PH2 setpoint |
| 6 | Acid or base tank empty (float switch tripped) |
pH alarm values for acid-only regulation:
| Value | Description |
|---|---|
| 0 | No alarm |
| 1 | pH too high: pH value exceeds PH1 setpoint by 0.8 units |
| 2 | pH too low: pH value is below PH1 setpoint by 0.8 units |
| 3 | pH pump exceeded maximum working time and has been stopped |
| 4 | pH value is above PH1 setpoint + 0.1 |
| 5 | pH value is below PH1 setpoint - 0.3 |
| 6 | Acid tank empty (float switch tripped) |
pH alarm values for base-only regulation:
| Value | Description |
|---|---|
| 0 | No alarm |
| 1 | pH too high: pH value exceeds PH2 setpoint by 0.8 units |
| 2 | pH too low: pH value is below PH2 setpoint by 0.8 units |
| 3 | pH pump exceeded maximum working time and has been stopped |
| 4 | pH value is above PH2 setpoint + 0.1 |
| 5 | pH value is below PH2 setpoint - 0.3 |
| 6 | Base tank empty (float switch tripped) |
Status of the Redox/ORP control module. Bitmask:
| Bits | Mask | Description |
|---|---|---|
| 7 | 0x0080 | Regulation out of range (Redox below setpoint; not exposed as entity — too sensitive for practical use) |
| 12 | 0x1000 | Redox pump relay on (pump activated) |
| 13 | 0x2000 | Redox control module active and controlling pump |
| 14 | 0x4000 | Redox measurement module active and taking measurements |
| 15 | 0x8000 | Redox measurement module detected in the system |
Status of the chlorine control module. Bitmask:
| Bits | Mask | Description |
|---|---|---|
| 3 | 0x0008 | Chlorine probe flow sensor. Integrated in the probe itself; detects if water is passing through the chlorine measurement probe. If 0, the chlorine measurement is not valid. |
| 7 | 0x0080 | Regulation out of range (value on the wrong side of setpoint; not exposed as entity — too sensitive for practical use) |
| 12 | 0x1000 | Chlorine pump relay on (pump activated) |
| 13 | 0x2000 | Chlorine control module active and controlling pump |
| 14 | 0x4000 | Chlorine measurement module active and taking measurements (display bar should be shown) |
| 15 | 0x8000 | Chlorine measurement module detected in the system |
Status of the conductivity control module. Bitmask:
| Bits | Mask | Description |
|---|---|---|
| 7 | 0x0080 | Regulation out of range (value on the wrong side of setpoint; not exposed as entity — too sensitive for practical use) |
| 12 | 0x1000 | Conductivity pump relay on (pump activated) |
| 13 | 0x2000 | Conductivity control module active and controlling pump |
| 14 | 0x4000 | Conductivity measurement module active and taking measurements (display bar should be shown) |
| 15 | 0x8000 | Conductivity measurement module detected in the system |
Status of the ionization control module. Bitmask:
| Bit | Mask | Description |
|---|---|---|
| 0 | 0x0001 | On Target - the system has reached the configured setpoint |
| 1 | 0x0002 | Low - the ionization cannot reach the configured setpoint |
| 2 | 0x0004 | Elec - reserved |
| 3 | 0x0008 | Pr off - the programmed ionization time has been exceeded |
| 12 | 0x1000 | Ion Pol off - ionization in dead time |
| 13 | 0x2000 | Ion Pol 1 - ionization working in polarization 1 |
| 14 | 0x4000 | Ion Pol 2 - ionization working in polarization 2 |
Status of the hydrolysis/electrolysis control module. Bitmask:
| Bit | Mask | Description |
|---|---|---|
| 0 | 0x0001 | On Target - the system has reached the configured setpoint |
| 1 | 0x0002 | Low - the hydrolysis cannot reach the configured setpoint |
| 2 | 0x0004 | Elec - reserved |
| 3 | 0x0008 | Flow - cell flow indicator (FL1) |
| 4 | 0x0010 | Cover - cover input active |
| 5 | 0x0020 | Active - hydrolysis module active (hydroEnable) |
| 6 | 0x0040 | Control - hydrolysis working in regulation mode (hydroControlEnable) |
| 7 | 0x0080 | Redox enable - hydrolysis activation by the Redox module (rx_hen) |
| 8 | 0x0100 | Hidro shock enabled - chlorine shock mode active |
| 9 | 0x0200 | FL2 - chlorine probe flow indicator, if present |
| 10 | 0x0400 | Cl enable - hydrolysis activation by the chlorine module (cl_hen) |
| 11 | 0x0800 | Not used |
| 12 | 0x1000 | Ion Pol off - ionization in dead time |
| 13 | 0x2000 | Ion Pol 1 - ionization working in polarization 1 |
| 14 | 0x4000 | Ion Pol 2 - ionization working in polarization 2 |
| 15 | 0x8000 | Not used |
State of all configurable relays. Bitmask:
| Bit | Mask | Description |
|---|---|---|
| 0 | 0x0001 | Relay 1 state (1=on, 0=off) - normally assigned to pH |
| 1 | 0x0002 | Relay 2 state (1=on, 0=off) - normally assigned to filtration |
| 2 | 0x0004 | Relay 3 state (1=on, 0=off) - normally assigned to lighting |
| 3 | 0x0008 | Relay 4 state |
| 4 | 0x0010 | Relay 5 state |
| 5 | 0x0020 | Relay 6 state |
| 6 | 0x0040 | Relay 7 state |
Hydrolysis PWM duty cycle (0-65535). An internal value indicating the voltage being applied by the system to the hydrolysis cell to achieve the desired production current.
Bitmask indicating which register page has changed since the last time it was read. This enables a MODBUS master to refresh its cached register values in an optimized way, only re-reading pages that have changed rather than polling all registers periodically.
It is the responsibility of the MODBUS master to clear this register to 0 once the modified page registers have been read.
| Bit | Mask | Description |
|---|---|---|
| 0 | 0x0001 | MBMSK_NOTIF_MODBUS_CHANGED |
| 1 | 0x0002 | MBMSK_NOTIF_GLOBAL_CHANGED |
| 2 | 0x0004 | MBMSK_NOTIF_FACTORY_CHANGED |
| 3 | 0x0008 | MBMSK_NOTIF_INSTALLER_CHANGED |
| 4 | 0x0010 | MBMSK_NOTIF_USER_CHANGED |
| 5 | 0x0020 | MBMSK_NOTIF_MISC_CHANGED |
Voltage applied to the hydrolysis cell. Together with MBF_HIDRO_CURRENT (0x0101), this register allows extrapolation of the water salinity.
Documented in 2023 v10.23 (Hayward / Vistapool); not present in 2015 NeoPool spec.
This set of two registers contains the number of seconds that the chlorination cell has been working since the device was manufactured. The two registers must be read consecutively to build a 32-bit unsigned integer with the time.
This counter must not be erased as it is used to estimate the lifetime of the device.
Registers 0x0208-0x0209 - MBF_PAR_PARTIAL_HIDRO_WORK_TIME_LOW and MBF_PAR_PARTIAL_HIDRO_WORK_TIME_HIGH
Documented in 2023 v10.23 (Hayward / Vistapool); not present in 2015 NeoPool spec.
This set of two registers contains the number of seconds that the chlorination cell has been working since the counter was reset (partial counter). The two registers must be read consecutively to build a 32-bit unsigned integer with the time.
This counter is reset each time the cell is changed by the installer and it is used to estimate the total working time of a cell.
Writing the value 1 to this register immediately starts an EEPROM storage operation. During the EEPROM storage procedure, the system may be unresponsive to MODBUS requests. The operation will always last less than 1 second.
EEPROM write operations occur automatically every 10 minutes. However, after modifying a MODBUS configuration register it is recommended to force a write operation, as this is the only safe way to preserve the information if the box is switched off before the periodic EEPROM write automatically occurs.
Warning: The number of EEPROM write operations is guaranteed to be 100,000 cycles. Once this number is exceeded, safe storage of information cannot be guaranteed.
Documented in 2023 v10.23 (Hayward / Vistapool); not present in 2015 NeoPool spec.
A write operation to this register (with any value) restores the register memory to its factory default state immediately. This operation does not store the values into non-volatile EEPROM memory. To store the contents of the factory default state, a MBF_SAVE_TO_EEPROM operation has to be executed.
Documented in 2023 v10.23 (Hayward / Vistapool); not present in 2015 NeoPool spec.
A write operation to this register (with any value) resets the user time counters:
MBF_PAR_PARTIAL_HIDRO_WORK_TIMEMBF_PAR_PARTIAL_ION_WORK_TIMEMBF_PAR_PARTIAL_UV_WORK_TIME
These counters are associated with the user-level access.
This operation does not store the values into non-volatile EEPROM memory. To store the contents of the factory default state, a MBF_SAVE_TO_EEPROM operation has to be executed.
Documented in 2023 v10.23 (Hayward / Vistapool); not present in 2015 NeoPool spec.
A write operation to this register (with any value) stops the operation of all modules. The following operational functions are affected:
- Hydrolysis / Chlorination
- Ionization
- pH, ORP, Conductivity and chlorine control
- Ultraviolet water depuration
- Filtration pump control
- All auxiliary relays
The operation of all those functions can be relaunched by means of the MBF_RESTART_MODULES register.
Documented in 2023 v10.23 (Hayward / Vistapool); not present in 2015 NeoPool spec.
A write operation to this register (with any value) restarts the operation of all function modules of the device. The following operational functions are affected:
- Hydrolysis / Chlorination
- Ionization
- pH, ORP, Conductivity and chlorine control
- Ultraviolet water depuration
- Filtration pump control
- All auxiliary relays
It is recommended to relaunch all modules if a parameter change has taken place, like filtration scheduler programming, filtration mode, etc.
Warning: The factory registers marked as "DO NOT MODIFY" must not be changed. Uncontrolled modification of these registers could lead to bad operation of the system, and in some cases to an unrecoverable failure requiring technical assistance.
PowerBox software version. Not used.
Equipment model options bitmask. DO NOT MODIFY.
| Bit | Mask | Name | Description |
|---|---|---|---|
| 0 | 0x0001 | MBMSK_MODEL_ION |
Device includes copper-silver ionization control |
| 1 | 0x0002 | MBMSK_MODEL_HIDRO |
Device includes hydrolysis or electrolysis |
| 2 | 0x0004 | MBMSK_MODEL_UV |
Device includes UV lamp disinfection control |
| 3 | 0x0008 | MBMSK_MODEL_SALINITY |
Device includes salinity measurement (Fanless devices only) |
Equipment serial number. Not used.
Maximum ionization production level. DO NOT MODIFY.
Maximum hydrolysis/electrolysis production level. If the hydrolysis module operates in percent mode, this value is 100. If operating in g/h mode, this value contains the maximum production in g/h units. DO NOT MODIFY.
Current setpoint (in regulation) at which voltage is measured for salinity calculation.
Cell constant: the relationship between the measured resistance in the measurement process and its equivalence in g/l (grams per liter).
Salinity formula: $$\text{Salinity}{23°C} = \frac{R{CELL}}{K_{CELL}} \cdot \frac{1}{1 + T_{COMP} \cdot (T - 23°C)}$$
Temperature deviation coefficient of conductivity for salinity calculation.
Maximum voltage in tenths of a volt that can be reached by the hydrolysis current regulation. Default: 80 (= 8.0 V maximum cell operating voltage).
To make changes persistent, execute the EEPROM storage procedure described in
MBF_SAVE_TO_EEPROM.
Flow detection signal configuration for hydrolysis operation:
| Value | Name | Description |
|---|---|---|
| 0 | MBV_PAR_HIDRO_FLOW_SIGNAL_STD |
Standard detection based on conduction between an auxiliary electrode and either cell electrode |
| 1 | MBV_PAR_HIDRO_FLOW_SIGNAL_ALWAYS_ON |
Always connected - forces hydrolysis current generation even without flow detected |
| 2 | MBV_PAR_HIDRO_FLOW_SIGNAL_PADDLE |
Detection based on paddle switch connected to FL1 input |
| 3 | MBV_PAR_HIDRO_FLOW_SIGNAL_PADDLE_AND_STD |
Both paddle switch (FL1) AND standard detection; flow is detected when BOTH detect flow; hydrolysis stops if either opens |
| 4 | MBV_PAR_HIDRO_FLOW_SIGNAL_PADDLE_OR_STD |
Paddle switch (FL1) OR standard detection; flow is detected when EITHER detects flow; hydrolysis stops only if BOTH detect no flow |
Default: 0 (standard detection).
To make changes persistent, execute the EEPROM storage procedure described in
MBF_SAVE_TO_EEPROM.
PWM ramp-up rate in pulses per work cycle for hydrolysis. Controls the rate at which power delivered to the cell increases, enabling a gradual power ramp-up so as not to saturate the switching power supply. Default: 150.
To make changes persistent, execute the EEPROM storage procedure described in
MBF_SAVE_TO_EEPROM.
PWM ramp-down rate in pulses per work cycle for hydrolysis. Controls the rate at which power delivered to the cell decreases gradually, preventing the switching power supply from disconnecting due to lack of load. The ramp-down rate must match the type of cell used, as the cell stores charge after the current stimulus ceases. Default: 20.
To make changes persistent, execute the EEPROM storage procedure described in
MBF_SAVE_TO_EEPROM.
Time in minutes that the system must remain working in positive polarization during copper-silver ionization.
To make changes persistent, execute the EEPROM storage procedure described in
MBF_SAVE_TO_EEPROM.
Time in minutes that the system must remain working in negative polarization during copper-silver ionization.
To make changes persistent, execute the EEPROM storage procedure described in
MBF_SAVE_TO_EEPROM.
Time in minutes that the system must remain in dead time (no power delivery) during copper-silver ionization.
To make changes persistent, execute the EEPROM storage procedure described in
MBF_SAVE_TO_EEPROM.
Bitmask controlling external control of ionization, hydrolysis, and pumps. Active bits enable the corresponding behavior:
| Bit | Mask | Name | Description |
|---|---|---|---|
| 0 | 0x0001 | FL1_CTRL |
If FL1 signal is inactive, disable all system elements |
| 1 | 0x0002 | FL2_CTRL |
If FL2 signal is inactive, disable all system elements |
| 2 | 0x0004 | FULL_CL_HIDRO_CTRL |
If a Cl module is installed and its flow sensor is inactive, disable all system elements |
| 3 | 0x0008 | SLAVE |
If slave input is inactive, disable all system elements |
| 4 | 0x0010 | PADDLE_SWITCH |
Enable paddle switch |
| 5 | 0x0020 | PADDLE_SWITCH_INV |
Enable inverted paddle switch |
| 7 | 0x0080 | INVERSION |
Determines whether "active" means open or closed for input signals; allows inverting behavior (e.g., a paddle that closes when there is no flow) |
To make changes persistent, execute the EEPROM storage procedure described in
MBF_SAVE_TO_EEPROM.
Note (v10.23 firmware): the same address
0x0403is documented in the 2023 Hayward Vistapool spec under a different name —MBF_PAR_EXT_CTRL— but with the same bit-field semantics (FL1_CTRL/FL2_CTRL/FULL_CL_HIDRO_CTRL/SLAVE/PADDLE_SWITCH/PADDLE_SWITCH_INV/INVERSION). Only the symbolic name differs; the actual register layout and meaning match the 2015MBF_PAR_HIDRO_ION_CAUDALdescription above. Seedocs/modbus-registers-v2023.mdfor the v10.23 wording.
External hydrolysis control mode from measurement modules:
| Value | Description |
|---|---|
| 0 | No control |
| 1 | Standard control (on/off) |
| 2 | With timed pump |
Time in minutes for hydrolysis/electrolysis positive polarization.
To make changes persistent, execute the EEPROM storage procedure described in
MBF_SAVE_TO_EEPROM.
Time in minutes for hydrolysis/electrolysis negative polarization.
To make changes persistent, execute the EEPROM storage procedure described in
MBF_SAVE_TO_EEPROM.
Time in minutes for hydrolysis/electrolysis dead time (no power delivery).
To make changes persistent, execute the EEPROM storage procedure described in
MBF_SAVE_TO_EEPROM.
Two registers forming a 32-bit time counter. This counter stores the system time as seconds elapsed since January 1, 1970 (Unix Epoch).
MBF_PAR_TIME_LOW(0x0408): Low 16 bitsMBF_PAR_TIME_HIGH(0x0409): High 16 bits
See also MBF_ACTION_COPY_TO_RTC (0x04F0) for writing this time to the hardware RTC.
Relay number assigned to the acid pump function (pH modules only).
Relay number assigned to the base pump function (pH modules only).
Relay number assigned to the Redox regulation function. If the value is 0, no relay is assigned and therefore there is no pump function.
To check whether this relay is active:
- Method 1: Check the
MBMSK_RX_STATUS_RELAYbit inMBF_RX_STATUS - Method 2: Calculate the bit assigned to the relay in
MBF_RELAY_STATE
Relay number assigned to the chlorine pump function (free chlorine measurement modules only).
Relay number assigned to the conductivity pump function (brine) (conductivity measurement modules only).
Indicates whether the device has temperature measurement: 1 = yes, 0 = no.
Relay number assigned to the lighting function. 0 = inactive.
Filtration mode:
| Value | Name | Description |
|---|---|---|
| 0 | MANUAL | Always available. Allows filtration (and all dependent systems) to be switched on and off manually. |
| 1 | AUTO | Always available. Filtration is switched on and off according to the configuration of timers TIMER1, TIMER2, and TIMER3. |
| 2 | HEATING | Similar to AUTO mode, but includes temperature configuration for the heating function. Requires MBF_PAR_HEATING_MODE = 1 and an assigned heating relay. |
| 3 | SMART | Adjusts pump working times based on water temperature. Requires MBF_PAR_TEMPERATURE_ACTIVE = 1. |
| 4 | INTELLIGENT | Most complex mode - combines temperature and heating. Requires both MBF_PAR_TEMPERATURE_ACTIVE = 1 and MBF_PAR_HEATING_MODE = 1. |
| 13 | BACKWASH | Started when the backwash operation is activated. |
| 14 | CHLORINATION SHOCK | Started when the chlorination shock operation is activated. |
Mode 0: MANUAL
This mode allows the filtration to be switched on and off manually. No timers or additional functions are involved. The state is controlled via MBF_PAR_FILT_MANUAL_STATE.
Mode 1: AUTO (timed)
Filtration is switched on according to timers. The timers allow setting start and end times for filtration. Timers always operate on a daily basis.
Mode 2: HEATING (timed with optional climate control)
Works like AUTO mode but also includes a relay that is activated or deactivated based on water temperature. The setpoint temperature is configured in this mode, and the system uses a 1-degree hysteresis.
Additionally, there is an optional "climate control" (shown on screen as "CLIMA" on/off). This option keeps the filtration running after its scheduled period if the temperature is below the setpoint. When the setpoint is reached, filtration stops and does not restart until the next scheduled period.
Example of hysteresis: if the setpoint is 23 °C, the system activates when temperature drops below 22 °C and stops when it exceeds 23 °C.
Note: This mode is only visible when the temperature sensor option is active and heating is enabled.
Mode 3: SMART
Based on the AUTO/timed mode, but adjusts filtration times based on temperature. Two temperature parameters are provided: the maximum temperature (at which filtration times follow the configured timers) and the minimum temperature (at which filtration is reduced to 5 minutes, the minimum working time). Filtration times scale linearly between these two temperatures.
Additionally there is an optional anti-freeze mode, which keeps filtration on if the system temperature is below 2 °C.
Note: This mode is only visible when the temperature sensor option is active.
Mode 4: INTELLIGENT
The most complex filtration mode. It involves both temperature and heating.
The user has two working parameters:
- Desired temperature
- Minimum filtration time (minimum 2 hours, maximum 24 hours) = Tfilt
Operation:
- The system starts filtration every 2 hours.
- The minimum filtration time is divided into 12 segments (Tfon = Tfilt/12).
- A variable Tbonus = Tfilt - 2 hours is created.
- After 10 minutes, Tbonus starts counting down. When Tbonus is exhausted, filtration stops.
- After Tfon, the temperature is measured (the first 10 minutes ensure sufficient water flow). If the temperature is at or above the setpoint, filtration stops.
- If the temperature is below the setpoint, filtration continues and the time is deducted from Tbonus.
- Filtration runs a minimum of 10 minutes every 2 hours to check temperature. So the minimum filtration in intelligent mode is 2 hours per day (10 min × 12 times).
Example: with 10 hours minimum filtration time: 10h × 60min / 12 = 50 minutes per 2-hour interval. Of those 50 minutes, 10 are mandatory and 40 are used when heating is needed.
Note: This mode is only visible when the temperature sensor option is active.
Relay selected for the filtration function (default: relay 2). When this value is 0, no relay is assigned and the equipment does not control filtration; the filtration option will not appear in the user menu.
Filtration state in manual mode: 1 = on, 0 = off.
Heating mode: 0 = the device has no heating, 1 = the device has heating.
Relay selected for the heating function (default: relay 7). When this value is 0, no relay is assigned and the heating-related filtration modes will not be shown.
Heating setpoint temperature.
Climate mode activation: 0 = inactive, 1 = active.
Upper temperature threshold for Smart filtration mode.
Lower temperature threshold for Smart filtration mode.
Anti-freeze mode: 1 = enabled, 0 = disabled. Only available in Smart filtration mode.
Read-only. Reports what percentage (0-100%) is being applied to the nominal filtration time. A value of 100% means the full programmed filtration time is active.
Temperature setpoint for Intelligent filtration mode.
Minimum filtration time in minutes for Intelligent mode.
Bonus time for the current set of intervals in Intelligent mode.
Time remaining until the next filtration interval in Intelligent mode. When it reaches 0, a new interval starts and the counter is reloaded with the interval period (2 × 3600 seconds).
Number of started intervals in Intelligent mode. When it reaches 12, it resets to 0 and the bonus time is reloaded from MBF_PAR_INTELLIGENT_FILT_MIN_TIME.
Read-only. Current state of the filtration: 0 = off, 1 = on.
In MANUAL mode (MBF_PAR_FILT_MODE = 0), the state is set by writing to MBF_PAR_FILT_MANUAL_STATE.
Internal timer in seconds that counts up when heating is due to be enabled. Once it reaches 60 seconds, heating is enabled. For internal use only.
Internal 32-bit timer for Intelligent filtration mode. Counts the total filtration time performed during a given day. For internal use only; should not be modified.
Registers 0x0425-0x0426 - MBF_PAR_INTELLIGENT_INTERVAL_TIME_LOW and MBF_PAR_INTELLIGENT_INTERVAL_TIME_HIGH
Internal 32-bit timer that counts the filtration interval assigned to Intelligent mode. For internal use only; should not be modified.
UV radiation disinfection mode. To enable UV support for a given device, add the mask MBMSK_MODEL_UV to the MBF_PAR_MODEL register.
| Value | Name | Description |
|---|---|---|
| 0 | OFF | UV is switched off and will not turn on when filtration starts |
| 1 | ON | UV is switched on and will turn on when filtration starts; the UV lamp time counter will be incremented |
Suppression of UV mode warning messages:
| Mask | Name | Description |
|---|---|---|
| 0x0001 | MBMSK_UV_HIDE_WARN_CLEAN |
Suppress cleaning warning |
| 0x0002 | MBMSK_UV_HIDE_WARN_REPLACE |
Suppress replacement warning |
Relay number assigned to the UV function.
Time that the pH pump will be turned on in repetitive mode.
| Bits | Mask | Description |
|---|---|---|
| 0-14 | 0x7FFF | Time value (see time coding below) |
| 15 | 0x8000 | MBMSK_PH_PUMP_REPETITIVE - if active, the pH pump operates in repetitive mode |
Time coding: Covers periods of 1 to 180 seconds (1-second granularity) and 3 to 999 minutes (1-minute granularity). A value of ≤180 equals that many seconds. A value of >180: time in minutes = (value - 180 + 3). Example: value 200 → (200 - 180 + 3) = 23 minutes on.
Time that the pH pump will be turned off in repetitive mode. No upper configuration bits. Uses the same time coding as MBF_PAR_PH_PUMP_REP_TIME_ON.
Configuration options for the hydrolysis/electrolysis module with cover detection:
| Bit | Mask | Name | Description |
|---|---|---|---|
| 0 | 0x0001 | MBMSK_HIDRO_COVER_ENABLE |
When active, hydrolysis production is reduced by the percentage in MBF_PAR_HIDRO_COVER_REDUCTION when the cover input is detected |
| 1 | 0x0002 | MBMSK_HIDRO_TEMPERATURE_SHUTDOWN_ENABLE |
When active, hydrolysis production stops when the temperature falls below the threshold in MBF_PAR_HIDRO_COVER_REDUCTION |
Configuration levels for cover reduction and hydrolysis shutdown temperature:
| Bits | Mask | Name | Description |
|---|---|---|---|
| 0-7 | 0x00FF | MBMSK_HIDRO_COVER_REDUCTION |
Percentage for cover reduction |
| 8-15 | 0xFF00 | MBMSK_HIDRO_SHUTDOWN_TEMPERATURE |
Temperature level for hydrolysis shutdown |
Time in minutes or seconds that a dosing pump must remain off in temporized pump mode. Applies to all pumps except pH. Uses the same time coding as MBF_PAR_PH_PUMP_REP_TIME_ON.
Time in minutes or seconds that a dosing pump must remain on in temporized pump mode. Applies to all pumps except pH. Uses the same time coding as MBF_PAR_PH_PUMP_REP_TIME_ON.
pH regulation configuration:
| Value | Name | Description |
|---|---|---|
| 0 | MBV_PAR_RELAY_PH_ACID_AND_BASE |
Device works with both acid and base pumps |
| 1 | MBV_PAR_RELAY_PH_ACID_ONLY |
Device works with acid pump only |
| 2 | MBV_PAR_RELAY_PH_BASE_ONLY |
Device works with base pump only |
Note (v10.23 firmware): the same address
0x0430is documented in the 2023 Hayward Vistapool spec under a different name and a substantially extended meaning —MBF_PAR_SETPOINT_MODE. In v10.23 this register encodes the regulation mode for all four measurement modules (pH, Redox/ORP, chlorine, conductivity) as a four-field bit-mask:
Bits Mask Identifier Module 0-2 0x0007 MBMSK_PAR_SETPOINT_MODE_PHpH 3-5 0x0038 MBMSK_PAR_SETPOINT_MODE_RXRedox / ORP 6-8 0x01C0 MBMSK_PAR_SETPOINT_MODE_CLChlorine 9-11 0x0E00 MBMSK_PAR_SETPOINT_MODE_CDConductivity The 2015
MBV_PAR_RELAY_PH_ACID_AND_BASE(0),…_ACID_ONLY(1) and…_BASE_ONLY(2) values still match the lower three bits in v10.23, but v10.23 adds three further pH modes (MBV_PAR_SETPOINT_MODE_PH_ACID_BASE_SINGLE_REL= 3,…_HYST_NEG= 4,…_HYST_POS= 5) plus analogous mode tables for RX, CL, and CD. Seedocs/modbus-registers-v2023.mdfor the full enumeration.
Maximum time in seconds that a dosing pump can operate before raising an alarm. The behavior of the system when this time is exceeded is controlled by MBF_PAR_RELAY_MODE.
System behavior when the dosing time limit (set in MBF_PAR_RELAY_MAX_TIME) is exceeded:
| Bits | Mask | Module |
|---|---|---|
| 0-1 | 0x0003 | pH |
| 2-3 | 0x000C | Rx (Redox) |
| 4-5 | 0x0030 | Cl (Chlorine) |
| 6-7 | 0x00C0 | Cd (Conductivity) |
| 8-9 | 0x0300 | Turbidity |
Possible values for each field:
| Value | Name | Description |
|---|---|---|
| 0 | MBV_PAR_RELAY_MODE_IGNORE |
The system ignores the alarm and dosing continues |
| 1 | MBV_PAR_RELAY_MODE_SHOW_ONLY |
The system shows the alarm on screen, but dosing continues |
| 2 | MBV_PAR_RELAY_MODE_SHOW_AND_STOP |
The system shows the alarm on screen and stops the dosing pump |
Delay time in seconds for the pH pump when the measured pH value is outside the allowable setpoints. The system internally adds an extra 10 seconds to the stored value. The pump starts dosing once the pH-out-of-range condition has been maintained for the configured time.
A block of 180 registers holding the configuration of the 12 system timers. Each timer is assigned to a specific function:
| Timer | Base Register | Assigned Function |
|---|---|---|
| 0 | 0x0434 | Filtration interval 1 |
| 1 | 0x0443 | Filtration interval 2 |
| 2 | 0x0452 | Filtration interval 3 |
| 3 | 0x0461 | Auxiliary relay 1 - second interval |
| 4 | 0x0470 | Lighting interval |
| 5 | 0x047F | Auxiliary relay 2 - second interval |
| 6 | 0x048E | Auxiliary relay 3 - second interval |
| 7 | 0x049D | Auxiliary relay 4 - second interval |
| 8 | 0x04AC | Auxiliary relay 1 - first interval |
| 9 | 0x04BB | Auxiliary relay 2 - first interval |
| 10 | 0x04CA | Auxiliary relay 3 - first interval |
| 11 | 0x04D9 | Auxiliary relay 4 - first interval |
Each timer block uses 15 registers:
| Offset | Name | Description |
|---|---|---|
| 0 | OFFMB_TIMER_ENABLE |
Enables the timer in the selected working mode (see modes below) |
| 1-2 | OFFMB_TIMER_ON |
32-bit timestamp (Low/High) that starts the timer |
| 3-4 | OFFMB_TIMER_OFF |
32-bit timestamp (Low/High) that stops the timer (not used) |
| 5-6 | OFFMB_TIMER_PERIOD |
32-bit time in seconds between starting points (e.g., daily = 86400) |
| 7-8 | OFFMB_TIMER_INTERVAL |
32-bit time in seconds that the timer runs when started (e.g., 1 hour = 3600) |
| 9-10 | OFFMB_TIMER_COUNTDOWN |
32-bit remaining time in seconds for countdown mode |
| 11-12 | OFFMB_TIMER_FUNCTION |
Function assigned to this timer (see function codes below) |
| 13-14 | OFFMB_TIMER_WORK_TIME |
Number of seconds the timer has been operating |
Allowed timer working modes:
| Value | Name | Description |
|---|---|---|
| 0 | CTIMER_DISABLE |
Timer disabled |
| 1 | CTIMER_ENABLED |
Timer enabled and independent |
| 2 | CTIMER_ENABLED_LINKED |
Timer enabled and linked to relay from timer 0 |
| 3 | CTIMER_ALWAYS_ON |
Relay assigned to this timer always on |
| 4 | CTIMER_ALWAYS_OFF |
Relay assigned to this timer always off |
| 5 | CTIMER_COUNTDOWN |
Timer in countdown mode |
Timer function codes:
| Value | Name | Description |
|---|---|---|
| 0x0001 | CTIMER_FCT_FILTRATION |
Filtration function |
| 0x0002 | CTIMER_FCT_LIGHTING |
Lighting function |
| 0x0004 | CTIMER_FCT_HEATING |
Heating function |
| 0x0100 | CTIMER_FCT_AUXREL1 |
Auxiliary relay 1 function |
| 0x0200 | CTIMER_FCT_AUXREL2 |
Auxiliary relay 2 function |
| 0x0400 | CTIMER_FCT_AUXREL3 |
Auxiliary relay 3 function |
| 0x0800 | CTIMER_FCT_AUXREL4 |
Auxiliary relay 4 function |
| 0x1000 | CTIMER_FCT_AUXREL5 |
Auxiliary relay 5 function |
| 0x2000 | CTIMER_FCT_AUXREL6 |
Auxiliary relay 6 function |
| 0x4000 | CTIMER_FCT_AUXREL7 |
Auxiliary relay 7 function |
Enables or disables the filter cleaning (backwash) functionality:
| Value | Description |
|---|---|
| 0 | Functionality disabled |
| 1 | Functionality enabled in Besgo mode |
Valve timing mode:
| Value | Name | Description |
|---|---|---|
| 1 | CTIMER_ENABLED |
Timed system - uses start time and period to schedule cleaning |
| 3 | CTIMER_ALWAYS_ON |
Cleaning activated manually; remains on for the duration set in MBF_PAR_FILTVALVE_INTERVAL |
| 4 | CTIMER_ALWAYS_OFF |
Filter cleaning is manually disabled and never activates |
Relay assigned to the filter cleaning function (default: AUX2 = value 5):
| Value | Description |
|---|---|
| 0 | No relay assigned (filter cleaning function is inhibited) |
| 1 | pH relay |
| 2 | Filtration relay |
| 3 | Lighting relay |
| 4 | AUX1 relay |
| 5 | AUX2 relay (default) |
| 6 | AUX3 relay |
| 7 | AUX4 relay |
32-bit timestamp (Low/High) marking the scheduled start time of filter cleaning.
Period in minutes between filter cleaning actions. For example, a value of 60 means one cleaning action per hour.
Duration of the filter cleaning action in seconds.
Remaining time of the current filter cleaning action in seconds. A value of 0 means no cleaning is in progress.
When a cleaning action starts, the value of MBF_PAR_FILTVALVE_INTERVAL is copied into this register and then decremented once per second. The display uses this register to show the progress of the cleaning function.
Special function register - use with extreme care. Writing to this register forces the values of MBF_PAR_TIME_LOW (0x0408) and MBF_PAR_TIME_HIGH (0x0409) to be written into the internal RTC microcontroller clock management registers.
All user page registers should be made persistent using
MBF_SAVE_TO_EEPROMafter modification.
Ionization target production level. The value set here must not exceed the factory maximum set in MBF_PAR_ION_NOM.
Time in minutes that the ionization must be active each time filtration starts.
Hydrolysis target production level. When operating in percent mode, this value is the percentage of production. When operating in g/h mode, this value is the desired production in g/h units.
The value must not exceed the factory maximum set in MBF_PAR_HIDRO_NOM.
Upper limit (high setpoint) of the pH regulation system, multiplied by 100. Example: to set 7.50, write 750.
This register must always be higher than MBF_PAR_PH2.
Lower limit (low setpoint) of the pH regulation system, multiplied by 100. Example: to set 7.00, write 700.
This register must always be lower than MBF_PAR_PH1.
Documented in 2023 v10.23 (Hayward / Vistapool); not present in 2015 NeoPool spec.
This function determines which measurement module controls the hydrolysis generation.
| Value | Description |
|---|---|
| 0 | Hydrolysis generation is controlled by the ORP (RX) module |
| 1 | Hydrolysis generation is controlled by the chlorine (CL) module |
Redox/ORP regulation setpoint. Value must be in the range 0 to 1000.
Chlorine regulation setpoint, multiplied by 100. Example: to set 1.5 ppm, write 150. Value range: 0 to 1000.
Documented in 2023 v10.23 (Hayward / Vistapool); not present in 2015 NeoPool spec.
Lower set-point value for the conductivity module. Value is written in microsiemens. When the system is configured as dual set-point mode, this field contains the lower set point.
Documented in 2023 v10.23 (Hayward / Vistapool); not present in 2015 NeoPool spec.
This register holds the configuration of the filtration pump. The register is divided into 5 different bit fields:
| Bits | Mask | Description |
|---|---|---|
| 0-3 | 0x000F | Pump type. 0 = STANDARD, 1 = VARIABLE SPEED Type A, 2 = VARIABLE SPEED Type B |
| 4-6 | 0x0070 | Pump speed in manual mode: 0 = Slow, 1 = Medium, 2 = Fast |
| 7-9 | 0x0380 | Pump speed in filtration interval 1: 0 = Slow, 1 = Medium, 2 = Fast |
| 10-12 | 0x1C00 | Pump speed in filtration interval 2: 0 = Slow, 1 = Medium, 2 = Fast |
| 13-15 | 0xE000 | Pump speed in filtration interval 3: 0 = Slow, 1 = Medium, 2 = Fast |
Example: value 0x0402 decodes as:
- Pump type: 2 — Variable speed Type B
- Manual mode: 0 — Slow
- Filtration interval 1: 0 — Slow
- Filtration interval 2: 1 — Medium
- Filtration interval 3: 0 — Slow
Documented in 2023 v10.23 (Hayward / Vistapool); not present in 2015 NeoPool spec.
Upper set-point for the redox regulation system. Used when the system is configured as dual set-point mode. Value range: 0 to 1000.
Documented in 2023 v10.23 (Hayward / Vistapool); not present in 2015 NeoPool spec.
Upper set-point for the chlorine regulation system. Used when the system is configured as dual set-point mode. The value stored is multiplied by 100 (e.g. write 150 to set 1.5 ppm). Value range: 0 to 1000.
Documented in 2023 v10.23 (Hayward / Vistapool); not present in 2015 NeoPool spec.
Pump speeds for specific actions when a variable-speed pump is configured.
| Bits | Mask | Description |
|---|---|---|
| 0-3 | 0x000F | Speed used when operating the filtration valve: 0 = Slow, 1 = Medium, 2 = Fast, 3 = do not override |
| 4-7 | 0x00F0 | Speed used when operating cover protection: 0 = Slow, 1 = Medium, 2 = Fast, 3 = do not override |
| 8-11 | 0x0F00 | Speed used when operating the filtration valve: 0 = Slow, 1 = Medium, 2 = Fast |
Function dependency specification - defines dependency of system functions on external events:
| Bits | Mask | Name | Description |
|---|---|---|---|
| 0-2 | 0x0007 | MBMSK_FCTDEP_HEATING |
Heating function dependency |
Heating dependency bit values:
| Bit | Mask | Name | Description |
|---|---|---|---|
| 0 | 0x0001 | MBMSK_DEPENDENCY_FL1_PADDLE |
Heating depends on FL1 paddle switch |
| 1 | 0x0002 | MBMSK_DEPENDENCY_FL2 |
Heating depends on FL2 |
| 2 | 0x0004 | MBMSK_DEPENDENCY_SLAVE |
Heating depends on slave input |
Documented in 2023 v10.23 (Hayward / Vistapool); not present in 2015 NeoPool spec.
This register stores the pump scaling for the pH dosing pump and the other dosing pumps. The register is split in two fields, the lower one for the pH dosing timing and the upper for the rest of the pumps.
| Bits | Mask | Description |
|---|---|---|
| 0-7 | 0x00FF | Pump scaling for the pH pump. Valid range: 0 (= 0 %) to 100 (= 100 %) |
| 8-15 | 0xFF00 | Pump scaling for the other pumps. Valid range: 0 (= 0 %) to 100 (= 100 %) |
Scaling changes the pump-on time according to the difference between the set point and the currently measured parameter. The maximum scaling differences for each measurement module:
| Module | Difference |
|---|---|
| pH | 1.0 |
| Redox (ORP) | 100 mV |
| Chlorine (Cl) | 50 ppm |
| Conductivity (Cd) | 500 microsiemens |
Documented in 2023 v10.23 (Hayward / Vistapool); not present in 2015 NeoPool spec.
Upper set-point value for the conductivity module. Value is written in microsiemens. When the system is configured as dual set-point mode, this field contains the upper set point.
This page contains registers associated with the display configuration and its visualization options.
Machine type, used to determine the title, colors, and units to display for hydrolysis/electrolysis:
| Value | Identifier | Description |
|---|---|---|
| 0 | MACH_NONE |
No style assigned (default state after EEPROM erase) |
| 1 | MACH_HIDROLIFE |
Hidrolife style (yellow) |
| 2 | MACH_AQUASCENIC |
Aquascenic style (blue) |
| 3 | MACH_OXILIFE |
Oxilife style (green) |
| 4 | MACH_BIONET |
Bionet style (light blue) |
| 5 | MACH_HIDRONISER |
Hidroniser style (red) |
| 6 | MACH_UVSCENIC |
UVScenic style (lilac) |
| 7 | MACH_STATION |
Station style (orange) |
| 8 | MACH_BRILIX |
Brilix style |
| 9 | MACH_GENERIC |
Generic style (configure title and color separately) |
| 10 | MACH_BAYROL |
Bayrol style |
| 11 | MACH_HAY |
Hay style |
When generic (9) is specified, the title and color registers described below must also be configured.
User interface language:
| Value | Language |
|---|---|
| 0 | Spanish |
| 1 | English |
| 2 | French |
| 3 | German |
| 4 | Italian |
| 5 | Portuguese (not implemented) |
| 6 | Turkish |
| 7 | Czech |
Screen backlight configuration, divided into two 8-bit halves:
Low byte (bits 0-7): screen timeout when no keys are pressed:
| Value | Timeout |
|---|---|
| 0 | 15 seconds |
| 1 | 30 seconds |
| 2 | 60 seconds |
| 3 | 5 minutes |
| 4 | Never turns off |
High byte (bits 8-15): Backlight brightness percentage (10 to 100%).
Sound alert configuration bitmask:
| Bit | Mask | Description |
|---|---|---|
| 0 | 0x0001 | CLICK - a click sounds each time a key is pressed |
| 1 | 0x0002 | POPUPS - a sound plays each time a popup message appears |
| 2 | 0x0004 | ALERTS - an alarm sounds when there is an alert on the device (AL3) |
| 3 | 0x0008 | FILTRATION - an audible warning occurs each time filtration starts |
Equipment password encoded in BCD format.
Visual options bitmask for user interface menus. Bits 0-7 hide normally visible options; bits 8-15 show normally hidden options:
| Bit | Mask | Name | Description |
|---|---|---|---|
| 0 | 0x0001 | HIDE_TEMPERATURE |
Hide temperature measurement |
| 1 | 0x0002 | HIDE_FILTRATION |
Hide filtration menu in main menu |
| 2 | 0x0004 | HIDE_LIGHTING |
Hide lighting menu in main menu |
| 3 | 0x0008 | HIDE_AUX_RELAYS |
Hide auxiliary relay adjustment menu in main menu |
| 4 | 0x0010 | MBMSK_VO_HIDE_EXTRA_REGS |
Hide additional register adjustment option in installer menu |
| 5 | 0x0020 | MBMSK_VO_HIDE_RELAY_CONFIG |
Hide relay configuration option in installer menu |
| 6 | 0x0040 | MBMSK_VO_SLOW_FILTER_HIDRO_LEVEL |
Enable slow filtering of the hydrolysis level when a pH module is installed (especially important when acid/base dosing is close to the hydrolysis probe) |
| 7 | 0x0080 | MBMSK_VO_HIDE_SALINITY_MAIN_WINDOW |
Hide salinity measurement on the main screen |
| 8 | 0x0100 | MBMSK_VO_SHOW_SPECIAL_REGS |
Show special registers configuration menu in installer menu |
| 9 | 0x0200 | SHOW_HID_SHUTDOWN_BY_TEMPERATURE |
Show hydrolysis shutdown by temperature option |
| 10 | 0x0400 | SHOW_CELL_SELECTION |
Enable access to cell selection menu from the service menu |
| 11 | 0x0800 | SHOW_PUMP_TYPE |
Show filtration pump type selection option (normal, three-speed, etc.) |
| 12 | 0x1000 | SHOW_QUICK_MENU |
Show quick access menu instead of conventional menu when SET is pressed from main display |
| 13 | 0x2000 | SHOW_OXI_MAIN_DATA_SCREEN |
Show main display screen in OXI style |
| 14 | 0x4000 | SHOW_INSTALLER_MENU |
Show installer menu in the main menu without requiring a password |
| 15 | 0x8000 | SHOW_FACTORY_MENU |
Show factory menu in the main menu without requiring a password |
Extended visual options bitmask:
| Bit | Mask | Name | Description |
|---|---|---|---|
| 0 | 0x0001 | MBMSK_VOE_SHOW_PNEUMATIC_VALVE |
Show the pneumatic valve option |
| 1 | 0x0002 | MBMSK_VOE_HIDE_AUX_REL_DEPENDENCY |
Hide auxiliary relay dependency option |
| 2 | 0x0004 | MBMSK_VOE_SHOW_BESGO_NAME |
Show "Besgo" instead of "Pneumatic" in pneumatic valve titles |
| 3-15 | — | Reserved |
Extension of registers 0x0600 and 0x0605.
Low byte (bits 0-7): Color/style for the generic machine type. Uses the same values as MBF_PAR_UICFG_MACHINE (0x0600).
High byte (bits 8-15): Supplementary configuration for hydrolysis display units:
| Bit | Mask | Name | Description |
|---|---|---|---|
| 8-12 | — | Reserved | |
| 13 | 0x2000 | MBMSK_VS_FORCE_UNITS_GRH |
Force display of hydrolysis/electrolysis in grams per hour (g/h) |
| 14 | 0x4000 | MBMSK_VS_FORCE_UNITS_PERCENTAGE |
Force display of hydrolysis/electrolysis in percentage (%) |
| 15 | 0x8000 | MBMSK_ELECTROLISIS |
In generic mode, display the word "electrolysis" instead of "hydrolysis" |
Logic for determining the hydrolysis display units:
- If
MBMSK_VS_FORCE_UNITS_PERCENTAGEis set → display "%" - Else if
MBMSK_VS_FORCE_UNITS_GRHis set → display "gr/h" - Otherwise, check machine type:
MACH_HIDROLIFE(1) orMACH_BIONET(4) → "gr/h"MACH_GENERIC(9) withMBMSK_ELECTROLISISset → "gr/h"- All other cases → "%"
Four registers storing an ASCIIZ string of up to 8 characters for the bold part of the startup title when machine type is set to generic.
Note: Only lowercase letters (a-z) may be used. Uppercase letters, symbols, and numbers are not allowed.
Four registers storing an ASCIIZ string of up to 8 characters for the normal weight part of the startup title when machine type is set to generic.
Note: Only lowercase letters (a-z) may be used. Uppercase letters, symbols, and numbers are not allowed.