Nahráváme originální AT firmware do ESP8266 (ESP12E)
- October 15 2018
- ESP32, ESP8266, NodeMCU , Wemos, RTLDuino...
- 3078x Přečteno
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