git clone https://github.com/themadinventor/esptool/
Git入っていない場合はインストール
sudo apt-get install git
cd esptool
sudo python setup.py install
数秒ほどでインストール完了
とりあえずコマンド実行
$ esptool.py
usage: esptool [-h] [--chip {auto,esp8266,esp32}] [--port PORT] [--baud BAUD]
[--before {default_reset,no_reset}]
[--after {hard_reset,soft_reset,no_reset}] [--no-stub]
{load_ram,dump_mem,read_mem,write_mem,write_flash,run,image_info,make_image,elf2image,read_mac,chip_id,flash_id,read_flash_status,write_flash_status,read_flash,verify_flash,erase_flash,erase_region,version}
{ } の中はコマンドっぽい。
Gitのページを見るとwrite_flashを使うとのこと
コマンドのヘルプ
esptool.py write_flash -h
基本↓こんな形式
esptool.py -p /dev/ttyUSB0 -b 74880 write_flash アドレス ファームイメージ ...
/dev/ttyUSB0はシリアルポート。ArduinoIDEで確認できる。
74880は通信速度。115200でもいいと思う。
74880はboot logが確認できる速度なのでこれにした。
「アドレス ファームイメージ 」は続けて複数指定可能
●ファームダウンロード
http://espressif.com/en/support/download/sdks-demos?keys=&field_type_tid%5B%5D=14
NON-OS SDK V2.1.0
ソースコードのみに見えるけど、解凍するとbinフォルダにファームイメージが入っている。
下記をコピー
blank.bin
boot_v1.7.bin
esp_init_data_default.bin
user1.1024.new.2.bin(bin/at/512+512/下)
●アドレスと対応するイメージ
http://espressif.com/sites/default/files/documentation/4a-esp8266_at_instruction_set_en.pdf
手持ちのESP-01は黒い基盤なので8Mbit Flashの設定で書き込んでみる。
※設定内容
0xFB000 blank.bin
0xFC000 esp_init_data_default.bin
0x7E000 blank.bin
0xFE000 blank.bin
0x00000 boot_v1.7.bin
0x01000 user1.1024.new.2.bin
●実行
$ esptool.py -p /dev/ttyUSB0 -b 74880 write_flash \
0xFB000 blank.bin \
0xFC000 esp_init_data_default.bin \
0x7E000 blank.bin \
0xFE000 blank.bin \
0x00000 boot_v1.7.bin \
0x01000 user1.1024.new.2.bin
esptool.py v2.0.1
Connecting........_____....._____....._____....._____....._____....._____....._____....._____....._____....._____
A fatal error occurred: Failed to connect to Espressif device: Timed out waiting for packet header
書き込み失敗。
esptoolのページを見ると retry with a lower baud rate.
通信速度を下げてみる。
-b 9600
同じくエラー
配線を確認。GNDが半田不良だった。
配線を確認。GNDが半田不良だった。
書き込みに成功したので起動してみるが、チェックサムでエラーとなって起動しない。
正常な方の起動ログを見るとFlashModeが DOUT
-fm dout を追加すると起動に成功。
最終的なコマンドは以下。
※Flash 1M版
$ esptool.py -p /dev/ttyUSB0 -b 74880 write_flash \
-fm dout \
0xFB000 blank.bin \
0xFC000 esp_init_data_default.bin \
0x7E000 blank.bin \
0xFE000 blank.bin \
0x00000 boot_v1.7.bin \
0x01000 user1.1024.new.2.bin
※Flash 4M版(32 Mbit Flash, Map: 512 KB + 512 KB)
WROOM-02用
$ esptool.py -p /dev/ttyUSB0 -b 74880 write_flash \
※Flash 4M版(32 Mbit Flash, Map: 512 KB + 512 KB)
WROOM-02用
$ esptool.py -p /dev/ttyUSB0 -b 74880 write_flash \
0x3FB000 blank.bin \
0x3FC000 esp_init_data_default.bin \
0x7E000 blank.bin \
0x3FE000 blank.bin \
0x00000 boot_v1.7.bin \
0x01000 user1.1024.new.2.bin
115200bpsでシリアル繋げてATコマンドで確認
AT+GMR
AT version:1.4.0.0(May 5 2017 16:10:59)
SDK version:2.1.0(116b762)
compile time:May 5 2017 16:37:48
OK
0 件のコメント:
コメントを投稿