Kreator EasySkyMesh kompiluje firmware na serwerze, więc nie wymaga instalowania środowiska programistycznego na komputerze. W przeglądarce wskazujesz wersję kodu, model płytki i jej rolę. Nasz GAT562 30S pracował jako companion BLE, czyli radio połączone z aplikacją przez Bluetooth Low Energy. Na etapie budowania urządzenie może pozostać odłączone.

Dla innego obsługiwanego modelu wybierz jego własny cel kompilacji. Opisane dalej porty, pakiet ZIP i procedura wgrywania dotyczą sprawdzonego zestawu; na innej płytce format pliku lub sposób aktualizacji mogą być inne.

PowerSaving to nieoficjalna odmiana MeshCore rozwijana przez IoTThinks, a EasySkyMesh to jej kreator w przeglądarce. Wydanie 18 bazuje na MeshCore 1.18. Budowanie w kreatorze oznacza skompilowanie przygotowanego wariantu projektu. Nie obejmuje edycji kodu ani tworzenia własnych funkcji. Kompilację i wgranie wykonaliśmy 29 października 2026 r. dla gałęzi PowerSaving-v18, a próbę wiadomości uzupełniliśmy 30 października. Użyliśmy prywatnego, kupionego samodzielnie GAT562 30S Mesh Kit. Nie mierzyliśmy zużycia energii.

Przygotuj komputer z przeglądarką obsługującą Web Serial, np. aktualnym Chrome na Windows, przewód USB z transmisją danych oraz telefon z aplikacją obsługującą MeshCore przez BLE. Odsyłacze do aplikacji znajdziesz na stronie projektu. Do opisanej próby z regionem wybierz aplikację obsługującą ustawienie zakresu regionu (Set Region Scope). Nazwy przycisków i ścieżki menu poniżej są przykładem z interfejsu użytego w próbie; w innych aplikacjach lub wersjach ich nazwy i położenie mogą się różnić. W wybranych miejscach podajemy też angielskie etykiety.

1. Wybierz wersję kodu

Otwórz kreator i odszukaj wybór wydania. W naszej próbie wybrano PowerSaving-v18. Zapisz tę nazwę razem z datą budowania. Przed późniejszym wgrywaniem przeczytaj notę PowerSaving18, ponieważ opisuje konkretną odmianę firmware’u.

Sprawdź też sekcję Notes nad wyborem płytki. Zawiera bieżące ostrzeżenia dla konkretnych modeli. Przykładowo 29 października IoTThinks dopisało, że aktualizacja Station G3 w roli companion BLE ze starszego MeshCore lub PowerSaving do PowerSaving18 wymaga eksportu konfiguracji, czystej instalacji pliku merged.bin i ponownego importu ustawień. To odmienna procedura od opisanej tutaj aktualizacji zestawu; nie przenoś między nimi poleceń kasowania pamięci.

Nazwa gałęzi wskazuje źródło, z którego budowany jest program. Gałąź może być aktualizowana, dlatego sama końcówka „v18” nie gwarantuje, że dwie kompilacje wykonane w różnych dniach dadzą identyczne pliki. Zachowaj także odsyłacz do zadania kompilacji.

2. Odszukaj właściwą płytkę i rolę

W wyszukiwaniu celów wpisz model swojej płytki. Dla naszego przykładu jest to gat562_30s. W próbie pojawiło się pięć wariantów: repeater, room server, companion USB, companion BLE oraz KISS modem. Każdy oznacza inne zastosowanie tego samego sprzętu. Do połączenia aplikacji przez Bluetooth wybraliśmy dokładnie:

GAT562_30S_Mesh_Kit_companion_radio_ble

Sprawdź całą nazwę, a nie tylko numer GAT562. Wariant USB nie zastępuje wariantu BLE w tej instrukcji. Podobnie nazwane płytki innych modeli wymagają własnego celu kompilacji.

Lista pięciu ról GAT562 30S, w tym companion_radio_ble, i przyciski Build
Zrzut: RadioMesh, kreator EasySkyMesh, 30.10.2026. Pełna lista ról dla wybranej płytki.

3. Uruchom kompilację i poczekaj na wynik

Kliknij Build przy wariancie companion BLE. Pozostaw kartę otwartą i nie odświeżaj jej w trakcie zadania. Czas zależy od kolejki i działania usługi. Zamiast kierować się samym upływem czasu, zaczekaj na komunikat Build finished. oraz odsyłacze do plików.

W naszej próbie kompilacja zakończyła się powodzeniem. Przycisk View run prowadził do zadania GitHub Actions. To miejsce, do którego warto zajrzeć, gdy budowanie zgłosi błąd. Zachowaj adres zadania przed zamknięciem karty.

4. Pobierz plik odpowiedni do sposobu aktualizacji

Dla wybranego celu kreator udostępnił dwa pliki. Są w kreatorze przez 90 dni, więc pobierz je od razu. Zachowaj ich oryginalne nazwy, ponieważ zawierają model, rolę oraz gałąź kodu.

Format Przeznaczenie w tym wyniku
UF2 Aktualizacja przez USB w trybie bootloadera, czyli programu uruchamiającego urządzenie
ZIP Pakiet DFU, w kreatorze oznaczony jako OTA; w tej próbie wgrany przez USB we flasherze

Pobrany UF2 miał 955 904 bajty, a ZIP 478 655 bajtów. Są to rozmiary naszej konkretnej kompilacji, a nie wymagane wartości dla każdego kolejnego wydania. Format wybieraj według procedury aktualizacji konkretnego urządzenia i jego bootloadera. W dalszych krokach używamy ZIP-a i połączenia USB.

Zakończona kompilacja i odsyłacze do pakietów ZIP oraz UF2
Zrzut: RadioMesh, wynik rzeczywistej kompilacji w kreatorze EasySkyMesh.

5. Sprawdź archiwum przed aktualizacją

Otwórz ZIP jak zwykły folder. W naszym pakiecie w głównym katalogu znajdowały się manifest.json, firmware.bin i firmware.dat. Manifest opisuje zawartość pakietu, plik BIN zawiera program, a DAT dane potrzebne mechanizmowi aktualizacji DFU.

Archiwum Source code.zip pobrane z GitHuba zawiera kod źródłowy. Nie jest gotowym pakietem DFU. Komunikat aktualizatora o braku manifest.json jest powodem do ponownego sprawdzenia wybranego pliku, a nie do przypadkowego zmieniania jego rozszerzenia.

6. Wgraj ZIP przez MeshCore Flasher

Przed aktualizacją działającego radia otwórz w aplikacji ustawienia pod ikoną koła zębatego, wybierz eksport ustawień (Export Settings), zaznacz potrzebne elementy i zapisz kopię poza radiem. Zachowaj też poprzedni plik firmware’u. Eksport obejmuje wybrane dane, więc sprawdź zaznaczone pozycje przed zatwierdzeniem. Nie kasowaliśmy pamięci ani nie wymienialiśmy bootloadera w opisanej próbie.

UWAGA: opcja Erase Flash usuwa dane urządzenia. Nie używaj jej w tej procedurze aktualizacji zestawu. Zapewnij stabilne zasilanie, zamknij programy korzystające z portu USB i nie odłączaj kabla podczas zapisu. Antena odpowiednia do pasma powinna być podłączona przed uruchomieniem radia.

  1. Otwórz MeshCore Flasher i wybierz Custom Firmware.
  2. Wskaż pobrany pakiet GAT562_30S_Mesh_Kit_companion_radio_ble-PowerSaving-v18.zip.
  3. Podłącz zestaw przewodem USB obsługującym dane.
  4. Kliknij Enter DFU mode i w oknie przeglądarki wybierz port radia. DFU to tryb umożliwiający zapis programu.
  5. Zaczekaj na DFU mode active. W naszej próbie radio przeszło z COM36 na COM38. Numery są przykładem z tego komputera; port bootloadera może mieć inny numer niż port działającego firmware’u.
  6. Kliknij Flash!. Jeśli przeglądarka ponownie pyta o urządzenie, wybierz port radia w trybie DFU.
  7. Poczekaj na Flashing complete! i 100%. Dopiero ten komunikat oznacza zakończenie zapisu.

Po wgraniu nasz zestaw wrócił na COM36. Sam napis USB DFU na ekranie urządzenia potwierdza wejście w tryb aktualizacji, a nie jej powodzenie.

MeshCore Flasher potwierdza zakończenie wgrywania
Zrzut: RadioMesh, zakończone wgrywanie ZIP-a na GAT562 30S Mesh Kit.

7. Połącz aplikację i sprawdź wiadomości

Połączenie z telefonem

  1. Włącz Bluetooth w telefonie i otwórz aplikację obsługującą MeshCore. Zezwól na dostęp do pobliskich urządzeń, jeśli system o niego poprosi.
  2. Naciśnij Połącz, wybierz BLE i wskaż własne radio na liście. Porównaj jego nazwę z ekranem zestawu.
  3. Jeśli pojawi się żądanie parowania, wpisz PIN pokazany przez radio. Nie zakładaj, że wcześniej zmieniony kod ma wartość domyślną.
  4. Otwórz ustawienia pod ikoną koła zębatego i przewiń do informacji o urządzeniu. Sprawdź model, wersję oraz datę firmware’u.

Nasz zestaw zgłosił GAT562 30S Mesh Kit, PowerSaving-v18 i 29-Oct-2026. Osobny odczyt diagnostyczny przez BLE zakończył się poprawnie, a flagi błędów urządzenia miały wartość zero. Wersja firmware’u w tym miejscu nie jest numerem wersji aplikacji na telefonie.

Aplikacja pokazuje wersję PowerSaving-v18 i połączenie przez BLE
Zrzut: RadioMesh. Informacje o firmware i połączeniu BLE badanego zestawu po aktualizacji.

Parametry radiowe

Przed pierwszą wiadomością sprawdź ustawienia używane przez swoją lokalną sieć. W aplikacji otwórz Ustawienia → Ustawienia radiowe → Wybierz preset (Choose Preset). Wybierz profil uzgodniony z lokalną społecznością, porównaj jego wartości i zapisz zmiany ptaszkiem w prawym górnym rogu. Gdy sieć stosuje własne parametry, wpisz je w tej samej sekcji zamiast wybierać przypadkowy profil kraju.

W naszej próbie odczytaliśmy poniższe wartości. To zapis konfiguracji badanego zestawu, nie zalecenie dla wszystkich sieci:

Parametr Wartość w próbie Znaczenie
Częstotliwość 869,618 MHz Częstotliwość środkowa kanału radiowego
BW 62,5 kHz Szerokość pasma sygnału
SF 8 Współczynnik rozpraszania modulacji LoRa
CR 8 Ustawienie kodowania korekcyjnego, odpowiadające 4/8
Moc TX 22 dBm Nastawa mocy nadajnika, około 158 mW; nie pomiar mocy promieniowanej

W podpaśmie 869,4–869,65 MHz europejskie warunki dla urządzeń bliskiego zasięgu ogólnego stosowania przewidują 500 mW e.r.p. i, jako wariant dostępu do pasma, aktywność nadajnika do 10%, czyli 360 s w ciągu godziny. W tym poradniku przyjmujemy właśnie wariant ograniczania czasu nadawania. E.r.p. to moc promieniowana z uwzględnieniem zysku anteny i strat przewodu; sama nastawa 22 dBm nie potwierdza zgodności całego zestawu. Nie zwiększaj mocy ani nie wyłączaj ograniczeń czasu nadawania w celu uzyskania odpowiedzi. Warunki pasma określa decyzja UE 2025/105, pozycja 54 tabeli.

Kanał, region i pierwszy tekst

Kanał rozmowy, np. #bot, porządkuje wiadomości w aplikacji. Region, np. waw, określa zakres ich przekazywania przez skonfigurowane repeatery. Żadne z tych ustawień nie zmienia częstotliwości radia. Nazwy z poniższego przykładu dotyczą naszej próby w województwie mazowieckim, w Mazowieckiej Sieci MeshCore. W innych regionach nazwy kanałów, zakresy i boty są inne. Przed wykonaniem kroków uzgodnij je z lokalną społecznością i zastąp nimi wartości z przykładu; także w obrębie województwa właściwy zakres zależy od konfiguracji danej sieci.

  1. Otwórz zakładkę Kanały, następnie menu trzech kropek w prawym górnym rogu i Dodaj kanał.
  2. Wybierz dołączenie do kanału hashtagowego (Join a Hashtag Channel). Podaj #bot-mazowsze, dołącz i przejdź do rozmowy. Jeśli pole formularza ma już stały prefiks #, wpisz samą nazwę; na liście ma pojawić się dokładnie #bot-mazowsze.
  3. W rozmowie otwórz menu trzech kropek i Ustaw zakres regionu (Set Region Scope).
  4. Jeśli waw nie ma na liście, naciśnij +, wpisz waw małymi literami, bez #, i zapisz ptaszkiem. Następnie wybierz ten region z listy. Samo dodanie nazwy nie zastępuje jej wybrania.
  5. Wróć do rozmowy. Pod nazwą kanału sprawdź napis Region: waw.
  6. Wpisz Kp i naciśnij ikonę wysyłania. W naszej próbie bot najpierw poprosił o ustawienie regionu; po jego wybraniu i ponowieniu Kp odpowiedział raportem połączenia.

Jeśli chcesz odtworzyć drugi przykład, dodaj w ten sam sposób kanał #bot, wybierz dla niego waw i wyślij T. Nazwa i obsługiwane komendy bota mogą się zmieniać, więc przed własną próbą sprawdź instrukcję operatora. Publiczny kanał hashtagowy nie służy do przesyłania poufnych danych.

Gdy w twojej sieci nie ma bota, umów się z osobą mającą drugie radio: obie strony wybierają te same parametry radiowe, wspólny kanał i właściwy zakres regionu. Wyślij np. „Test po aktualizacji, proszę o odpowiedź”, a druga osoba niech odpisze krótkim tekstem. W ten sposób sprawdzisz oba kierunki bez polegania na dostępności automatu.

Wykrywanie węzłów pokazało trzy repeatery. Status „Odebrano: 3 repeatery” oznaczał, że zestaw usłyszał retransmisje swojej wiadomości; nie informuje, ilu ludzi przeczytało tekst. Dopiero odpowiedź bota potwierdziła wymianę wiadomości w obie strony.

Na T w kanale #bot bot podał najpierw trzy skoki, 3,3 s i 26,3 km. To jego raport o trasie wiadomości przez sieć, nie pomiar bezpośredniego zasięgu zestawu. Liczba skoków pod odpowiedzią w aplikacji opisuje jej drogę odbioru i może różnić się od trasy wymienionej w raporcie.

8. Powtórz próbę po restarcie

  1. W ustawieniach aplikacji wybierz Uruchom ponownie.
  2. Po ponownym uruchomieniu radia połącz aplikację przez BLE.
  3. Sprawdź model i firmware, listę kanałów oraz region wyświetlany w rozmowie.
  4. Wyślij wcześniej sprawdzone polecenie do bota albo poproś umówionego odbiorcę o kolejny tekst.

Zrzuty z naszej sekwencji próby pokazują rozłączenie, wybór radia, ponowne połączenie, zachowane trzy kanały i region waw oraz kolejną odpowiedź na T. Bot zgłosił tym razem sześć skoków, 10,7 s i 21,2 km.

Próba obejmuje kompilację, wgranie ZIP-a, połączenie BLE, odbiór ruchu i wymianę tekstów, także po ponownym połączeniu w ramach testu restartu. Nie obejmuje pomiaru oszczędności energii, maksymalnego zasięgu ani długotrwałej stabilności.

9. Gdy coś nie działa

Objaw Co sprawdzić najpierw
Kreator nie kończy budowania Otwórz View run i sprawdź wynik zadania. Nie uznawaj samego upływu dwóch minut za sukces.
Brak radia w oknie wyboru portu Sprawdź kabel danych, połączenie USB i obsługę Web Serial w przeglądarce. Zamknij inny program korzystający z portu.
No port selected Otwórz ponownie wybór portu i wskaż radio. Ten komunikat oznacza brak wyboru urządzenia, nie uszkodzenie ZIP-a.
Po wejściu w DFU zniknął dotychczasowy COM Poszukaj nowego portu bootloadera i wybierz go przy Flash!.
Pakiet nie zawiera manifest.json Wróć do plików swojej kompilacji i wybierz ZIP DFU, nie archiwum kodu źródłowego.
Radio nie pojawia się przez BLE Sprawdź, czy wgrano companion BLE, włącz Bluetooth i wymagane uprawnienia; zakończ aktywne połączenie z innym telefonem lub komputerem.
BLE działa, ale brak odpowiedzi tekstowej Porównaj ustawienia radia z lokalną siecią, nazwę kanału i region. Sprawdź, czy bot lub umówiony odbiorca działa i jest osiągalny.
Bot prosi o region mimo dodania nazwy Wybierz region na liście i sprawdź jego nazwę pod tytułem rozmowy, potem ponów jedno polecenie.

Po naprawie przyczyny wykonaj jedną krótką próbę i sprawdź odpowiedź. Erase Flash nie jest uniwersalnym sposobem naprawy problemów z portem, Bluetooth lub zasięgiem.

Poradnik oparto na próbie RadioMesh z GAT562 30S Mesh Kit, instrukcji EasySkyMesh projektu IoTThinks, dokumentacji MeshCore i opisach konfiguracji polskich społeczności. Wyniki dotyczą wskazanego sprzętu i kompilacji z 29 października 2026 r.