2015年7月10日金曜日

ESP8266のファームウェア更新

さらにESP8266のファームウェア更新をしてみました。

1.接続

接続は先に紹介した以下の配線でOKです。
IMG_0413s

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を含めてシールドルーム内で行っています。

0 件のコメント: