ESP-WROOM-32を使ってみる4 -SPI-ROMの吸出し・最初にそれやれとか言われそう-

ESP-WROOM-32の目次に戻る


今回はやらかしてしまった時に初期状態に戻すために前もって工場出荷時のファームを
吸い出す手順を紹介します。なお、オシロの波形ばっかり見せられて辟易していた方の
中でねむいさんに突っ込み入れたい方は落ち着いて今回のサブタイトルを100回ほど
音読してください。
20170216追:
ESP-WROOM-32は暗号化してプログラムをフラッシュに書き込むそうで、
書き込み中に途中で電源を落とすなど異常な状態が起こるとプロテクトが
発動しESP-WROOM-02の時みたいには容易に回復とはいかないようです。
こちらの件は現在調査中ですのでしばらくお待ちください!!!


●工場出荷時のファームを吸い出す
さて、前回はIDF(IoT. Development Framework)をgitでダウンロードしてExampleを
ビルドする手順
を紹介しました。このIDFにはESP32に繋がっている外付けSPI-ROMを
書き込むためのフラッシュライタのプログラムも同梱されています。
普段はmake flashで呼び出されるものですがこれから単独で操作して逆にROMの中身を
吸い出しちゃいます!


まずは前回の手順の"4."まで完了しているものと想定して進めます。このときまだ
homeにいるのでこの場で以下の呪文を唱えます。

source ${IDF_PATH}/add_path.sh

このシェルスクリプトは"IDF_PATH"が設定されているときに発動して、pythonスクリプト
esptool.pyのあるディレクトリにパスを通します。

次にボードのENボタンBOOT(IO01相当の)ボタンを押しっぱなしに(Loに固定する)
して以下の呪文を唱えます。たったこれだけ!(VCOMのポートがCOM3の場合です)
↑間違いをずっと放置してましたorz 間違った情報でうなされたaisuke様申し訳ありません。
 ENをGNDに落としてたらそりゃうごかんがや
esptool.py --port COM3 --baud 921600 read_flash 0 0x400000 original_contents.bin


921600bps早い・・・4MBの読み出しもあっという間です・・・
これで工場出荷時のバイナリの読み出しはおしまいです。
書き戻す時はESPTOOLで0x0からoriginal_contents.binを書いてやれば復活します!


たったこれだけの手順でとても簡単にサルベージ出来ますので皆さんもESP-WROOM-32の
ボードを入手したら真っ先に吸い出しておきましょう!




●ついでなので公式のExample以外の作例も試してみる

尺が余ったのでもう少しだけESP-WROOM-32で遊んでみます。既に有志でちょっとだけ
有用なプログラムが公開されていますが簡単にwifiの機能を試すプログラムとして、
ねむいさんはこちらの方の"ESP32_WifiScan"に目をつけました。

もはやgitで落とすのすらめどいのでzipで纏めて落としてhomeに展開しました!

そしてビルドしているところです。
OpenOCDのビルド時もそうですがねむいさんなんでか無事にビルドが通るようビルド
画面見ながら応援する変な癖
があります・・・


無事にビルドが完了してmake flashで書き込みます。
921600bpsで圧縮だと400kByteが4Secですか・・・超早いすね・・・。


このプログラムは近場にあるwifiのAPをスキャンしてひたすら表示します。
テスト対象としてESP-WROOM-02を久々に稼動させてみます!夢の競演です♥


ESP-WROOM-02のAPが無事表示。やったぜ。
お隣さんのAPまで見えちゃったので自分の以外は隠しました。




というわけでねむいさんがESP-WROOM-32でやれることは全部やりきったつもりなので
今度こそホントの本当にSTM32に戻りますよぅ!

Go to top of page