#はじめに
ESP8266のファームウェアアップデート手順はググれば出てくるんですが、私の環境ではどれもすんなり行かなかったので、ここでは「私はこれでうまく出来ました」という手順を残しておきます。
一部書き込みのアドレスが誤っているとご指摘頂いたので修正しました。
あと改行位置がおかしくてとても読みにくかったですね。。
#ESP-WROOM-02が反応しなくなった
ArduinoをWifiでつなぐんだ、と思って入手したESP-WROOM-02(が載ったESPr Developer)。
Macと直接接続してATコマンドを打って色々と試していると、何かイケないコマンドを入力してしまったのか、うんともすんとも言わなくなりました。
とにかく違うバージョンのファームウェアを書き込めば直るらしい、とgoogle先生に教えてもらったのでアップデートすることにしました。
#フラッシュライターを入手する
ESP8266向けにフラッシュライターを含むユーティリティーセットがGithubにあるのでgit cloneしてきます。pipでのインストールも出来るのでお好みで。
python setup.py install
で。
pipの場合は
pip install esptool
#ファームウェアを入手する
アップデートするファームウェアを入手します。
"ESP8266 NONOS SDK VX.X.X"というものを落としてきます。
パッチじゃないやつです。
落としきたファイルを解凍して
「ESP8266_NONOS_SDK/bin/at」の下に「README.md」(古いverだとtxt)があるので、それをお好みのエディタで開きます。
必要なのは以下の部分です。
# NON-BOOT MODE
## download
eagle.flash.bin 0x00000
eagle.irom0text.bin 0x10000
blank.bin
Flash size 8Mbit: 0x7e000 & 0xfe000
Flash size 16Mbit: 0x7e000 & 0x1fe000
Flash size 16Mbit-C1: 0xfe000 & 0x1fe000
Flash size 32Mbit: 0x7e000 & 0x3fe000
Flash size 32Mbit-C1: 0xfe000 & 0x3fe000
esp_init_data_default.bin (optional)
Flash size 8Mbit: 0xfc000
Flash size 16Mbit: 0x1fc000
Flash size 16Mbit-C1: 0x1fc000
Flash size 32Mbit: 0x3fc000
Flash size 32Mbit-C1: 0x3fc000
ファイル途中にある「NON-BOOT」の箇所を参照してください。
また、Flash sizeは8Mbitの箇所を参照します。
#書き込む
ターミナルから以下のように実行してファームウェアを書き込みます(全て1行)。
書き込むとき、ESPr Developerはモード書き換えボタンを推したままリセットボタンを推してリセットしてから書き込みます。
./esptool.py -p /dev/XXXXX write_flash
0x000000 ~/esp_iot_sdk_v1/esp_iot_sdk_v1.5.0/bin/at/noboot/eagle.flash.bin
0x10000 ~/esp_iot_sdk_v1/esp_iot_sdk_v1.5.0/bin/at/noboot/eagle.irom0text.bin
0xfc000 ~/esp_iot_sdk_v1/esp_iot_sdk_v1.5.0/bin/esp_init_data_default.bin
0x7e000 ~/esp_iot_sdk_v1/esp_iot_sdk_v1.5.0/bin/blank.bin
0xfe000 ~/esp_iot_sdk_v1/esp_iot_sdk_v1.5.0/bin/blank.bin
ディレクトリは適宜読み替えてください。
また、「/dev/XXXXX」の箇所はArduino IDEにESPr DeveloperをUSB接続した状態で「ツール-シリアルポート」で表示されるポート名に置き換えてください。
これでリセットしてからシリアルモニタを見て「Ready」と出れば無事アップデート完了です。