W części 1 oglądaliśmy pamięć Heltec V3 jak mieszkanie z pokojami. Czas na remont. Poniżej cały proces na companionie, czyli węźle, z którym łączy się aplikacja: kopia tożsamości, wymazanie pamięci, wgranie firmware od zera i przywrócenie wszystkiego z pliku. Zrzuty ekranu pochodzą z aplikacji MeshCore 1.50.0 w wersji angielskiej, połączonej przez USB z Heltec V3, oraz z flashera na stronie meshcore.io.
Co znika przy Erase, a co da się uratować
Opcja Erase device we flasherze czyści całą pamięć flash: partycję spiffs, w której leżą tożsamość i ustawienia węzła, a także partycję nvs z zapamiętanymi parowaniami Bluetooth. Tożsamość to para kluczy, publiczny i prywatny, po których inni rozpoznają twój węzeł. Z pliku kopii odzyskasz ją, ale tylko wtedy, gdy zrobisz go przed wymazaniem. Eksport działa, gdy aplikacja potrafi połączyć się z urządzeniem, więc kopię warto robić z wyprzedzeniem, nie dopiero po awarii.
Krok 1: zrób kopię konfiguracji
- Połącz companiona z aplikacją i kliknij ikonę koła zębatego (Settings) w prawym górnym rogu.
- W sekcji Extra Tools wybierz Export Config.
- Zaznacz, co ma trafić do kopii, i zatwierdź ptaszkiem w prawym górnym rogu.
- Wskaż miejsce zapisu. Aplikacja podpowiada nazwę pliku: nazwa węzła, słowo
meshcore_config, data i godzina.
Lista opcji wygląda tak:
| Opcja | Co zapisuje |
|---|---|
| Name | nazwę węzła |
| Private Identity Key | klucz prywatny i publiczny, czyli tożsamość |
| Radio Settings | częstotliwość, szerokość pasma, spreading factor, coding rate i moc nadawania |
| Position Settings | współrzędne |
| Other Settings | ręczne dodawanie kontaktów i udostępnianie pozycji w adwertach (ogłoszeniach węzła) |
| Auto Add Settings | reguły automatycznego dodawania kontaktów |
| Channels | kanały |
| Contacts | kontakty |
| Regions | regiony |

Zaznacz przynajmniej Private Identity Key, bo bez niego tożsamości nie zachowasz. Warto dodać Radio Settings. Chcesz zachować kontakty i kanały? Zaznacz je też. Najwygodniej kliknąć Select All.
Sprawdź plik
Kopia to zwykły plik tekstowy w formacie JSON, więc otworzysz go w Notatniku.

Na początku zobaczysz trzy pola: name, public_key i private_key, czyli nazwę węzła i jego tożsamość. Dalej idą ustawienia radia i pozycji, pozostałe ustawienia, reguły automatycznego dodawania kontaktów i kanały.
Ważne: w pliku siedzi klucz prywatny, czyli hasło do twojej tożsamości. Trzymaj go w bezpiecznym miejscu, nie wysyłaj do publicznych grup i nie pokazuj na zrzutach ekranu. Klucz publiczny możesz pokazywać. W pliku są też klucze kanałów (pole secret). Klucz kanału Public jest powszechnie znany, ale klucze kanałów prywatnych są tajne, więc ta sama ostrożność dotyczy całego pliku.
Krok 2: wgraj firmware z opcją Erase device
- Otwórz stronę meshcore.io w Chrome albo Edge (flasher potrzebuje obsługi portu szeregowego w przeglądarce, której nie ma Firefox) i wybierz z menu FLASHER.
- Wpisz w filtrze nazwę płytki i wybierz ją, w tym przykładzie Heltec v3.
- Wybierz rolę. Tu jest to Companion. Do przygotowania zrzutów posłużył wariant Companion USB, czyli radio łączące się z aplikacją tylko kablem. Do połączenia z telefonem potrzebny jest wariant z Bluetooth.
- Wybierz wersję firmware (na zrzucie v1.18.0), zaznacz Erase device i kliknij Flash!

- Przeglądarka zapyta o dostęp do portu szeregowego. Wskaż port, do którego podłączony jest Heltec (w tym przykładzie „CP2102 USB to UART Bridge Controller”, port COM6), i kliknij Połącz.
- Poczekaj na komunikat Flashing complete! Log kończy się liniami w rodzaju „Wrote 719312 bytes … at 0x0”, „Leaving…” i „Hard resetting via RTS pin…”. Na zrzucie samo wgrywanie trwało niecałe 40 sekund.

Adres 0x0 zgadza się z opisem z części 1: pełny obraz firmware (plik merged) zapisuje się od samego początku pamięci. Nie zapomnij o ptaszku przy Erase device. Bez niego flasher wgra nowy firmware, ale stare dane w spiffs zostaną na swoim miejscu, razem z ewentualnym uszkodzeniem.
Nie odłączaj zasilania po wgraniu. Pierwszy start po wymazaniu trwa dłużej, bo urządzenie formatuje system plików. W dyskusji pod poprawką #3314 Liam Cottle, autor aplikacji MeshCore, podaje do półtorej minuty na Heltec V4, który ma ponad dwa razy większą partycję spiffs niż V3. Inny uczestnik tej dyskusji pisze o kilku minutach na Heltec V3 i V4. Daj płytce czas, zanim uznasz, że coś poszło nie tak.
Wybierz też dokładnie swoją płytkę. Firmware dla innego modelu może skończyć restartami w pętli, niedziałającym radiem albo innymi usterkami.
Krok 3: przywróć tożsamość z kopii
- Połącz się z urządzeniem. Aplikacja powita cię kreatorem Device Setup. Kliknij Skip Setup, bo nazwę, klucze i radio wczytasz z pliku.
- Wejdź w ustawienia (koło zębate), znajdź Import Config i kliknij Select File.
- Wskaż na dysku plik JSON z kopią.
- Zaznacz elementy do wczytania albo kliknij Select All. Aplikacja ostrzega, że import klucza prywatnego nadpisze bieżącą tożsamość. Tak ma być: nowy firmware ma dostać starą tożsamość.
- Zatwierdź ptaszkiem. Na dole pojawi się zielony komunikat Success z dopiskiem Config Imported!

Sprawdź, czy ustawienia zgadzają się z tym, co zapisałeś. W ustawieniach, w polu Public Key, klucz publiczny powinien być identyczny jak w pliku kopii. Jeśli tak, węzeł ma z powrotem swoją tożsamość.
Po przywróceniu: lista kontrolna
- Radio. Zajrzyj w ustawienia radia i porównaj je z kopią.
- Default Path Hash Size. Tego ustawienia nie ma w pliku kopii, więc import go nie przywróci, a po wymazaniu companion wraca do wartości domyślnej: 1 bajt (ustawienie historyczne). Chodzi o długość skrótu, którym oznaczane są repeatery na trasie pakietu. Przy 1 bajcie są tylko 254 identyfikatory, więc w większej sieci dwa repeatery łatwo dostają ten sam skrót. Jeśli przed wymazaniem używałeś 2 albo 3 bajtów, ustaw je ponownie. Repeatery z firmware starszym niż 1.14 odrzucają jednak pakiety z dłuższym skrótem, dlatego FAQ MeshCore radzi zostać przy 1 bajcie, dopóki większość repeaterów w okolicy nie ma wersji 1.14 lub nowszej.
- Kontakty i kanały. Wróciły tylko wtedy, gdy zaznaczyłeś je przy eksporcie.
- Bluetooth. Przy wariancie z Bluetooth usuń stare parowanie w ustawieniach Bluetooth telefonu, zanim połączysz się ponownie. Wymazanie skasowało je po stronie płytki, a FAQ MeshCore zaleca ten krok po czyszczeniu urządzenia.
A co z repeaterami?
Repeater trzyma listę dostępu (ACL), czyli klucze publiczne urządzeń z przypisanymi uprawnieniami. Każdy węzeł, który zaloguje się hasłem administratora, trafia na tę listę z uprawnieniami administratora. Przywrócona tożsamość to ten sam klucz publiczny, więc repeater nadal widzi w tobie to samo urządzenie.
Gdy wymazujesz sam repeater, kopię robi się inaczej. Klucz prywatny repeatera wyświetli polecenie get prv.key w konsoli przez USB, a po wgraniu firmware przywrócisz go poleceniem set prv.key z tym kluczem i ponownym uruchomieniem (FAQ MeshCore, punkt 3.5). Pozostałe ustawienia repeatera, w tym listę ACL, trzeba wtedy wpisać od nowa.
Na co uważać
- Przy eksporcie zaznacz tożsamość (Private Identity Key). Kontakty i kanały zapisują się tylko wtedy, gdy zaznaczysz je osobno.
- Kopię rób regularnie: tożsamość, kontakty i kanały.
- Pamiętaj o Erase device.
- Płytki z procesorem nRF52 (np. RAK4631, Heltec T114) wgrywa się inaczej niż Heltec V3: urządzenie trzeba najpierw przełączyć w tryb DFU, a pamięć czyści osobny przycisk Erase Flash. Ta procedura wykracza poza ten poradnik, więc przed wgraniem firmware sprawdź instrukcję swojego modelu.
Procedurę wykonano na Heltec V3 z firmware 1.18.0 i aplikacją MeshCore 1.50.0. Informacje o liście ACL, skrótach ścieżek i pierwszym starcie po wymazaniu pochodzą z dokumentacji CLI i FAQ MeshCore, wpisu o diagnostyce ścieżek na blogu projektu i dyskusji pod poprawką #3314.
