Witam.
Wiem, że w internecie jest pełno poradników, tutoriali i innych tematów dotyczących aktualizacji modułu ESP, lecz wydaje mi się, że wszystkie już przerabiałem i nic nie pomogło.
Jestem w posiadaniu 2 modułów ESP8266-01 wersja czarna z 1MB pamięci FLASH. Posiadam jeszcze moduł ESP-12E, lecz póki nie rozwiążę problemów z ESP-01 nie mam zamiaru go ruszać. A więc do rzeczy.
Do wszystkich aktualizacji używałem konwertera USB->UART FTDI F232 z opcją logiki 5V jak i 3.3V
Po odpakowaniu podłączyłem moduł do komputera (Win10) wgrałem wszystkie niezbędne sterowniki i zabrałem się do aktualizacji najnowszego oprogramowania. Z obecnej pozycji wiem, że błędem było nie sprawdzenie obecnej wersji oprogramowania, oraz tego czy moduł reaguje na komendy AT. Po "udanej" aktualizacji (XTCOM_UTIL) podłączam moduł w trybie pracy i okazuje się, że nie działają komendy AT. Ogólnie to nic nie działa, w serial monitorze wyskakują krzaki zarówno przy baudrate 9600 jak i przy 115200. Dla baudrate 74880 pojawia się taki błąd:
ets Jan 8 2013,rst cause:2, boot mode:(3,6)
load 0x40100000, len 1396, 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
Wyczytałem, że jest to błąd reset, nie wiem jednak czym spowodowany. Wiem jedynie, że zmieniają się wartości boot mode. W razie podłączenia GPIO0 do masy w nawiasie otrzymamy (1,6), a gdy ponownie podłączymy pin CH_PD do zasilania kod błędu wynosi (1,7).
Próbowałem ponownych aktualizacji różnymi programami, z różnymi softami.
Używałem:
XTCOM_UTIL - brak żadnych komunikatów o błędzie
ESPflasher - tutaj przy 99% aktualizacji wyskakiwał błąd "failed to leave the flash" ale podobno wyskakuje to zawsze i nie ma wpływu na powodzenie aktualizacji
NodeMCU flasher - program normalnie wykrywa moduł i aktualizacja przebiega pomyślnie. Po ponownym podłączeniu modułu serial monitor lub putty pokazuje krzaczki (tak jakby się nic nie zmieniło)
FLASH DOWNLOAD TOOLS - program testowany w wersji 2.4 oraz 3.4.8. Adresy brałem z dokumentacji, a z braku informacji na temat ustawień, próbowałem różnych kombinacji. W SPI MODE wybierałem między DIO oraz QIO (gdzieś obiło mi się o uszy, że ma być QIO, ale nie byłem pewny), natomiast w FLASH SIZE wybierałem 4 lub 8 Mbit. Próbowałem wgrywać wszystkie 4 pliki, albo tylko główny - bez różnicy. W wersji 3.4.8 program tak jakby nie wgrywał nowego softu, a jedynie czyścił flash. Widać to po zapisach w okienku z logami. Program 3-krotnie wykonuje "erase flash" - do momentu aż pasek postępu "instalacji" oprogramowania nie osiągnie 100%. W wersji 2.4 "erase flash" wykonuje się jeden raz, a następnie program "wgrywa" oprogramowanie. A przynajmniej udaje, bo po zakończeniu wgrywania nie ma śladu po nowym sofcie.
Próbowałem zaktualizować moduł za pomocą pythona - bez powodzenia
Oprogramowanie które próbowałem wgrać:
ESP8266 v0.9.2.0 AT Firmware
ESP8266 v0.9.5.0 AT Firmware
ESP8266 v1.1.1.1 AT Firmware
ESP8266 v1.3.0.2 AT Firmware
ESP8266 v1.5.4 AT Firmware
ESP IOT SDK - różne wersje
ESP NONOS SDK - wersje 2.0.0 i 2.1.0
NodeMCU firmware 2.1
Po 2 dniach bezsensownych prób postawienia ESP na nogi, spróbowałem wykorzystać Arduino Core dla ESP8266. Niestety mimo pozytywnego wgrania szkicu (przykład Blink, oraz własny skrypt z mrugającą diodą na GPIO2) nic nie działało. Tak jakby po pozytywnym wgraniu szkicu, dochodziło do formatu pamięci FLASH. Próbowałem także podpiąć kondensatory 100uF oraz 470uF między VCC i GND (podobno kiedyś to komuś pomogło 😅 ).
Schemat podłączeń ESP8266-01 do konwertera FT232.
Dla programów (XTCOM_UTIL, ESPflasher)
FT232 -> ESP-01
GND -> GND
RX -> TX
TX -> RX
GND -> GPIO0
Konwerter zasilany był z USB, natomiast ESP z osobnego zasilania:
VCC -> 3.3V
CH_PD ->10kOhm -> VCC
RESET -> 10kOhm -> VCC
Dla pozostałych programów schemat połączeń wyglądał nieco inaczej (aczkolwiek ten powyżej tez próbowałem):
FT232 -> ESP-01
GND -> GND
RX -> TX
TX -> RX
DTR# -> GPIO0
RTS# -> RESET
Pozostałe zasilanie bez zmian.
VCC -> 3.3V
CH_PD ->10kOhm -> VCC
Do momentu zakończenia aktualizacji wszystko działa tak jak w podręczniku. Po zakończeniu flashowania i odłączeniu GPIO0, moduł tak jakby się formatował do stanu przed wgraniem oprogramowania.
Koniec..?
Nic bardziej mylnego. Zrozpaczony, zmęczony i mocno wkurzony odpakowałem drugi, taki sam moduł. Jako, że człowiek uczy się na błędach, po podpięciu ESP do komputera od razu odpaliłem serial monitor w Arduino IDE i sprawdziłem komendy AT. Okazało się, że działają. Wklepałem zatem AT+GMR i wyskoczyła mi wersja oprogramowania wgrana do modułu. Firmware AT v1.1.1.1. SDK version 1.5.4(baaeaebb). Z tego podniecenia, że mam działający moduł ESP (a przynajmniej komendy działają) straciłem głowę i poszedłem na całość. Wgrałem stworzony przez siebie szkic poprzez Arduino Core ESP8266 (ten z mrugającą diodą na GPIO2). Wiedziałem o tym, że po wgraniu jakiegokolwiek szkicu stracę komendy AT, ale były mi one niepotrzebne w przypadku działającego modułu pod Arduino lub Lua. No i wszystko szlag trafił. Szkic wgrany poprawnie, komend AT brak i działającego szkicu również. Reszty możecie się domyślić. Próby wgrania jakiegokolwiek oprogramowania kończyły się takim samym rezultatem jak w przypadku pierwszego modułu.
Ja już wyczerpałem swoje możliwości i wiedzę. Liczę na waszą pomoc i doświadczenie. Gdyby ktoś miał jakieś sprawdzone ustawienia do programu, albo wiedział co robię źle, to bardzo proszę o informację.
Z góry dziękuję i pozdrawiam.