Kopia zapasowa i odzyskiwanie firmware
Jeśli twoje radio przestało się uruchamiać, czytaj tę stronę od tego miejsca w dół. Wyjaśnienia są dalej; najpierw kroki.
Radio nie uruchamia się po wgraniu firmware
Zacznij od najmniej drastycznego. ESP32-S3, który nie potrafi uruchomić swojej aplikacji, nadal odpowiada programatorowi, bo ta część, która z programatorem rozmawia, siedzi w ROM-ie samego układu, a nie w firmware, który właśnie zapisałeś. Dlatego nieudany zapis prawie zawsze da się naprawić tym samym narzędziem, które go spowodowało.
- Zostaw radio podłączone i włączone i zapisz jeszcze raz. Przerwany zapis zostawia niekompletny firmware, a nie uszkodzony układ. Jeśli port nadal jest widoczny, w większości przypadków to wystarcza.
- Zapisz kompletny obraz zamiast trzech plików. Użyj obrazu scalonego pod
0x0albo swojej kopii zapasowej. Kompletny obraz zastępuje wszystko, co częściowy zapis mógł uszkodzić, łącznie z bootloaderem. - Jeśli komputer nie widzi już portu szeregowego, wprowadź radio w tryb odzyskiwania ręcznie — następna sekcja — i zapisz ponownie.
- Jeśli port pojawia się i znika, to pętla restartów i właśnie dla niej istnieje tryb odzyskiwania. Nie próbuj w kółko zapisywać w takim stanie; najpierw wymuś tryb odzyskiwania.
Ręczne wymuszenie trybu odzyskiwania
Najpierw zajrzyj na płytkę. Część płytek ATS Mini ma wlutowane przyciski BOOT i RESET, część ma tylko BOOT, a część nie ma żadnego. Od tego zależy, która z poniższych sekwencji jest twoja.
Z obydwoma przyciskami: włącz odbiornik, podłącz go przez USB, naciśnij i przytrzymaj BOOT, naciśnij RESET, puść BOOT.
Z samym BOOT: podłącz odbiornik przez USB, naciśnij i przytrzymaj BOOT, włącz odbiornik, puść BOOT.
Bez przycisku BOOT: jeśli na płytce są pola lutownicze, krótkie zwarcie ich robi to samo co przycisk. Jeśli nie ma nawet pól, odpowiedź samego projektu firmware brzmi: zewrzeć nóżkę 27 (GPIO0) układu ESP32-S3 do masy i w ten sposób udać naciśnięcie. Tak czy inaczej otwierasz obudowę i dotykasz płytki pod napięciem, czyli robisz krok, którego nie robi się od niechcenia — ale jest to udokumentowana droga.
W trybie odzyskiwania radio nie robi nic z własnej woli: nie uruchamia wtedy swojego firmware’u, więc ciemny albo zamrożony ekran nie jest awarią. Liczy się komputer — powinien pokazać port szeregowy, a programator połączyć się z nim normalnie.
Co właściwie robią BOOT i RESET
RESET restartuje procesor. BOOT przytrzymany w chwili restartu każe procesorowi wystartować tryb pobierania z ROM-u zamiast firmware’u z pamięci flash. Żaden z nich niczego nie naprawia. To, co dają, to gwarancja, że układ słucha programatora, zamiast próbować uruchomić uszkodzony obraz.
Ta gwarancja jest powodem, dla którego płytka bez tych przycisków jest bardziej ryzykowna. Bez nich zależysz od tego, czy narzędzie do wgrywania samo namówi układ na tryb pobierania przez łącze USB, a to działa, dopóki układ się zachowuje. Kiedy przestaje — obraz, który wysypuje się, zanim USB zdąży ruszyć, albo pętla restartów gubiąca port — nie ma przycisku, na który można się wycofać, i zostaje zwieranie nóżki we wnętrzu obudowy. Warto wiedzieć, jaką masz płytkę, zanim ją zaprogramujesz, a nie w trakcie ratowania.
Kopia zapasowa przed zapisem
Kopia zapasowa to tutaj wierna, bajt w bajt kopia całej 8 MB pamięci flash radia: bootloader, tablica partycji, firmware i wszystko, co radio trzyma pomiędzy nimi. Jest kompletnym obrazem — i to właśnie czyni ją kompletną drogą powrotu.
W instalatorze firmware to pierwsza połowa kroku 5, Najpierw odczytaj kopię obecnego firmware’u, i jest domyślnie włączona. Odczyt całych 8 MB trwa kilka minut; na koniec dostajesz plik do pobrania. Zapisz go tam, gdzie go później znajdziesz — nazwa pliku zawiera datę, a kopia, której nie umiesz odnaleźć, nie jest kopią.
Ręcznie to samo odczytuje esptool.py poleceniem read_flash 0x0 ALL przy --baud 921600. Dokumentacja projektu firmware podaje pełne polecenie.
Przywracanie kopii zapasowej
Kopia zapasowa jest kompletnym obrazem, więc trafia pod 0x0, dokładnie tak jak scalony obraz wydania. Nie ma osobnej procedury przywracania ani specjalnego narzędzia.
W instalatorze zaznacz w kroku 4 Mam surowy obraz .bin zamiast archiwum wydania i wczytaj plik. Aplikacja odczytuje nagłówek samego obrazu, rozpoznaje kompletny obraz i proponuje 0x0. Nie jest w stanie sprawdzić luźnego .bin pod kątem twojego sprzętu — w takim pliku nie ma żadnego oznaczenia wariantu — więc prosi o potwierdzenie, że mimo to chcesz go zapisać. Twoja własna kopia z tego samego radia to najbardziej oczywisty powód, żeby się zgodzić.
Ręcznie jest to write_flash pod 0x0 z plikiem kopii, i to polecenie dokumentacja projektu firmware również podaje.
Jak wygląda nieudany zapis
Wygląda jak pasek postępu, który się zatrzymuje, i błąd. Nie wygląda jak eksplozja, a radio nic ci nie powie — nic w radiu nie wie, że zapis został przerwany w połowie. Trzy przypadki, które instalator rozdziela, warto od siebie odróżniać, bo wymagają przeciwnych reakcji:
- Zapis się nie zakończył
- Radio może się nie uruchomić, dopóki coś nie zostanie zapisane do końca, ale nadal jest podłączone i nadal słucha. Zapisz ponownie albo zapisz swoją kopię zapasową. To typowa awaria, z której da się wyjść.
- Zapisane, ale restart się nie powiódł
- Firmware już tam jest. Nie powiódł się wyłącznie automatyczny restart. Wyłącz i włącz radio ręcznie. Nie wgrywaj go drugi raz.
- Nie powiódł się odczyt kopii
- Nic nie zostało zapisane. Radio jest dokładnie takie, jak przed rozpoczęciem, więc nie ma czego odzyskiwać — po prostu zacznij od nowa.
Kiedy to nie firmware
Kilka awarii wygląda jak martwe radio, choć nim nie jest. Zanim założysz najgorsze:
- Kabel USB tylko do ładowania zasila radio i nie pokazuje komputerowi niczego. To najczęstsza przyczyna „port zniknął”.
- Hub USB między radiem a komputerem. Spróbuj portu w samym komputerze, zwłaszcza jeśli połączenie działa przy wolnej prędkości, ale nie chce przyspieszyć do transferu.
- Nie ten port. Jeśli narzędzie zgłasza, że płytka nie jest układem ESP32-S3, wybrałeś jakieś inne urządzenie szeregowe USB — z radiem wszystko w porządku.
- Śpiące albo wyłączone radio nie odpowiada na nic. Obudź je przed połączeniem.
- Układ odpowiada, ale jego pamięć flash nie. To akurat nie jest problem kabla i wymiana kabla nic nie da; to wskazuje na płytkę samego radia.
Kiedy radio znów działa, poradnik Wgrywanie firmware opisuje warianty, adresy i wybór między zapisem trzech plików a scalonym, a instalator zrobi rozpoznanie za ciebie.
Polecane akcesoria
- Krótki kabel USB-C do transmisji danychAkcesoriumZanim obwinisz firmware: kabel tylko do ładowania to najczęstszy powód, dla którego radio przestaje pokazywać się jako port szeregowy.