Repository navigation
Conversation
With behaviour 0 the WDT pauses while the CPU sleeps, so a core that never wakes from the tickless idle is the one hang it cannot catch. That is how the nRF54L15-DK failed until the Arduino core's GRTC sleep timing was fixed: asleep for hours with nothing to reset it. Run in sleep, stay paused in halt so a debugger stop does not reset the board.
|
Important Review skippedReview was skipped as selected files did not have any reviewable changes. ⚙️ Run configuration
You can disable this status message by setting the Use the checkbox below for a quick retry:
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info
📝 Walkthrough
Merge Risk: ⚪ Minimal · up to
|
| Check name | Status | Explanation | Resolution |
|---|---|---|---|
| Docstring Coverage | Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 1 functions across 1 files. | Write docstrings for the functions missing them to satisfy the coverage threshold. |
✅ Passed checks (4 passed)
-
Check name Status Explanation Title check ✅ Passed The title clearly and concisely describes the main change: keeping the nRF54 watchdog active during CPU sleep. Description check ✅ Passed The description explains the problem, implementation, testing results, affected hardware, and completed attestations. It provides sufficient detail for review and replaces the template guidance with r… Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request. Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
-
🧪 Generate unit tests (beta)
-
- Create a new PR
-
- Autopilot · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts
Autopilot is currently an internal CodeRabbit preview.
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.
Comment @coderabbitai help to get the list of available commands.
⚡ Try this PR in the Web FlasherNote Building this pull request… the flash button, badges and supported-board |
Summary
On nRF54,
nrf52Setup()initialised the watchdog withbehaviour = 0, which pauses it while the CPU sleeps and while it is halted. A core that never wakes from the tickless idle is then the one hang the watchdog cannot catch. That is how the nRF54L15-DK failed until the Arduino core's GRTC sleep timing was fixed (meshtastic/nRF54_Arduino#1): asleep for hours, nothing to reset it.Set
NRF_WDT_BEHAVIOUR_RUN_SLEEP_MASK: keep counting in sleep, stay paused in halt so a debugger stop does not reset the board.Testing
On an nRF54L15-DK + E22-900M30S, before the core fix: with
behaviour = 0the board stayed asleep for 5 h; with this change the same hang ended in a watchdog reset about 90 s in, and the node came back on its own. Halting the core from the debugger did not reset it. Running on the DK since 2026-09-21.🤝 Attestations
nRF54L15-DK only; the change is in
src/platform/nrf54/.Summary by CodeRabbit