niszetの日記

細かい情報を載せていくブログ

ESPrでATコマンドを試すためにFWの書き戻しをした

これめっちゃハマるんですが…

なんだかんだでこれだけで2時間弱溶かしたので記録を残しておく。途中のあれこれは置いておくと、

前回Arduinoで書き込んでLチカしたが、ESP-WROOM-02で出来るらしいATコマンドを使っての通信用のFWはArduinoのそれと共存できないらしく、Arduinoでプログラムを書き込んだ時点でATコマンドで遊ぶことが出来なくなった。そこで、各種記事を参考に書き戻す(正確には上書きだが)ことを試したが、色々とハマりどころがあった。

注意しなくてはいけない点は以下の通り。

  • フラッシュのサイズの確認(2MB/4MB)
  • 書き込み時に書き込みモードに入れる
  • 電源
  • ツールバージョンによっては正常に書き込みが出来ない

このうち最後の問題は記事を見つけて対応できたが、知らないと詰むところであった。以下、解説する。

フラッシュのサイズの確認(2MB/4MB)

現時点で手に入るESPrはフラッシュのサイズが2MBと考えてよいがこれを先に確認しておくこと。

確認にはこちらの記事のコードを使わせていただきました。Arduinoで書き込み済みであれば、このコードで確認するのが一番早そうに思えます。 https://www.mgo-tec.com/blog-entry-chip-info-esp-wroom-02-esp8266.html

一方、出荷時のFW、つまりATコマンドが使用できる場合は起動時のメッセージから確認できます。 ESP-WROOM-02は起動時に74880bpsで動作して、その後115200bpsになるらしいですが、Tera TermやArduino IDEのシリアルモニタなどで74880bpsに設定した後に基板上のRSTボタンでリセットすれば起動時のメッセージが確認できますね。

一部抜粋すると、

SPI Speed : 40MHz
SPI Mode : QIO
SPI Flash Size & Map: 16Mbit(1024KB+1024KB)

となります。あとで書き戻す必要があるなら最初に確認しておくと良さそうです。

書き込み時に書き込みモードに入れる

これ系で基本だけど良く忘れるやつだと思いますが、書き込みモードにしないと書き込めない。モード切替ボタン(MODE)を押しつつリセットボタン(RST)を押して書き込みモードに入れてからFWを書き込むという手順に沿う必要があります。

電源

こちらはシロになったんですが、トラブル回避のためESPr使用時はDCジャックから給電しておくと良いかも。

http://nemuisan.blog.bai.ne.jp/?eid=216185

以降で述べる、無限起動地獄でこの記事にたどり着いたのですが、ツールバージョンを上げて書き込んで解決したので電源がクロかは未確認。電源弱くして実験しても良いけど面倒くさくてやってません。

ツールバージョンによっては正常に書き込みが出来ない

書き込みにはFlash Download Toolsが必要なので、公式のページに公開されている最新版はV3.9.2(2022/3/13時点)なのですが、このバージョンでは正しく書き込みが出来ませんでした。 他の問題を全部潰した後だったので、NONOS SDKのバージョンを下げるなど色々とやっていましたが、このツールだというのは検索するまでわからなかった。

https://qiita.com/TomoyukiaW/items/68a18fe57f72b493b5ca

こちらの記事でリンクされている、フォーラムにあるツールのダウンロードリンクからV3.6.3のツールを入手してきました。

https://www.esp32.com/viewtopic.php?t=60&start=20

それ以外は公式のページから入手できます。

https://www.espressif.com/en/products/socs/esp8266ex/resources

NONOS SDKは今回2.2.1を使いました。ESP-WROOM-02が2.2.2-devを使用していると書いてあるのでそれに近いものをということで(2.2.2-devは見つからないけど)

アドレスはドキュメントを参照しましょう。16Mbit-C1の設定を使います。 今回、

ESP8266_NONOS_SDK-2.2.1\bin\esp_init_data_default_v08.bin
ESP8266_NONOS_SDK-2.2.1\bin\blank.bin
ESP8266_NONOS_SDK-2.2.1\bin\boot_v1.7.bin
ESP8266_NONOS_SDK-2.2.1\bin\at\1024+1024\user1.2048.new.5.bin

を使っていますが、bootとかは他のバージョンでも動くかも。atのはこれでないと駄目ですが(多分)

適宜読み替えは必要ですが、書き込み手順はSwitch Scienceのこの記事の通りです。

https://trac.switch-science.com/wiki/ESP-WROOM-02_AT

Download Toolの仕様が変わったのは、起動時にDeprecated...とか表示があるので、作り直すついでに仕様が変わったのかな? おそらくは自動で設定されるのが本来の仕様なのでしょうが・・・こちらの理解不足があるかもなのでもう少し調べてみる予定です。