Arduino IDEでESP32フラッシュ削除プラグインを作ってみた

概要

Arduino IDEでメニューから「ESP32 Erase Flash」を選択すると、ESP32のフラッシュをすべて削除するプラグインを作ってみました。

開発環境構築

Arduino IDEはJavaで開発されているので、Javaの開発環境を準備する必要があります。

今回はArduio IDE自体をビルドできる環境を構築し、その環境で開発を行います。

上記オフィシャルWikiを参考に、CentOS7上で実験してみました。必要なパッケージをyumで導入すればビルド自体はすんなりできると思います。

プラグイン作成のサンプル解析

これ以外のプラグインを見たことがないのですが、ESP32のフラッシュ領域にdataフォルダに入っているファイルをアップするプラグインです。

これをコピーしてきて、見様見真似でコードを編集します。make.shの中身はちょっと編集しないと../../../と三階層上までjarファイルを探しに行っているところがあり、findが終わらなくなります。そして複数のファイルがあるとおかしな動きをします。。。

仕組み

フラッシュを削除する実行ファイルはesptoolで、オプションerase_flashを指定すると内容を削除してくれます。シリアルポートだけが必須で、転送速度はおそらく指定しなくても大丈夫だと思いますが、念の為指定しておきます。

esptool.py --port COM3 -b 1500000 erase_flash

作成物

上記が作成物です。使い方はArduino ESP32 filesystem uploaderとほぼ同じです。

正しく設置してからArduino IDEを再起動すると、上記のようにメニューに追加されます。

「ESP32 Erase Flash」を選択すると、ESP32のフラッシュが消されます!

esptool.py v2.6
Serial port COM3
Connecting....
Chip is ESP32-PICO-D4 (revision 1)
Features: WiFi, BT, Dual Core, 240MHz, Embedded Flash, VRef calibration in efuse, Coding Scheme None
MAC: ??:??:??:??:??:??
Uploading stub...
Running stub...
Stub running...
Changing baud rate to 1500000
Changed.
Erasing flash (this may take a while)...
Chip erase completed successfully in 1.7s
Hard resetting via RTS pin...

まとめ

プラグインは結構かんたんに作ることができました。このプラグイン自体はあまり使うことがないのですが、プラグイン作成の流れがわかりました。

今後もう少し実用的なプラグインを作ってみたいと思っているので、その事前検証として実施してみました。

コメントする

メールアドレスが公開されることはありません。

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)