Unknown Reboots Triggered by Hardware Watchdog (WDT) on nRF54L15

Hello Nordic Team,

I am writing to report an issue with random reboots on our custom board using the nRF54L15, developed with NCS v3.1.1 for a Matter device.

The reboot is highly random and occurs under various conditions:

  • Shortly (e.g., within a minute) after flashing a new program.

  • During an SMP image update process.

  • During the commissioning process to an OTBR.

  • During general operation of our device.

The frequency of this issue is also unstable. It seems to become more frequent after certain code changes, although I have been unable to identify the specific code responsible. I can confirm that I have not modified any watchdog-related configuration or code.

I identified the watchdog as the root cause by checking the boot reason. The console consistently prints Boot reason: 4 after each reboot, which, according to the documentation, corresponds to a reset from the Hardware Watchdog (WDT).

What I've tried:

  1. Attempted to disable the watchdog in the device tree overlay, but it caused a compilation error.

  2. Attempted to disable it via the prj.conf file, which was unsuccessful.

  3. Consulted with the local FAE in China, who also could not disable it.

  4. Verified the configuration in the generated .config file.

Given that the watchdog cannot be disabled and the reboots are random, I am now considering a potential hardware issue on our custom board. Could you please advise on what specific hardware components or circuit designs we should check?

Thank you for your time and support.

Best regards,
Xiongwei Wang

Parents
  • Hi, 

    Do you see the issue with matter samples or your custom application? Is it possible to reproduce the issues on nRF54L15DK? If you are using nRF samples, what matter samples are you using?

    For Matter samples, the watchdog is enabled by default for release builds. To disable the default Matter watchdog implementation, set the CONFIG_NCS_SAMPLE_MATTER_WATCHDOG_DEFAULT Kconfig option to n. See Default Matter watchdog implementation

    Given that the watchdog cannot be disabled and the reboots are random, I am now considering a potential hardware issue on our custom board. Could you please advise on what specific hardware components or circuit designs we should check?

    You can create a private case with the title "nRF54L15 custom board review" and upload the board files. 

    Regards,
    Amanda H. 

  • Hi Amanda,

    Thank you for your response.

    Do you see the issue with matter samples or your custom application? Is it possible to reproduce the issues on nRF54L15DK? If you are using nRF samples, what matter samples are you using?

    I am using the Matter Template project to create my application. Since my design uses peripherals that are not available on the nRF54L15DK (such as UART and buttons), I have modified the overlay file to disable unrelated peripherals. I have not created a custom board overlay—only adapted the existing one. 

    The other samples may be a good way to isolate the problem. I will port them to my board for testing.

    If the Nordic samples do not cause reboots, does that mean I'm not feeding the watchdog timely in my current application? What specific operations might lead to this situation? 

    I've observed that the device sometimes reboots immediately after firmware programming, even when left idle. It shouldn't exceed the default watchdog timeout in these cases. The setup only involves a TTL connection to the computer.

    I have a few questions regarding the watchdog handling:

    1. Should I call the watchdog feed manually in my application? 

    2. Could long-running operations that block the main thread be causing this issue?

    3. Are there any specific scenarios where the automatic watchdog feeding might not work as expected?

    So far, I do not see any obvious issues in my code, and the system has been running without problems for two days. However, the random reboots are still a concern.

    For Matter samples, the watchdog is enabled by default for release builds. To disable the default Matter watchdog implementation, set the CONFIG_NCS_SAMPLE_MATTER_WATCHDOG_DEFAULT Kconfig option to n. See Default Matter watchdog implementation

    Regarding the watchdog configuration:
    I tried adjusting CONFIG_NCS_SAMPLE_MATTER_WATCHDOG_DEFAULT as suggested. However, when I search forwatchdog-related configurations in build/zephyr/.config, I do not see any entries related to the watchdog—whether I enable or disable the option. Could you please advise how I can verify that this configuration is correctly applied?

    If further review of our custom board design is needed, what file format would you prefer for the board files? I can prepare and upload them accordingly.

    Thank you for your support again.

    Best regards,
    Xiongwei Wang

  • Hi, 

    xiongwei.wang said:
    Are there any specific scenarios where the automatic watchdog feeding might not work as expected?

    It depends on your feeding approach. The Matter watchdog can be fed either automatically or manually. See Feeding the Matter watchdog.

    xiongwei.wang said:
    Are there any specific scenarios where the automatic watchdog feeding might not work as expected?

    In the Matter common module, two watchdog sources are implemented by default and automatically created for the release build of a Matter sample. One source monitors the Main thread, while the other monitors the Matter thread. If either thread remains blocked for longer than the duration defined by the CONFIG_NCS_SAMPLE_MATTER_WATCHDOG_TIMEOUT Kconfig option, the system will trigger a reboot. See Default Matter watchdog implementation

    xiongwei.wang said:
    Are there any specific scenarios where the automatic watchdog feeding might not work as expected?

    If your application has long idle periods and pause mode isn't enabled, you may need to feed the watchdog even when the CPU is sleeping.

    xiongwei.wang said:
    Could you please advise how I can verify that this configuration is correctly applied?

    Check the .config file under build/App_Name/zephyr. 

    xiongwei.wang said:
    If further review of our custom board design is needed, what file format would you prefer for the board files?

    For hardware review, you should provide at least the schematics, PCB layout files, bill of materials, and Gerber files.

    -Amanda H.

Reply
  • Hi, 

    xiongwei.wang said:
    Are there any specific scenarios where the automatic watchdog feeding might not work as expected?

    It depends on your feeding approach. The Matter watchdog can be fed either automatically or manually. See Feeding the Matter watchdog.

    xiongwei.wang said:
    Are there any specific scenarios where the automatic watchdog feeding might not work as expected?

    In the Matter common module, two watchdog sources are implemented by default and automatically created for the release build of a Matter sample. One source monitors the Main thread, while the other monitors the Matter thread. If either thread remains blocked for longer than the duration defined by the CONFIG_NCS_SAMPLE_MATTER_WATCHDOG_TIMEOUT Kconfig option, the system will trigger a reboot. See Default Matter watchdog implementation

    xiongwei.wang said:
    Are there any specific scenarios where the automatic watchdog feeding might not work as expected?

    If your application has long idle periods and pause mode isn't enabled, you may need to feed the watchdog even when the CPU is sleeping.

    xiongwei.wang said:
    Could you please advise how I can verify that this configuration is correctly applied?

    Check the .config file under build/App_Name/zephyr. 

    xiongwei.wang said:
    If further review of our custom board design is needed, what file format would you prefer for the board files?

    For hardware review, you should provide at least the schematics, PCB layout files, bill of materials, and Gerber files.

    -Amanda H.

Children
  • Hi, Amanda H,

    Thank you for your reply!

    You provided so much helpful information that it took me some time to digest it all.

    It depends on your feeding approach. The Matter watchdog can be fed either automatically or manually. See Feeding the Matter watchdog.

    I checked the code but wasn’t sure whether I could feed the watchdog manually. Your response clarified that—thank you.

    If your application has long idle periods and pause mode isn't enabled, you may need to feed the watchdog even when the CPU is sleeping.

    That could be a reason. In any case, I will add some manual watchdog feeding code and monitor its behavior.

    Check the .config file under build/App_Name/zephyr. 

    Thanks, I found it. I should have checked with the AI first, but I forgot. My apologies for taking up your time.

    My goal is to disable the watchdog for debugging purposes. I’ll enable it again in the release version.

    Thank you again for your help!


    Best regards,

    Xiongwei.Wang

Related