LoginSignup
1
2

More than 5 years have passed since last update.

ESP-WROOM-02 Wifi シールドのfirmwareを書き換える

Last updated at Posted at 2016-11-25

mbedでwifiが使ってみたいと思います。
mbedデバイスとしてはFRDM-K64Fを、wifiとしてはESP-WROOM-02 Wi-Fi シールドを使います。
ESP-WROOM-02 Shieldのfirmwareを上書きして、mbedデバイスで利用できるようにします。

ESP-WROOM-02 Wi-Fi シールドのfirmwareを書き換え

下記記事を参考に書き換えしました。
ESP-WROOM-02 WiFi シールドのファームウェア書き換え方法

ハマりポイント

上記記事にESP-WROOM-02 Shield の JP1 コネクタに FTDI USBシリアル変換アダプターを接続します。とありますが、FTDI USBシリアル変換アダプターとして、Arduino ミニ3.3V 5.5V FTDI232用の FT232RL FTDI USB-TTLシリアル アダプタ モジュール を使った場合、esptool.pyでfirmwareをflashに書き込む際に、timeoutする事象が発生しました。

Reset with flash mode (IO0 = Low). Press [Enter] key to continue.
esptool.py v1.2.1
Connecting...
Auto-detected Flash size: 32m
Running Cesanta flasher stub...
Writing 225280 @ 0x1000... 35840 (15 %)
A fatal error occurred: Timed out waiting for packet header

調べた結果、使用したFTDI USBシリアル変換アダプターのHWに依存する問題のようです。(この変換アダプタは、他のデバイスでは普通に使えていたのですが、今回のWifi Shieldのfirmware書き換えには適さないようです)
esptool-ck, esp8266, and FTDI Bug Hunting

対応

実績のあるFTDI USBシリアル変換アダプターを使うことにしましたが、記事で紹介されているFTDI USBシリアル変換アダプター Rev.2は、現在在庫がなかったので、代わりにFTDI USBシリアル変換アダプターを使うことにしました。
ESP-WROOM-02 Wi-Fi シールドに、当該変換アダプターについて記載があったので、利用実績ありと判断しました。

接続

ということで、FTDI USBシリアル変換アダプターを、ESP-WROOM-02 Wi-Fi シールドに接続しました。

IMG_6273.jpg

IMG_6275.jpg

fireware書き換え

上述の記事のサンプルコードを参考にスクリプトを用意しました。device fileは実際に自分の環境で認識されたものを使います。

fw_update.sh
#!/bin/sh
port="/dev/tty.usbserial-A105GSPH"

echo "Updating ESP-WROOM-02 Shield ESP8266 firmware (port:" $port ")"

read -p "Reset with flash mode (IO0 = Low). Press [Enter] key to continue."
esptool.py -p $port -b 115200 write_flash 0x00000 ./boot_v1.6.bin

read -p "Reset with flash mode (IO0 = Low). Press [Enter] key to continue."
esptool.py -p $port -b 115200 write_flash 0x01000 ./user1.bin

read -p "Reset with flash mode (IO0 = Low). Press [Enter] key to continue."
esptool.py -p $port -b 115200 write_flash 0x3fc000 ./esp_init_data_default.bin

read -p "Reset with flash mode (IO0 = Low). Press [Enter] key to continue."
esptool.py -p $port -b 115200 write_flash 0xfe000 ./blank.bin

read -p "Reset with flash mode (IO0 = Low). Press [Enter] key to continue."
esptool.py -p $port -b 115200 write_flash 0x3fe000 ./blank.bin

echo "Update completed."

上記スクリプトを実行し、下記のように実行完了しました。
Reset with flash mode (IO0 = Low). Press [Enter] key to continue.が表示された後、ESP-WROOM-02 Wi-Fi シールドのFLASHボタンを押したままRESETボタンを押して、ボタンを離します。そして、PCのENTERキーをクリックします。

$ ./fw_update.sh
Updating ESP-WROOM-02 Shield ESP8266 firmware (port: /dev/tty.usbserial-A105GSPH )
Reset with flash mode (IO0 = Low). Press [Enter] key to continue.
esptool.py v1.2.1
Connecting...
Auto-detected Flash size: 32m
Running Cesanta flasher stub...
Flash params set to 0x0040
Writing 4096 @ 0x0... 4096 (100 %)
Wrote 4096 bytes at 0x0 in 0.4 seconds (85.7 kbit/s)...
Leaving...
Reset with flash mode (IO0 = Low). Press [Enter] key to continue.
esptool.py v1.2.1
Connecting...
Auto-detected Flash size: 32m
Running Cesanta flasher stub...
Writing 225280 @ 0x1000... 225280 (100 %)
Wrote 225280 bytes at 0x1000 in 19.6 seconds (92.2 kbit/s)...
Leaving...
Reset with flash mode (IO0 = Low). Press [Enter] key to continue.
esptool.py v1.2.1
Connecting...
Auto-detected Flash size: 32m
Running Cesanta flasher stub...
Writing 4096 @ 0x3fc000... 4096 (100 %)
Wrote 4096 bytes at 0x3fc000 in 0.4 seconds (85.6 kbit/s)...
Leaving...
Reset with flash mode (IO0 = Low). Press [Enter] key to continue.
esptool.py v1.2.1
Connecting...
Auto-detected Flash size: 32m
Running Cesanta flasher stub...
Writing 4096 @ 0xfe000... 4096 (100 %)
Wrote 4096 bytes at 0xfe000 in 0.4 seconds (85.6 kbit/s)...
Leaving...
Reset with flash mode (IO0 = Low). Press [Enter] key to continue.
esptool.py v1.2.1
Connecting...
Auto-detected Flash size: 32m
Running Cesanta flasher stub...
Writing 4096 @ 0x3fe000... 4096 (100 %)
Wrote 4096 bytes at 0x3fe000 in 0.4 seconds (85.4 kbit/s)...
Leaving...
Update completed.

参考

別の記事では、mbedをUSB-シリアル変換として利用する手順もありましたが、こちらは、未確認です。
https://developer.mbed.org/teams/ESP8266/wiki/Firmware-Update

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2