【はじめに】
Arduino IDEでM5STACKのスケッチ書き込みができなくなりましたが修正方法がわかりました。といっても、先人たちのおかげなのですが。
私の場合はM5STACKの2台で発生していて、何度かWeb記事に記載されている修正方法のいくつかを試していたのですが、全く改善出来ることはなく諦めていました。その後「これ、試してなかったかな?」という方法を海外のWebサイトで発見したので試してみることにしました。もとはESP32に関する修復方法でしたが、M5Stackも同一ICを使用しているため同じ方法を適用する事ができました。
具体的なエラーメッセージこれです。
A fatal error occurred: MD5 of file does not match data in flash!
【修正方法】
下記2行をWindowsプロンプトコマンドラインで実行します。
>esptool.exe –port PORT read_flash_status
>esptool.exe –port PORT flash_id
私の環境では以下の画面のディレクトリにesptoolがインストールされており、そのディレクトリ下で実行しました。
>esptool.exe –port COM3 read_flash_status

すると、つらつらっと実行されて、

この結果のStatus Valueの値を覚えておいて、以下を実行。
esptool.exe –port PORT write_flash_status –non-volatile 0
具体的には私の環境ではm5stackを接続しているのはCOM3ですので、
esptool.exe –port COM3 write_flash_status –non-volatile 0
を実行すると、さきほどと同じく、つらつらっと実行されて、

となり、Flash が初期化されます。
そして確認のため、もう一度以下を実行します。
esptool.exe –port PORT read_flash_status
すると以下の画面出ます。

ここで、Status value が初期化前の値から変化していれば初期化成功です。
私の場合は、”0x4202 -> 0x0200” になってますね。
なお、私の不具合が発生した上記復旧作業を試した2台については、初期化後のStatus valueの値は同じではありませんでしたので、status valueの値そのものは気にしなくて良いと思います。
この後は、普通に、Arduinoでスケッチの書き込みができましたよ。必ずしもこの方法で修復出来るとは限りませんが同じ症状の人は一度お試し下さい。
コメント