Wiren BoardDocumentation
Reference · English

WB-MWACv2 known issues

revision 102045

This page describes known issues for WB-MWAC v.2. Issues affecting the older WB-MWAC are listed on WB-MWAC: Errata.

ERRMODBUS001: Device replies to address 0xFD

Affected devices

WB-MWAC v.2 with firmware earlier than 1.21.1.

Description

Fast Modbus devices can interfere with third-party devices on the same bus if those devices use special commands beginning with 0xFD.

Cause and details

Fast Modbus reserves 0xFD for special broadcast commands. If a third-party request starts with 0xFD but uses a command outside Fast Modbus, affected Wiren Board devices reply with MODBUS_ERR_ILLEGAL_FUNCTION, disrupting the other exchange. The bus driver incorrectly treats the packet as ordinary Modbus traffic.

Workaround

Avoid sharing a bus between affected Wiren Board and third-party devices.

Resolution

Fixed in firmware 1.21.1.


ERRMODBUS002: Incorrect response to discovery command 0x46

Affected devices

WB-MWAC v.2 with firmware earlier than 1.20.4.

Description

Fast Modbus originally used function 0x60, later changed to 0x46 because 0x60 was in a reserved range. Backward compatibility retained both request codes, but the device always replied with 0x60. The fix replies with the same function used in the request: 0x46 or 0x60.

Remedy

Update to firmware 1.20.4.

Resolution

Fixed in firmware 1.20.4.


ERRMODBUS003: Unexpected behaviour when invalid values are written to some registers

Affected devices

WB-MWAC v.2 with firmware earlier than 1.21.6.

Description

When values in the range [256 ... 65535] are written to some registers, the upper 8 bits are discarded and the firmware receives the value modulo 256. For example, writing 257 has the same effect as writing 1.

The device address register (128) is one affected register.

All registers work as expected within their documented ranges. The issue occurs when invalid values above 255 are written.

Remedy

Update to firmware 1.21.6.

Resolution

Fixed in firmware 1.21.6.


ERRMODBUS004: Incorrect bit-field replies

Affected devices

WB-MWAC v.2 with firmware earlier than 1.20.4.

Description

Replies containing bit fields, including coil/discrete reads and event management, could contain incorrect high bits.

Remedy

Update to firmware 1.20.4.

Resolution

Fixed in firmware 1.20.4.


ERRMODBUS005: Incorrect reading of different coil registers in one request

Affected devices

WB-MWAC v.2 with firmware earlier than 1.20.4.

Description

Reading several different coil registers at consecutive addresses in a single request returned incorrect values; examples include 2 and 3 in WB-MSW/WB-MWAC, or 3 and 4 in WB-LED.

Remedy

Update to firmware 1.20.4.

Resolution

Fixed in firmware 1.20.4.


ERRMODBUS006: Responses to requests with incorrect parity

Affected devices

WB-MWAC v.2 with firmware earlier than 1.21.4.

Description

The device replied to requests with incorrect parity instead of ignoring them.

Remedy

Update to firmware 1.21.4.

Resolution

Fixed in firmware 1.21.4.


ERRMODBUS007: Lost events when two devices transmit simultaneously on one bus

Affected devices

WB-MWAC v.2 with firmware earlier than 1.24.1.

Description

When two devices on one bus have pending events simultaneously, one may transmit an incomplete event packet.

Cause and details

In Fast Modbus, the master requests events. All devices with pending events arbitrate; the winner replies, while the others wait for the next request.

A generated event waits for transmission. After the device places its frame on the bus, the event is marked sent. The master's next acknowledgement for that device removes the sent events from its queue. This is the normal acknowledgement mechanism.

The defect marked events as sent too early, on receipt of the event request, before arbitration finished. If the device won arbitration, operation was normal. If it lost, no packet was transmitted, but its events were already marked sent. A subsequent acknowledgement for that device also acknowledged these unsent events, removing them from the queue before they ever reached the master.

The web-interface value does not update and no MQTT message is published, although the device registers remain correct. The change notification is lost.

For example, if inputs on two relay modules on the same bus close simultaneously, one module may update correctly in the web interface while the other loses some events and still appears in its previous state despite physically switching.

Workaround

Temporarily disable event-based operation for affected registers by setting sporadic to false in the device template. The registers will then be polled at the configured interval.

Resolution

Fixed in firmware 1.24.1.


ERRMODBUS008: Unexpected behaviour with long request frames

Affected devices

WB-MWAC v.2 with firmware earlier than 1.25.1.

Description

Receiving a frame longer than 265 bytes, the maximum Fast Modbus frame length, can freeze and reboot the device; settings may also be lost in some cases.

Cause and details

The receive algorithm did not handle oversized invalid requests, causing a buffer overflow and corruption of adjacent memory. The device freezes and the watchdog restarts it. Very large frames, above approximately 500 bytes, can also corrupt settings, causing a restart with default communication parameters: 9600 8N2, address 1.

Workaround

  • Do not send requests exceeding the limits of Modbus RTU or Fast Modbus (265 bytes for Fast Modbus).
  • Do not connect the device to a bus carrying non-Modbus traffic or messages longer than 265 bytes.

Resolution

Fixed in firmware 1.25.1.


ERRMODBUS009: Unexpected behaviour when reading near address 0xFFFF in continuous-reading mode

Affected devices

WB-MWAC v.2 with firmware earlier than 1.25.1.

Description

With continuous-reading mode enabled, a read range reaching or crossing address 0xFFFF can freeze and reboot the device.

Cause and details

The continuous-reading algorithm did not handle overflow of the 16-bit register-address counter. Reading 0xFFFF wrapped the counter and caused an infinite loop, followed by a watchdog reset.

Workaround

With continuous-reading mode enabled, do not read a range including 0xFFFF. Wiren Board devices have no implemented register at that address.

Resolution

Fixed in firmware 1.25.1.


ERRMODBUS010: Incorrect request validation and handling of invalid requests

Affected devices

WB-MWAC v.2 with firmware earlier than 1.25.1.

Description

The device may accept or mishandle syntactically invalid requests, return an incorrect exception code, or impose an incorrect register-count limit.

Cause and details

The validation algorithm mishandles these cases:

1) Requests to read zero registers succeed with an empty-data reply containing only a header and CRC. Modbus requires exception 0x03 (ILLEGAL_DATA_VALUE).

2) A single limit of 125 registers is applied to all read/write functions; exceeding it returns 0x02 (ILLEGAL_DATA_ADDRESS). Modbus instead specifies limits of 2000 bits for bit reads, 125 registers for input/holding reads, 1968 coils for multiple-coil writes, and 123 holding registers for multiple-register writes. Exceeding the applicable limit should return 0x03 (ILLEGAL_DATA_VALUE).

3) Byte Count is not validated for multiple writes (0x0F and 0x10). A mismatch between Byte Count and register count should return 0x03 (ILLEGAL_DATA_VALUE).

4) Single-coil writes do not validate the value and use the most significant bit of the request value. Modbus permits only 0x0000 and 0xFF00; all other values should return 0x03 (ILLEGAL_DATA_VALUE).

5) Structurally invalid requests with a valid CRC, such as overlong requests, are processed normally. Such malformed requests should instead be ignored.

6) Structurally valid but oversized frames of 257–265 bytes are processed. Standard Modbus frames longer than 256 bytes are invalid and should be ignored.


Workaround

Send only structurally correct requests compliant with the Modbus specification.

Resolution

Fixed in firmware 1.25.1.


ERRMODBUS011: Incorrect handling of invalid Fast Modbus event-configuration requests

Affected devices

WB-MWAC v.2 with firmware earlier than 1.25.1.

Description

An event-configuration command (EVENT_CTRL, cmd=0x46, sub_cmd=0x18) with invalid length fields can configure event notifications incorrectly and produce a reply of unpredictable length.

Cause and details

The Fast Modbus event-configuration handler did not validate the size and internal data-block length fields. Invalid lengths can cause it to process data beyond the received frame, resulting in:

1) Incorrect event notification settings, including spontaneous changes to event priorities or masks.

2) An event-configuration reply of unpredictable length.

Workaround

Send only valid Fast Modbus commands compliant with its specification.

Resolution

Fixed in firmware 1.25.1.


ERRMODBUS012: Device stops transmitting Fast Modbus events

Affected devices

WB-MWAC v.2 with firmware earlier than 1.26.1.

Description

The device stops sending Fast Modbus events and continuously reports no events (sub_cmd=0x12) in response to event requests (cmd=0x46, sub_cmd=0x10). Web-interface controls freeze while device registers continue to change.

The more frequently an event-enabled value changes, the sooner the issue occurs. In testing with 1 ms debouncing, event transmission stopped after 23 minutes at 200 input pulses per second and after several hours at 100 pulses per second. It can also occur with infrequent changes, but is much less likely. The driver logs no error because the device validly reports that no events are pending.

For diagnosis, read the register directly without events, for example the input pulse counter:

modbus_client_rpc -mrtu -pnone -s2 /dev/ttyRS485-1 -b115200 -a1 -r32 -t0x03

If the register increases but the web-interface control stays unchanged, this issue is present.

Cause and details

The unsent-event counter is shared by an interrupt handler and the main loop without correct synchronisation. An interrupt during a read-modify-write operation in the main loop can lose a counter increment. The increment cannot be recovered because it only occurs when an event first enters the queue. The device then believes it has nothing to send despite queued events.

The condition persists until the device reboots. Another event may temporarily flush the accumulated queue and update the control once, but the mismatch immediately returns. An installation with no other changes therefore appears frozen.

The probability increases with event frequency and bus load because concurrent accesses become more likely.

Workaround

Rebooting the device restores events until the issue recurs. Rebooting the controller or restarting wb-mqtt-serial does not help: the state is held in the device, and reconfiguring events does not reset it.

Reduce the probability by increasing input debounce time or disabling events for frequently changing registers. Until firmware is updated, read values directly from the registers.

Resolution

Fixed in firmware 1.26.1.


ERRMWAC2001: Incorrect default S6 input configuration

Affected devices

All WB-MWAC v.2 batch 2.2A units shipped between 15 and 19 March 2024.

Description

At the end of automated production testing, an incorrect value was written to the S6 input-mode register.

Cause and details

Register 14 should default to 6 (button mode). This batch incorrectly stored 4 (both-edge operation), resulting in two activations.

Workaround

WB-MWACv2 known issues illustration
Input-mode configuration in the Wiren Board controller web interface

Set input 6 to mode Digital input or pushbutton through the Wiren Board controller web interface.

Without a controller, write the required mode to the register using modbus-client; example command:

modbus_client --debug -mrtu -b9600 -pnone -s2 /dev/ttyRS485-1 -a{address} -t0x06 -r14 6

Resolution

Fixed in subsequent batches, starting with 2.2A/1.

ERRMWAC2002: Firmware 1.21.0 issues and behavior

Affected devices

All WB-MWAC v.2 with firmware 1.21.0.

Description

After WB-MWAC v.2 was released with firmware 1.21.0, several issues affecting operation were discovered.

Cause and details

  1. K1 and K2 button presses were processed with a 300 ms delay.
    Cause: double-press detection was enabled, although K1 and K2 do not use it.
    Fix: double-press detection on K1 and K2 disabled; presses are processed without delay.
  2. Unclear visual indication of wet-cleaning mode.
    Cause: LEDs turned on for only 50 ms in wet-cleaning mode.
    Fix: LED on-phase increased to 250 ms.
  3. Modbus could enable Leak mode while Wet cleaning mode was active.
    Cause: firmware error. Leak sensors are ignored in Wet cleaning mode, so enabling Leak mode is inappropriate.
    Fix: check whether Wet cleaning mode is active before enabling Leak mode.
  4. Counter settings were lost on restart: Pulse weight P1/P2 and Initial counter value P1/P2.
    Cause: firmware loaded default counter settings at startup.
    Fix: firmware changes.
  5. Wet cleaning timer and Restore valve state after leak is resolved did not persist after restart.
    Cause: firmware did not save these parameters to nonvolatile memory.
    Fix: firmware error corrected.
  6. Pulse weight P1 and P2 registers accepted invalid values above 10000.
    Cause: firmware did not check the upper value limit.
    Fix: firmware changes.
  7. Wet cleaning timer accepted 0, causing the mode to turn off immediately after activation.
    Cause: firmware did not check the lower value limit.
    Fix: firmware changes.

Workaround

Update firmware to 1.21.1 or later.

Resolution

All listed issues were fixed in firmware 1.21.1 and later production batches. Update device firmware.

Warning: if bootloader 1.4.0 is installed, update it before updating device firmware. More details: ERRBOOT003

To check and update the bootloader version, see Wiren Board peripheral-device bootloader .

For firmware-update instructions, see Updating Wiren Board Modbus device firmware

Customers who bought affected devices will be notified by email.

ERRMWAC2003: RS-485 parity settings other than N do not work

Affected devices

All WB-MWAC v.2 with firmware earlier than 1.21.2

Description

Selecting nondefault RS-485 parity may cause communication errors.

Cause and details

A software error introduced during migration to the new microcontroller wrote an incorrect transceiver configuration-register value.

Workaround

Do not use O or E parity.

Resolution

Fixed in firmware 1.21.3.

ERRMWAC2004: Incorrect MCU temperature and MCU supply-voltage readings

Affected devices

All WB-MWAC v.2 with firmware earlier than 1.21.2

Description

Modbus registers 123 and 124 contain incorrect values, which are also displayed incorrectly in the Wiren Board controller web interface.

Cause and details

A software error introduced during migration to the new microcontroller read the wrong ADC channels.

Workaround

None.

Resolution

Fixed in firmware 1.21.3.

ERRMWAC2005: Nonexistent input modes can be selected

Affected devices

All WB-MWAC v.2 with firmware earlier than 1.21.2

Description

Values 0–2 can be written to input-mode Modbus registers 9–14.

Cause and details

A software omission allows these invalid modes; they behave like mode 3, Interaction disabled.

Workaround

Do not write modes 0–2 to registers 9–14.

Resolution

Fixed in firmware 1.21.3.

ERRMWAC2006: Device stops starting after a restart

Affected devices

All WB-MWAC v.2 with firmware earlier than 1.21.5.

Also affects bootloaders 1.5.0–1.5.4 inclusive: ERRBOOT007.

Description

The device stops starting after a restart occurs while parameters are being saved to microcontroller memory.

Cause and details

A software omission allows a double ECC error if a restart or power failure occurs during internal Flash programming, stopping firmware execution.

The issue affects both the bootloader (ERRBOOT004, ERRBOOT007) and firmware. Updating firmware while retaining an old bootloader greatly reduces the risk, but interrupted firmware updates can still disable the device. Updating only the bootloader may leave the issue reproducible, but permits firmware updating and recovery.

Symptom: the green status LED neither lights nor flashes when power is applied.

Workaround

Warranty replacement.

Resolution

Fixed in firmware 1.21.5. Warning: first update the bootloader to 1.5.5 or later so recovery remains possible. Firmware is installed automatically during the bootloader update.

ERRMWAC2007: Incorrect relay state on first power-on

Affected devices

All WB-MWAC v.2 with firmware earlier than 1.21.6

Description

Incorrect relay state is loaded on first power-on.

Cause and details

The front-panel button circuit has an RC filter. After button-driver initialization, the internal pull-up charges its capacitor; the pin briefly reads low (active), causing unintended relay switching.

Workaround

Use the device with its battery installed; after the first restart, the issue does not recur.

Resolution

Fixed in firmware 1.21.6.

ERRMWAC2008: Incorrect behavior when Leak mode is enabled through coil 2

Affected devices

All WB-MWAC v.2 with firmware earlier than 1.21.7

Description

Writing 1 to coil 2 lights the Leak indicator and enables the alarm, but does not save relay states for restoration after the leak is resolved. It also does not switch the relays.

Cause and details

Cause: writing 1 to coil 2 was allowed.

Workaround

Do not enable Leak mode through its Modbus register or the Wiren Board controller web interface.

Resolution

Fixed in firmware 1.21.7 by preventing activation through coil 2. With a Wiren Board controller, also update the device template: the existing control becomes read-only, and a Reset Leak mode button is added.

ERRMWAC2009: Configuration corruption when upgrading to firmware 1.22.0

Affected devices

All WB-MWAC v.2 when upgrading to 1.22.0.

Description

Upgrading to 1.22.0 writes incorrect leak-sensor type and buzzer-output mapping-matrix settings.

Cause and details

Existing settings should migrate while new settings, such as leak-sensor type and input-driven buzzer behavior, receive defaults. A software bug populated the new settings with incorrect values.

Workaround

Restore factory settings by writing 1 to register 65402.

Resolution

Fixed in firmware 1.22.1.