Edited at

ESP8266のファームウェアを更新する

More than 3 years have passed since last update.

前回はESP8266 ATファームウェアを使いWi-Fiの接続を確認しました。ATコマンドを使って接続処理を書くのは面倒なのでなにかよい方法を探しています。あとでファームウェアを更新することになるので、ATコマンドが使えるカスタムファームウェアを使い手順を確認することにします。以下のサイトを参考にしました。


ブレッドボード配線

Arduino Unoは3.3Vの電源供給に使います。ファームウェアのアップロードをする場合は前回の配線に加えて、ESP8266のGPIO0をGNDに接続します。ESP8266と接続したUSB-TTLシリアル変換ケーブルをOSXに接続し、Arduino UnoのUSBケーブルは電源アダプタにつなぎます。


  • RX (ESP8266) -> TX (USB-TTL)

  • TX (ESP8266) -> RX (USB-TTL)

  • CH_PD (ESP8266) -> VCC (Arduino Uno 3.3V)

  • VCC (ESP8266) -> VCC (Arduino Uno 3.3V)

  • GND (ESP8266) -> GND (Arduino)

  • GND (USB-TTL) -> GND (Arduino)

  • GPIO0 (ESP8266) -> GND (Arduino)

ESP8366-firm.png


esptool

esptoolを使ってファームウェアをESP8266に書き込みます。システムワイドにインストールします。

$ cd ~/arduino_apps

$ git clone https://github.com/themadinventor/esptool/
$ cd esptool
$ sudo python setup.py install
...
Installed /Library/Python/2.7/site-packages/pyserial-2.7-py2.7.egg
Finished processing dependencies for esptool==0.1.0
$ which esptool.py
/usr/local/bin/esptool.py


ファームウェアダウンロード

ATコマンドでファームウェア更新の確認をしたいので、ElectricdragonCustomized AT-thinker Firmwareを使います。GoogleドライブからAI-v0.9.5.0 AT Firmware.binesp8266.9.5.0.binにファイル名を変更してOSXに保存します。


ファームウェアの書き込み

esptool.pyを使ってファームウェアを書き込みます。

$ esptool.py -p /dev/tty.usbserial write_flash 0x000000 esp8266.9.5.0.bin

Connecting...
Erasing flash...
Writing at 0x0007ec00... (100 %)

Leaving...

書き込みが終了したら、GPIO0とGNDの接続を外してESP8266の電源を入れ直します。OSXのCoolTermを起動してATコマンドのテストをします。ファームウェアのバージョンは0.9.5に上がりました。

AT+GMR

00200.9.5(b1)
compiled @ Dec 25 2014 21:40:28
AI-THINKER Dec 25 2014

OK

firmware-0950.png