Wpis z mikrobloga

Mirki, grzebię przy mikrokontrolerze ESP8266 12-E (od ai-thinker). Obecnie jestem na etapie zmiany firmware, a nawet na etapie braku możliwości odpalenie czegokolwiek ;)

Narzędziami typu esptool.py wgrywałem różne wersje na różne adresy. Niestety finalnie albo wszystko restartuje się albo wcale nie wstaje. Na UART przy właściwym baudrate (115200) i poprawnym podłączeniu układu dostaję krzaczki. Na baud 74880 raczej zgodnie z oczekiwaniami (info o powodzeni restartu, tryb pracy itd.).

Czy ktoś wie jak przywrócić firmware (który wybrać i na jakie adresy go wgrać) obsługujący komendy AT (w dowolnej wersji) i/lub obsługę wgrywania sketcha via Arduino IDE (lub pochodne)? #esp8266 #arduino
Pobierz wgasowski - Mirki, grzebię przy mikrokontrolerze ESP8266 12-E (od ai-thinker). Obecni...
źródło: comment_5GQEExyHkZH4yZrrs2vz8ndzssTiSuNg.jpg
  • 18
@mattcabb: ale tak całą całą? Faktycznie sketch leci na adres 0x00000000, czyli teoretycznie bez względu na to co wgram, to po próbie wrzucenia czegokolwiek przez Arduino IDE wszystko jest nadpisywane?! Dlaczego w takim razie cały czas dostaję krzaki w 115200?
@wgasowski: na pewno nadpisuje każdorazowo poprzedni firmware. możliwe, że nie robi zapisu do ostatniego adresu.
nie pamiętam już w jakim trybie bootowania i fazie bootowania nadaje z jaką prędkością, ale
@wgasowski: Też mam taki jeden nie do odratowania. Czasami się zastanawiam co się w tym układzie zmienia że zdycha.
Odłącz wszystkie piny poza usb i zobacz, jednego chipa skazałem na szufladę, a nie wstawał bo na jednym pinie zwarcie się utrzymywało. Pech chciał ze to był gpio 2 :D
@wgasowski: Przypomniała mi się jeszcze jedna akcja, odłącz esp i zostaw na noc. Miałem takiego jednego co rano wstał bez problemów. Nie wiem o co chodziło ale zmarnowałem przez niego chyba z 3 godziny a rano jak gdyby się nic nie stało ruszył. Czy już byłem zmęczony i nie widziałem oczywistego czy też w końcu dana komórka pamięci zmieniła stan nie wiem i chyba się nie dowiem nigdy...
Narzędziami typu esptool.py wgrywałem różne wersje na różne adresy.


@wgasowski: Ale po co tak kombinujesz. Arduino wgrywa tam poprawnie samo cały firmware (trzeba tylko poprawnie skonfigurować). U mnie się wgrywa na 115200, mogę ustawić wyższą ale musi być dobry UART i połączenie żeby nie było błędów transmisji. Trzeba pamiętać, żeby wprowadzić układ w stan oczekiwania na wgranie firmware - podczas włączania trzeba którąś nogę przytrzymać do masy albo vcc (nie pamiętam).
@houk: i rozłączanie i zostawienie na noc nie pomaga :) ja z tematem walczę już dobre kilka dni...
@kwanty: kombinuję bo szukam rozwiazania problemu. Samo wgranie przez Arduino IDE nie wystarcza, więc próbuję przywrócić oryginaly firmware obsługujący komendy AT. Próbowałem też NodeMCU, ale bezskutecznie.

Trzeba pamiętać, żeby wprowadzić układ w stan oczekiwania na wgranie firmware


To oczywiste. Pamięć na pewno jest modyfikowana o czym świadczą różne eksperymenty - np. ciągłe
@wgasowski: Używam deep sleep i wybudzanie jest tylko przez reset wiec nie wiem czemu by się miało coś dziwnego robić z tym stanie.
Zawołaj jak na coś wpadniesz, może i mi się przyda, mam takiego co trochę żyje ale programować się nie daje a też go elektrycznie nie uwaliłem tylko programowo.
@wgasowski no to rzeczywiście jest jakiś problem... Deep sleep w ESP 8266 jest przerywany przerwaniem zewnętrznym, nie działają timery wewnętrzne, więc reset powinien załatwić sprawę.

Sprawdź może oryginalne środowisko dla tego modułu, Arduino nie potrafi wykorzystać wszystkich możliwości. Może w idf jest jakiś możliwość głębokiego czyszczenia.

Ps. Dopiero esp32 ma działające timery w głębokim uśpieniu.
@kwanty: o sleep mode (i nie tylko) całkiem ciekawie opowiada ten gość. Stąd pamiętałem o tym wybudzaniu, chociaż tego nie sprawdzałem. Być może też pomyliłem sleep mode z deep sleep mode...

Sprawdź może oryginalne środowisko dla tego modułu

Co masz dokładnie na myśli?

Może w idf

Co to takiego "idf"?

Rozwiń proszę powyższe...
@wgasowski: pomyliłem z esp32 :)

Arduino dla esp* to jest tylko "proteza". Natywne środowisko jest inne. Dla esp32 jest to IDF, dla esp8266 szukaj tu: http://espressif.com/en/support/explore/get-started/esp8266/getting-started-guide

Natywne środowisko pozwala więcej niż Arduino, szczególnie w przerwaniach, uśpieniach, spcyficznych konfiguracjach, etc... Dla przykładu esp32 ma BT ale w Arduino się nie da z niego skorzystać.

Na tej stronie są różne wersje firmare, może któaś pomoże ;-)
@kwanty: no tak tak. Mam to. To też stąd moje kombinacje o których pisałeś :) W akcie rozpaczy usiłuję wgrać choćby oryginalny firmware tj. jak sądzę Non-OS SDK z obsługą komend AT (bo te działały świeżo po uruchomieniu modułu.

Problem jest tego typu, że nie do końca wiem, który dokładnie wybrać i pod jakie adresy co wgrać... przejrzę raz jeszcze link który podesłałeś.
@houk @kwanty: przedwczoraj po kolejnej serii niepowodzeń zdemontowałem cały układ i wrzuciłem wszystko do pudełka... przed chwilą złożyłem układ ponownie i... okazało się, że działa. Wgrany był przez Arduino IDE najzwyklejszy blink, który po podpięciu zasilania się uruchomił. Wygląda to obiecująco...

Chylę czoła za rzucone propozycje. Przepraszam też za zawracanie dupy, traktując zbudowany wcześniej (i działający) układ za pewny. Podejrzewam, że chińska płytka prototypowa zaczyna umierać... ¯\_(ツ)_/¯