Вариант прошивки интерпретатора AT-команд.
Очистим Flash память модуля (у нас ESP8266-01):
esptool.py -p /dev/ttyUSB0 erase_flash
esptool.py v2.8
Serial port /dev/ttyUSB0
Connecting....
Detecting chip type... ESP8266
Chip is ESP8266EX
Features: WiFi
Crystal is 26MHz
MAC: 84:f3:eb:68:8e:9a
Uploading stub...
Running stub...
Stub running...
Erasing flash (this may take a while)...
Chip erase completed successfully in 0.0s
Hard resetting via RTS pin...
Скачайте архив ESP firmware.
В папке ESP8266_NonOS_AT_Bin_V1.7.4/ESP8266_NonOS_A.7.4/bin/at есть файл README.md:
# Notice:
AT firmware becomes larger since it supports more functions. So, we provide two firmwares here:
* 1024+1024: Normal AT, which is compiled from ESP8266_NONOS_SDK/examples/at, and uses mbedTLS lib.
* 512+512: Nano AT, which is compiled from ESP8266_NONOS_SDK/examples/at_nano, and uses SSL lib that supports less cipher suites.
It is suggested to use normal AT(1024+1024), if your flash size is 2MB or larger.
# BOOT MODE
## download
### Flash size 8Mbit: 512KB+512KB
boot_v1.2+.bin 0x00000
user1.1024.new.2.bin 0x01000
esp_init_data_default.bin 0xfc000
blank.bin 0x7e000 & 0xfe000
### Flash size 16Mbit-C1: 1024KB+1024KB
boot_v1.2+.bin 0x00000
user1.2048.new.5.bin 0x01000
esp_init_data_default.bin 0x1fc000
blank.bin 0xfe000 & 0x1fe000
# NON-BOOT MODE
## download
eagle.flash.bin 0x00000
eagle.irom0text.bin 0x10000
blank.bin
Flash size 8Mbit: 0x7e000 & 0xfe000
Flash size 16Mbit: 0x7e000 & 0x1fe000
Flash size 16Mbit-C1: 0xfe000 & 0x1fe000
Flash size 32Mbit: 0x7e000 & 0x3fe000
Flash size 32Mbit-C1: 0xfe000 & 0x3fe000
esp_init_data_default.bin
Flash size 8Mbit: 0xfc000
Flash size 16Mbit: 0x1fc000
Flash size 16Mbit-C1: 0x1fc000
Flash size 32Mbit: 0x3fc000
Flash size 32Mbit-C1: 0x3fc000
## compile
modify eagle.app.v6.ld, as
irom0_0_seg : org = 0x40210000, len = 0x6C000
> NOTICE: UPDATE is not supported in non-boot mode; 4Mbit Flash is not supported in non-boot mode;
# Update steps
1.Make sure TE(terminal equipment) is in sta or sta+ap mode
AT+CWMODE=3
OK
2.Make sure TE got ip address
AT+CWJAP="ssid","12345678"
OK
AT+CIFSR
192.168.1.134
3.Let's update
AT+CIUPDATE
+CIPUPDATE:1 found server
+CIPUPDATE:2 connect server
+CIPUPDATE:3 got edition
+CIPUPDATE:4 start start
OK
> NOTICE: If there are mistakes in the updating, then break update and print ERROR.
Нас интересует информация из секции # BOOT MODE ### Flash size 8Mbit: 512KB+512KB, так как на нашем модуле ESP8266-01 8 Мбит = 1 Мбайт Flash памяти.
# BOOT MODE
## download
### Flash size 8Mbit: 512KB+512KB
boot_v1.2+.bin 0x00000
user1.1024.new.2.bin 0x01000
esp_init_data_default.bin 0xfc000
blank.bin 0x7e000 & 0xfe000
Загрузим файлы boot_v1.7.bin, user1.1024.new.2.bin, esp_init_data_default_v08.bin, blank.bin по указанным выше адресам:
ESP8266_NonOS_AT_Bin_V1.7.4/ESP8266_NonOS_AT_Bin_V1.7.4/bin$ esptool -p /dev/ttyUSB1 write_flash -fm dio -ff 40m -fs 1MB 0x00000 boot_v1.7.bin 0x01000 at/512+512/user1.1024.new.2.bin 0xfc000 esp_init_data_default_v08.bin 0x7e000 blank.bin 0xfe000 blank.bin
esptool.py v2.1
Connecting........_____....._
Detecting chip type... ESP8266
Chip is ESP8266
Enabling default SPI flash mode...
Configuring flash size...
Erasing flash...
Flash params set to 0x0220
Took 0.24s to erase flash block
Wrote 4096 bytes at 0x00000000 in 0.4 seconds (73.2 kbit/s)...
Erasing flash...
Took 4.09s to erase flash block
Wrote 413696 bytes at 0x00001000 in 45.2 seconds (73.1 kbit/s)...
Erasing flash...
Took 0.18s to erase flash block
Wrote 1024 bytes at 0x000fc000 in 0.1 seconds (73.2 kbit/s)...
Erasing flash...
Took 0.21s to erase flash block
Wrote 4096 bytes at 0x0007e000 in 0.4 seconds (82.0 kbit/s)...
Erasing flash...
Took 0.18s to erase flash block
Wrote 4096 bytes at 0x000fe000 in 0.4 seconds (85.4 kbit/s)...
Leaving...
Hard resetting...
Не забываем своевременно нажимать RESET и Prog (см. статью Esptool).
Проверим работоспособность в терминале CuteCom (см. статью CuteCom монитор порта). Сначала на скорости 74880 после нажатия кнопки RESET:
ets Jan 8 2013,rst cause:2, boot mode:(3,7)
load 0x40100000, len 2592, room 16
tail 0
chksum 0xf3
load 0x3ffe8000, len 764, room 8
tail 4
chksum 0x92
load 0x3ffe82fc, len 676, room 4
tail 0
chksum 0x22
csum 0x22
2nd boot version : 1.7(5d6f877)
SPI Speed : 40MHz
SPI Mode : DIO
SPI Flash Size & Map: 8Mbit(512KB+512KB)
jump to run user1 @ 1000
correct flash map
V2
Mo
,<0x95><0xff>rf cal sector: 251
freq trace enable 0
rf[112] : 00
rf[113] : 00
rf[114] : 01
SDK ver: 3.0.4(9532ceb) compiled @ May 22 2020 16:26:04
phy ver: 1156_0, pp ver: 10.2
<0xa2><0xd4><0xaa>TWT
Затем на скорости 11520 даём команду AT+GMR:
AT+GMR
AT version:1.7.4.0(May 11 2020 19:13:04)
SDK version:3.0.4(9532ceb)
compile time:May 27 2020 10:12:17
Bin version(Wroom 02):1.7.4
OK
ОК, ОК, ОК, ну совсем свежий софт!
<<< Edragon, ESP firmware Ω ESP8266-01 Web-сервер >>>