Na początku przygody z popularnym modułem napędzanego 32-bitowym MCU ESP8266, każdy myśli, że aktualizacja oprogramowania jest bardzo trudna lub uszkodzi sam układ nic bardziej mylnego !! 🙂
W tym artykule pokażę Wam jak uporać się ze zmianą oprogramowania wewnętrznego do najnowszej wersji. Myślę, że od tej pory dla nikogo już nie będzie to stanowiło problemu, dodatkowo zapraszam do dyskusji w komentarzach.
Naszym układem, który będziemy aktualizować jest popularny moduł ESP-07 (dostępny również w naszej ofercie LINK).
Uwaga!
Niektóre modele modułów ESP8266 mają różną pojemność pamięci flash, te oferowane u nas posiadają 4Mbit czyli 512KB pamięci flash. Dostępne na rynku są też o pojemności 2Mbit, w takim wypadku najnowszy soft po prostu się nie zmieści. W przypadku aktualizacji dużym obrazem może przytrafić się uniemożliwienie poprawnej pracy układowi MCU, i moduł będzie się naddawał na śmieci.
Jest kilka możliwości zmiany oprogramowania układowego:
– aktualizacja za pośrednictwem komendy AT (u mnie nie zadziało to rozwiązanie prawidłowo i spowodowało śmierć modułu :()
– aktualizacja za pomocą programu Flash Download Tool (tego będziemy używać :))
– aktualizacje za pomocą innych programów (nie będę ich tutaj opisywał ponieważ … powiedzmy nie spodobały się … )
Trzeba wiedzieć że jest kilka rodzaji/wersji oprogramowania firmware, nie będę ich teraz tutaj opisywał może później. Dzisiaj zajmiemy się wgraniem oficjalnego softu, który pozwoli nam sterować układem za pomocą komend AT.
Na początek niezbędne rzeczy, w które musimy się zaopatrzyć:
– oczywiście moduł ESP, nie koniecznie w wersji 07 ponieważ jest ich cała gama,
– narzędzie ESP Flash Download Tool (moim skromnym zdaniem jest najbardziej sprzyjającym użytkownikowi programem) do pobrania na końcu opisu,
– najnowsze oprogramowanie dostarczone przez producenta układów ESP LINK.
W pierwszym kroku należy rozpakować pobrane archiwum z witryny Github, mamy do dyspozycji dwa foldery, interesuje nas tylko folder BIN, w którym znajdziemy 3 pliki:
– blank.bin
– boot_v1.1.bin
– esp_init_data_default.bin
oraz folder newest w którym znajduje się plik user1.bin
Wszystkie te pliki są nam potrzebne do aktualizacji oprogramowania i muszą być wgrane przez narzędzie pod odpowiednie adresy pamięci układu. Poszczególne adresy dla każdego pliku bin możemy odczytać ze znajdującego się w folderze pliku tekstowego readme.txt
Adresy alokacji wyglądają następująco:
boot_v1.1.bin 0x00000
user1.bin 0x01000
esp_init_data_default.bin 0x7C000
blank.bin 0x7E000
W drugim kroku przechodzimy do obsługi programu uploadera. Po pobraniu i rozpakowaniu archiwum odpalamy frame_test i naszym oczom ukazuje się interfejs programu:
Widzimy wypełniony program przykładowymi ścieżkami do plików .bin w polu nr 1 a w polu nr 2 widać wpisane adresy pamięci. Polecam usunąć wszystkie zapisy i zacząć od naniesienia adresów, a następnie przyporządkować do nich pliki .bin wg rozpiski przedstawionej w opisanym pliku.
Krok trzeci. Podłączamy nasze ESP8266 do konwertera USB <-> RS232 oraz zasilania 3,3V. Sposób podłączenia opisany został w mojej wcześniejszej prezentacji LINK.
Teraz najważniejsze, pin GPIO 0 na czas programowania musi być koniecznie podłączony do masy (GND).
W kolejnym kroku klikamy start, czekamy aż program zakończy swoje działanie, po tej czynności staliśmy się szczęśliwym posiadaczem ESP8266 z najnowszym softem. :). Mam nadzieję, że opis jest zrozumiały i wszystko działa tak jak powinno, a jeżeli są jakieś problemy zapraszam do wymiany spostrzeżeń.
Zapraszam również do innych naszych artykułów związanych z ESP8266
Pierwsze uruchomienie ESP-8266 w środowisku Arduino przy współpracy Arduino NANO
moduł komunikacji bezprzewodowej na ESP8266
Uruchomienie ESP8266 ESP-07
Zapomniałem dodać, iż po podłączeniu GPIO 0 do masy należy zrestartować moduł (RST do masy), lub podłączyć moduł do zasilania od razu z podłączonym GPIO 0 do masy. Jest to najczęstsza dolegliwość niepowodzenia aktualizacji 🙂
Witam. Po aktualizacji mam problem gdy wysyłam komendy AT to w odpowiedzi otrzymuję tą samą komendę. Gdy wysyłam bez nowej linii i powrotu karetki to otrzymuję error. Przed aktualizacją miałem tak samo.
Posprawdzałbym dokładnie ustawienia terminala, być może załączoną masz opcję echo …
A tak w ogóle z jakiego programku korzystasz?
Pliki na GITHubie zostały opublikowane 2 lata temu. Czy to aby na pewno jest najnowszy firmware?? Gdzieś czytałem, że producent olał GITHuba a w necie można znaleźć znacznie nowszy soft.
coś takiego mi wychodzi:
raise in device connect
chip sync error.
baudrate sync fail … retry…
podłączenie ok częstotliwość 115200
Spróbuj inne prędkości bo z niektórymi modułami są problemy w przypadku mojej wersji było tak jak wyżej a spotkałem się z wersjami z baudratem ustawionym na 9600 i nawet zmiany programowe nie pomagały.
Witam po zaktualizowaniu firmware przy próbie połączenia modułu na terminalu wyskakuje mi taki błąd:
ets Jan 8 2013,rst cause:1, boot mode:(3,6)
load 0x40100000, len 612, room 16
tail 4
chksum 0xef
load 0x00000000, len 0, room 4
tail 0
chksum 0xef
ho 12 tail 0 room 4
load 0x00000000, len 0, room 12
tail 0
chksum 0xef
csum 0xef
csum err
ets_main.c
szukałem w internecie informacji o nim ale większość to przypomnienie o podpięciu zasilania albo sugestia ponownego wgrania.
Pomocy 🙁