はじめに
M5Stack/Stick でUIFlowによる運用を行っています。
通信エラーやWi-Fi接続が悪い場合など,エラー処理ができずフリーズする場合があり,
ウオッチドッグタイマーっぽいのを実装して対策をしてみます。
開発環境
・M5Stick-C
・UIFlow(Bata1.66) Micropython v1.12
2020/12/03 確認
M5Stack シリーズは特に問わないと思います。
Flow
メインループがフリーズしても,割込プログラムが動作することを利用して
Timer1 にてカウントアップ,一定時間メインループが進まないとリセットします。
Bボタンを押している間,無限ループになりフリーズを模擬しています。

Sample.py
# ESP Reset
machine.reset()
まとめ
Wi-Fi やセンサ通信のエラーの時にフリーズしていることが多々あります。
上手く利用して安定動作につなげよう。
注意事項
Timerの多重割込は動作しませんでした。
割込処理の監視はメインループで行うと良いでしょう。