さらにESP8266のファームウェア更新をしてみました。
1.接続
接続は先に紹介した以下の配線でOKです。
2.書き換えツールのダウンロード
Pythonで動作するesptool.pyを使います。
$ mkdir ESP8266UPDATE $ cd ESP8266UPDATE $ git clone https://github.com/themadinventor/esptool/
3.更新ファームウェアのダウンロード
更新ファームウェア(v0.9.5)をダウンロードします。
$ wget --content-disposition "http://bbs.espressif.com/download/file.php?id=189"
これより新しいバージョンのファームウェアもリリースされていますが、新しいバージョンのものはどうやらボード上のフラッシュメモリのサイズが1MB(8Mbit)必要なようです。ESP-01〜ESP-12として出回っているモジュールはほとんど512KB(4Mbit)のようなので、ATコマンドで使う場合にはこれでダウンロードされる v0.9.5 が最新ということになるのだと思います。それ以降のファームウェアを使う場合には、ESP-WROOM-02などの(おそらく)1MBのフラッシュメモリが搭載されたものが必要になるのでしょう。
4.ファームウェアの書き換え
タクトスイッチ(これでGPIO0をGNDに落とす)を押した状態でUSBケーブルを挿入し、挿入後タクトスイッチを離す(押したままでもOK)。これで書き換えモードになりますので、この状態でesptool.pyを使ってファームウェアの書き換えを行います。
$ cd esp_iot_sdk_v0.9.5/bin/ $ ../../esptool/esptool.py write_flash 0x00000 boot_v1.2.bin 0x01000 at/user1.512.new.bin 0x3e000 blank.bin 0x7e000 blank.bin Connecting... Erasing flash... Writing at 0x00000400... (100 %) Erasing flash... Writing at 0x00034800... (100 %) Erasing flash... Writing at 0x0003ec00... (100 %) Erasing flash... Writing at 0x0007ec00... (100 %) Leaving... $
これでUSBケーブルを挿し直すと(直さなくてもいけるのかも?)動き出します。
GtkTermで見てみると、最初文字化けします。バージョンアップすると、ATコマンド通信時の速度が9600bpsから115200bpsに変わるようですので、設定をしなおして見てみると、
AT+GMR AT version:0.21.0.0 SDK version:0.9.5 OK
となっていました。
ちなみに更新前は、
AT+RST OK c_��RS��FjS�fJ[�� [Vendor:www.ai-thinker.com Version:0.9.2.4] ready AT+GMR 0018000902-AI03 OK
で 0.9.2.4 でした。
※作業はAPを含めてシールドルーム内で行っています。