ESP-WROOM-02のファームウェア書き換え on MAC
ESP-WROOM-02が流行っているようなので、試しに使ってみたけど、案の定色々躓いたのでそのメモ。
使用したパーツ
- ESP-WROOM-02(秋月で550円で購入)
- ESP-WROOM-02ブレークアウトボード(aitendoで120円で購入)
- 10KΩの抵抗x5
- タクトスイッチ2個(無くてもできる)
- ブレットボード適宜
- FT234X UART接続用(秋月で600円で購入)
- 3.3Vブレットボード電源モジュール(こちらを使用)
ちなみに秋月でESP-WROOM-02を買って、その後aitendoでブレークアウトボードを買いに行ったら、セールでESP-WROOM-02が500円だった…… 電源は3.3V3端子レギュレーターを使ってFT234Xの5Vを変換しても良いと思われる。持ってなかったので、手持ちのものを使用した。
使用したソフト
- シリアル通信用のソフト:CoolTerm
WindowsではTeraTerm Pro派だけど、Macではシリアル通信を使っていなかったので良いツールを今回しらべてみた。
Screenコマンドでターミナルから使うという手もあったけど、ファームウェア書き換え失敗時のエラーメッセージが文字化けしたり、接続が落ちたりした後の接続が不安定になったりしたのでやめた。 SerialToolsというのを最初に試したが、Disconnect時やボードレート変更時に50%位の確立でアプリが落ちるのでやめた。
現状CoolTermが良かった。
ESP-WROOM-02の接続
基本的に参考にしたサイト1に従って接続。ただし、LCDに接続しないので、AE AQM0802の部分には接続せず。
UART接続なので、TXDとRXD、RXDとTXDを接続するのに、何も考えず適当に接続してたので、TXDとTXD, RXDとRXDを接続しててびっくりした。
ちゃんと確認しよう。
ファームウェアの書き換え
ESP-WROOM-02について調べているときに、どこかにファームウェアが古いとwifiが不安定という記述を見て、ファームウェアを書き換えたいと思ったので、まずファームウェアを書き換える事にした。 ファームウェアのダウンロードはここに最新のバージョンが載せられている。今回は1.3.0_15_08_08を使用した。 書き換えツールはここからgit cloneした。
$ git clone https://github.com/themadinventor/esptool
$ cd esptool
$ python setup.py install
なんか関係のあるライブラリもインストールしてくれるみたい。ただ、esptool.pyがパスのあるところにコピーされているようにみえるけど、うまく実行されなかったので、コマンド打つ場所にコピーして使った。 ファームウェアのzipファイルを解凍し、esp_iot_sdk_v1.3.0/binにesptool.pyをコピー。
$ cp esptool.py ../esp_iot_sdk_v1.3.0/bin
上記esp_iot_sdkのパスは適宜置き換えて。 あとはESP-WROOM-02をファームウェア書き換えモードにして、ファームウェア書き換えのコマンドを打てば書き換えができる。 ファームウェア書き換えモードの仕方は参考にしたサイト1にあるように、SW1をおしながらSW2を押し、SW1をおしたまま、SW2を放します。その後SW1も放して大丈夫です。 これでファームウェア書き換えモードになっているので、ファームウェア書き換えコマンドを打ってファームウェアを書き換えます。2つ目のコマンドは長いですが、1行です。
$ cd ../esp_iot_sdk_v1.3.0/bin
$ ./esptool.py -p /dev/tty.各自のデバイス名に置き換えてください write_flash -ff 26m -fm qio -fs 32m 0x00000 boot_v1.4(b1).bin 0x01000 at/user1.1024.new.2.bin 0x7e000 blank.bin 0xfe000 blank.bin
下記メッセージが出たら、書き換えは成功しているはずです。
Connecting...
Erasing flash...
Wrote 3072 bytes at 0x00000000 in 0.3 seconds (73.2 kbit/s)...
Erasing flash...
Wrote 263168 bytes at 0x00001000 in 28.8 seconds (73.2 kbit/s)...
Erasing flash...
Wrote 4096 bytes at 0x0007e000 in 0.4 seconds (75.9 kbit/s)...
Erasing flash...
Wrote 4096 bytes at 0x000fe000 in 0.4 seconds (75.9 kbit/s)...
Leaving...
/dev/tty.以下は各自のデバイス名に置き換えてください。 FT234X向けのFTDIドライバはApple純正(最初から入っている)と、FTDI公式のがあるようです。一応FTDI公式のページからMac OSX 10.9 and aboveの2.3をダウンロードしてインストール、再起動をしています。OSX 10.10.5 (Yosemite)で行っています。古いOSXの場合、もしかするとApple純正ドライバを無効にする必要があるかもしれません。 また、書き換えのコマンドですが、最初下記コマンドでやっていたのですが、この後のATコマンドのテストの時にうまくいきませんでした(Fatal Exception(28)が延々と表示される)
$ ./esptool.py -p /dev/tty.各自のデバイス名に置き換えてください write_flash 0x00000 boot_v1.4(b1).bin 0x01000 at/user1.1024.new.2.bin 0x7e000 blank.bin 0xfe000 blank.bin
ATコマンドのテスト
CoolTermを使います。起動したらまずOptionsから下記設定にします。
- Serial Port
** Port: 各自のシリアルデバイスを選択
** Baudrate: 115200
** Data Bits: 8
** Parity: none
** Stop Bits: 1
** あとはデフォルトのまま - Terminal
** Terminal Mode: Line Mode (Raw Modeでも良いですが、Line Modeだとコマンド入力失敗したときにBSで修正出来るのでこちらを使っています)
** Enter Key Emulaton: CR+LF
** あとはデフォルトのまま - 他はデフォルトのまま
設定ができたらConnectボタンを押して、AT+GMR
参考にしたサイト3のコマンドを参考に、家のwifiルーターに接続してみました。
AT+CWMODE=3
AT+RST
AT+CWJAP="SSID","password"
下記メッセージが出たら成功していると思われます。
AT+CIFSR