Add 60s watchdog for nrf52 to prevent stuck nrf devices like RAK4631, RAK3401#2019
Add 60s watchdog for nrf52 to prevent stuck nrf devices like RAK4631, RAK3401#2019weebl2000 wants to merge 1 commit into
Conversation
|
I believe watchdog is a mitigation fix. ESP32 seems to recover well in this scenario. |
Yes, this is not the fix of the root cause. |
Nice read. I guess this issue may due to NRF52 limitation or bootlock or even I2C sensors. |
|
In src/helpers/nrf52/SerialBLEInterface.cpp in the |
I submitted a PR to address this in #2089 |
Can you open a PR to my fork? I can merge into the existing PR that way. I'm very busy this week and the next but I'll try to have a look soon. (only if the PR is related BTW, I haven't looked into the remarks yet 😬😅) |
Sure thing, do you want me to PR to the nrf52-watchdog-brownout branch? |
Yes, sounds great! |
|
Everyone, I also encountered a mysterious crash on one of my solar forwarding nodes, which happened almost within an hour. It may be related to voltage, but meshtatsic is running well. |
|
So far no issues reported/observed. |
f20e5af to
3473b6a
Compare
|
Both the E1000 and L1 tracker as they appear to freeze from time to time, wdt is really needed feature. Currently, the only way to recover the E1000 from a freeze is by forcing it into DFU mode. |
3473b6a to
f46f822
Compare
|
Related PR: #1417 |
|
So this issue is created by NRF52 power management? |
No. Freeze is created by something in the stack or app, this ensures that watchdog resets the device. I observed freeze multiple times on relay where interrupt(TX) was just stuck in sending state. So not low power regime. |
|
@dz0ny The fix seems to be in the code of NRF52 Power Management.
|
In order to restore after battery voltage sags too low
f46f822 to
a7dc716
Compare

In order to restore after battery voltage sags too low. Or any other reason the device might hang for that matter.
In the process of being tested, keeping it as draft until more results are in. Tagging @IoTThinks too.
How to test: ideally with a power supply, first boot at say 3.6V, then drop voltage down to 1.5-2.0V, your device will brown out, and hopefully come back to life if you up the voltage to 3.6V again.
Chose to set runtime voltage about 200mV below the bootlock voltage.
Build this firmware for your device HERE
possibly related issue: #1974
References: