ESP8266のファームアップデートの方法は幾つかあるようですが、ESP8266製造元の公式ツールFlash Download Tool(Windows版のみ)と、esptool(Linux, OSX)などが利用されているようです。
WindowsによるFlash Download Tool
Python esptool (Linux, OSX)
esptool-ck (WIndows, Linux, OSX ソースコード コンパイル必須)
Windowsは普段使用しないのですが、公式ツールであることから、上記1にてファームのアップデート(アップロード)を試みました。
シリアル通信にてPCと接続します。アップロード時の配線は通常のコードアップロード時の条件と同じで以下の図のようになります。
図のようにCH_PD、RST端子に何も接続しなくても、GPIO0をGNDに接続してON/OFFすれば書き込みモードになります。
リンク先からFlash Download Toolをダウンロードしインストールします。ファームのダウンロードはLatest SDKからNon-OS-SDKをダウンロードします。
ダウンロードしたファームを任意のフォルダ内に解凍します。
アップロードするファームはESP内の指定アドレス毎に幾つか存在するため、予めダウンロードしたファームの at フォルダ内の README を開いておいて下さい。
(binファイル名と指定アドレスが必要ですので、ここで確認します)
BOOT MODE
download
Flash size 8Mbit: 512KB+512KB
boot_v1.2+.bin 0x00000
user1.1024.new.2.bin 0x01000
esp_init_data_default.bin 0xfc000 (optional)
blank.bin 0x7e000 & 0xfe000
Flash size 16Mbit: 512KB+512KB
boot_v1.2+.bin 0x00000
user1.1024.new.2.bin 0x01000
esp_init_data_default.bin 0x1fc000 (optional)
blank.bin 0x7e000 & 0x1fe000
Flash size 16Mbit-C1: 1024KB+1024KB
boot_v1.2+.bin 0x00000
user1.2048.new.5.bin 0x01000
esp_init_data_default.bin 0x1fc000 (optional)
blank.bin 0xfe000 & 0x1fe000
Flash size 32Mbit: 512KB+512KB
boot_v1.2+.bin 0x00000
user1.1024.new.2.bin 0x01000
esp_init_data_default.bin 0x3fc000 (optional)
blank.bin 0x7e000 & 0x3fe000
Flash size 32Mbit-C1: 1024KB+1024KB
boot_v1.2+.bin 0x00000
user1.2048.new.5.bin 0x01000
esp_init_data_default.bin 0x3fc000 (optional)
blank.bin 0xfe000 & 0x3fe000
Flash Download Toolを起動し、アップロードするファームのbinファイル(パスは画像参照)とメモリアドレスを指定しますが、メモリアドレスはESPのモデル毎で異なります。
シリアルで接続されたESPモデルの情報を読み取ります。
Download Path Configの指定binファイルのチェックが外れている状態でSTARTボタンを押し、シリアルで接続されたESP8266の各種情報を読み取ります。
フラッシュメモリのサイズQUAD:32Mbit=4MBですので、指定アドレスは、
Flash size 32Mbit: 512KB+512KB
boot_v1.2+.bin 0x00000
user1.1024.new.2.bin 0x01000
esp_init_data_default.bin 0x3fc000 (optional)
blank.bin 0x7e000 & 0x3fe000
となります。
ここで一度リセットボタンを押すか電源OFF/ONします。
binファイルのパスとアドレスを指定し、Download Config Path、SipAutoSetのチェックをしSTARTボタンを押してアップロードをスタートします。
アップロードが完了したらPuttyなどのシリアル通信ソフトでATコマンドが有効になっているかどうか確認します。
AT+リターン Ctrl+Jで入力確定しOKが出力されれば成功です。
<補足> ESP8266 USING GPIO0/GPIO2/GPIO15 PINS