Během vývoje SW podpory BigClown Wi-Fi modulu s čipem ESP8266 v modulu ESP12E Martin Grames objevil, že je potřeba aktualizovat AT firmware v ESP8266 pro podporu SNTP.
Martin AT firmware pro ESP12F modul aktualizoval a začal mu chodit jeho cryptoclock. Jal jsem se tedy aktualizovat svůj Wi-Fi modul s ESP12E a tady nastal problém.
Tento návod vám pomůže v přehrání původní kódu v ESP8266 novějším (a je jedno jestli novější AT FW nebo FW pro NodeMCU nebo úplně jiný FW).
Nejprve stáhnete esptool, je to nástroj pro nahrávání bin souborů ESP8266.
https://github.com/espressif/esptool
ZIP rozbalíte a v terminálu provedete instalaci
Pro instalaci napíšete /cestaKsouboru/ pip install esptool
Ve složce esptool vytvoříte složku, kterou pojmenujete bin a do ní nakopírujete bin soubory z tohoto odkazu. Já si vybral ESP8266 AT Bin V1.6.2 (8 Jun 2018). To je poslední verze AT FW, která funguje s ESP8266, které mají menší FLASH (1 MB), novější aktualizace vyžadují verze s 2 MB a větší FLASH.
Dokumentace je ke stažení na tomto odkazu (ESP8266 Non-OS AT Instruction Set).
Do složky bin v esptool zkopírujete následující bin soubory (názvy souborů se mohou mírně lišit).
user1.1024.new.2.bin
esp_init_data_default_v08.bin
boot_v1.7.bin
blank.bin
V readme staženého SDK najdete rozložení paměti pro jednotlivé bin soubory, v mém případě tako.
# BOOT MODE
## download
### Flash size 16Mbit: 512KB+512KB
boot_v1.2+.bin 0x00000
user1.1024.new.2.bin 0x01000
esp_init_data_default.bin 0x1fc000 (optional)
blank.bin 0x7e000 & 0x1fe000
Následně propojíte USB-UART převodník s ESP modulem dle následující tabulky
RX – TX
TX – RX
IO0 – GND
CH_EN – VCC (3.3V)
GND – GND
Poznámka Martina – k CH_PD je možné připojit i RESET USB-UART převodníku, k IO0 naopak DTR – převodník ESP modul po nahrání sám resetuje.
Po propojení nakonec zapnete nápájení modulu VCC – VCC (3.3V).
Je nezbytné, aby IO0 bylo před zapnutím napájení uzemněno (nebo připojeno k DTR převodníku).
A nakonec nahrajete bin soubory.
/esptool-master $ sudo python esptool.py –port /dev/ttyUSB0 write_flash
0x00000 ./bin/boot_v1.7.bin
0x01000 ./bin/user1.1024.new.2.bin
0x1fc000 ./bin/esp_init_data_default_v08.bin
0x7e000 ./bin/blank.bin
0x1fe000 ./bin/blank.bin
A esptool vypíše následující:
esptool.py v2.8-dev
Serial port /dev/ttyUSB0
Connecting….
Detecting chip type… ESP8266
Chip is ESP8266EX
Features: WiFi
Crystal is 26MHz
MAC: 5c:cf:7f:e1:0f:e4
Uploading stub…
Running stub…
Stub running…
Configuring flash size…
Auto-detected Flash size: 2MB
Flash params set to 0x0030
Compressed 4080 bytes to 2936…
Wrote 4080 bytes (2936 compressed) at 0x00000000 in 0.3 seconds (effective 123.6 kbit/s)…
Hash of data verified.
Compressed 408388 bytes to 293527…
Wrote 408388 bytes (293527 compressed) at 0x00001000 in 25.9 seconds (effective 125.9 kbit/s)…
Hash of data verified.
Compressed 128 bytes to 75…
Wrote 128 bytes (75 compressed) at 0x001fc000 in 0.0 seconds (effective 85.2 kbit/s)…
Hash of data verified.
Compressed 4096 bytes to 26…
Wrote 4096 bytes (26 compressed) at 0x0007e000 in 0.0 seconds (effective 4679.1 kbit/s)…
Hash of data verified.
Compressed 4096 bytes to 26…
Wrote 4096 bytes (26 compressed) at 0x001fe000 in 0.0 seconds (effective 4675.9 kbit/s)…
Hash of data verified.
Leaving…
Hard resetting via RTS pin…
Odpojíme IO0 od GND a modul restartujeme (v případě, že nemáte propojený IO0 s DTR).
V konzoli pro seriovou komunikaci nastavíte port USB-UART převodníku a rychlost (119200) a zadáte příkaz
AT+GMR
Pokud pak přijmete tohle, je to dobře a tím vaše úsilí končí
AT version:1.6.2.0(Apr 13 2018 11:10:59)
SDK version:2.2.1(6ab97e9)
compile time:Jun 7 2018 19:34:26
Bin version(Wroom 02):1.6.2
OK