MECHATRAXのブログ
本ブログでは、Raspberry Pi および関連モジュールを用いた
業務・産業用途での開発・運用に関する技術情報を発信しています。
【トラシュー】MicroCat.1でMemoryErrorまたはpppos_create failedが発生する
【トラシュー】MicroCat.1でMemoryErrorまたはpppos_create failedが発生する
MicroCat.1 で開発中にスクリプトを繰り返し実行していると、コンソールに MemoryError: が出力されたり、OSError: pppos_create failed が発生しネットワークへ接続できなくなる場合があります。
結論
MicroCat.1基板上のSW1(Reset)押下、またはREPLから import machine; machine.reset() でハードウェアリセットを行ってください。

基板上 SW1 の位置
※記事中の基板画像はプレリリース版のため、正式リリース版では外観が異なる可能性があります。
実際の動作(MemoryError)
ソフトウェアリセット(Thonny の実行ボタンや machine.soft_reset())では内部のリソースが一部解放されず、再利用時にエラーが発生します。
例えば、ネットワーク接続した後にソフトウェアリセットを行うと以下のように MemoryError: が出力されます。

1回目のThonny実行ボタン押下 ※エラー発生なし

2回目のThonny実行ボタン押下 ※エラー発生あり

この時、SW1押下でハードウェアリセットするとクリーンな状態で起動します。
※ machine.reset() でも構いません。
※ ハードウェアリセット後は COM の再選択が必要です。
