Komunikat aplikacji o zbyt starym firmware i brak wiadomości z sąsiedniego węzła to dwa różne problemy, sprawdzane w innych miejscach. Aplikacja telefonu ma własny numer wersji i własne wymagania wobec firmware, czyli oprogramowania radia. To, czy dwa radia się dogadają, zależy od wersji firmware i ustawień obu węzłów.
Stan na 28 października 2026 roku, według dokumentacji projektu. Porównanie dotyczy przede wszystkim wiadomości kanałowych w sieciach 2.7.x i 2.8.1.
Stable, Alpha i Nightly: numer to nie wszystko
W oznaczeniu 2.8.1.8e6a88d pierwsza część jest numerem wersji, a końcówka identyfikuje konkretny stan kodu. Dopisek określa kanał wydania. We flasherze Meshtastic, czyli narzędziu do wgrywania firmware przez przeglądarkę, są równolegle dostępne różne gałęzie:
| Kanał | Wersja widoczna podczas sprawdzania | Znaczenie |
|---|---|---|
| Stable / Beta | 2.7.26.54e0d8d Beta | Wydanie z grupy stabilnej. Flasher nazywa tę grupę „Stabilny (lub Beta)”. |
| Alpha | 2.8.1.8e6a88d Alpha | Nowsze funkcje, nadal w testach. Autorzy odradzają szerokie wdrażanie 2.8.1. |
| Nightly | 2.8.2 Nightly | Kompilacja z gałęzi rozwojowej develop, publikowana co noc. Końcówka numeru zmienia się z każdą kompilacją. |
Wyższy numer nie oznacza większej stabilności. Nightly służy sprawdzaniu rozwijanego kodu, więc jego zgodność trzeba oceniać dla konkretnej kompilacji. Obie kompilacje 2.8.0 wycofano – w serwisie GitHub mają dopisek Revoked, a flasher już ich nie pokazuje.

Co z czym współpracuje
Tabela zakłada zgodne ustawienia radiowe oraz właściwą nazwę i klucz kanału. „Zgodne” opisuje możliwość wymiany wskazanych wiadomości, bez obietnicy bezbłędnej pracy każdego modelu.
| Zestaw lub ustawienie | Zgodność | Warunek albo przyczyna |
|---|---|---|
| 2.7.x ↔ 2.8.1 | Tak, dla wiadomości kanałowych | Domyślna polityka Compatible w 2.8.1 przyjmuje niepodpisane pakiety. Kanał musi mieć wyłączone Use AEAD, bo 2.7 tej opcji nie zna. |
| 2.8.0 ↔ 2.8.1 | Niezgodne podpisane rozgłoszenia | Zmieniono zakres danych objętych podpisem. Wersję 2.8.0 wycofano; autorzy zalecają przejście z niej na 2.8.1. |
| Starszy, niepodpisujący węzeł → odbiornik Strict | Nie dla niepodpisanych wiadomości kanałowych | Strict wymaga weryfikowalnego podpisu; wyjątek stanowią zaszyfrowane wiadomości bezpośrednie. |
| Węzeł z układem STM32WL → odbiornik Strict | Nie dla niepodpisanych pakietów kanałowych | Kompilacje STM32WL nie podpisują pakietów. Sam numer 2.8 nie rozstrzyga zgodności. |
| Kanał Use AEAD włączone ↔ wyłączone | Nie odczytają wzajemnie wiadomości kanału | Nazwa i klucz mogą być identyczne. Różni się sposób szyfrowania. Opcja jest dostępna od 2.8.1, eksperymentalna i domyślnie wyłączona. |
Węzeł z firmware sprzed 2.3.0 (bez pola hop_start, potrzebnego do liczenia przekazań) → 2.8.1 |
Pakiety nie są przekazywane dalej | 2.8.1 traktuje brak albo błędną wartość hop_start jako przestarzały format i takich pakietów nie przekazuje. Pole pojawiło się w wersji 2.3.0 z marca 2024 roku. |
Węzeł w EU_868 ↔ węzeł z presetem Lite albo Narrow |
Brak łączności | W 2.8 wybór presetu Lite przełącza region na EU_866, a presetu Narrow – na EU_N_868. Węzeł przestaje wtedy słyszeć sieć pracującą w EU_868. |
Podpis pozwala sprawdzić nadawcę. Szyfrowanie chroni treść. Use AEAD (od 2.8.1) zmienia szyfrowanie kanału z AES-CTR na AES-CCM, które dodaje sprawdzanie integralności wiadomości. Ustawienie musi być takie samo u wszystkich uczestników kanału. Firmware 2.7 tej opcji nie zna, więc kanał wspólny z węzłami 2.7 musi mieć ją wyłączoną.
Polityka podpisów Balanced przyjmuje niepodpisane pakiety od węzłów, o których nie wiadomo, by korzystały z podpisów. Odrzuca jednak niepodpisane rozgłoszenia od węzłów, które wcześniej podpisywały pakiety, jeśli w danym pakiecie było miejsce na podpis. Strict może również odrzucić niepodpisane potwierdzenie wiadomości bezpośredniej. Wtedy aplikacja pokaże brak dostarczenia, choć odbiorca dostał tekst. Szczegóły określa konfiguracja bezpieczeństwa.
Aplikacja telefonu ma własne wymagania
Dokumentacja aplikacji Meshtastic na Androida opisuje dwa progi. Przy firmware starszym niż 2.3.15 aplikacja rozłącza węzeł. Od 2.3.15 do wersji poniżej 2.5.14 utrzymuje połączenie, lecz blokuje dalszą obsługę komunikatem o aktualizacji. Od 2.5.14 ten konkretny komunikat się nie pojawia.
To wymagania klienta opisane w aktualnej dokumentacji, a nie granice łączności radiowej ani zasada dla wszystkich historycznych aplikacji. Numer aplikacji nie musi odpowiadać numerowi firmware. Przy problemie zapisuj oba; wymagania aplikacji na iOS i innych klientów sprawdzaj osobno.
Zgodne wersje, a wiadomości nadal nie dochodzą
Preset łączy kilka parametrów modemu w jeden wybór. Do odbioru trzeba również trafić na tę samą częstotliwość. Przy automatycznym wyborze slotu zmiana nazwy kanału głównego może ją zmienić. Dlatego prywatne rozmowy przenieś na kanały dodatkowe 1–7, a nie na kanał główny ze zmienioną nazwą. Kanały dodatkowe mają te same ustawienia LoRa i własne klucze, a częstotliwości nie zmieniają. Natomiast niezgodny klucz uniemożliwia odczyt wiadomości nawet wtedy, gdy radio odbiera sygnał.
Jaki preset działa w okolicy, sprawdzisz w aplikacji na Androida albo iOS funkcją Local Mesh Discovery (na Androidzie: Ustawienia → Zaawansowane). Przełącza ona radio po kolei przez presety i pokazuje, na którym coś słychać, ale widzi tylko domyślny kanał publiczny.
Jeśli trafisz na informację, że w 2.8 domyślnym presetem jest LongTurbo, to dotyczy ona tylko regionu US i tylko pierwszego ustawienia regionu z ekranu urządzenia. Aktualizacja zachowuje dotychczasowy preset. W polskim regionie EU_868 presetów Turbo w ogóle nie ma, bo ich pasmo 500 kHz nie mieści się w zakresie 869,4–869,65 MHz.
Brak pozycji na mapie też nie przesądza o utracie łączności. W 2.8 rozsyłanie pozycji i pomiarów (telemetrii) jest domyślnie wyłączone i kto z nich korzysta, musi je po aktualizacji włączyć. Dokładnej pozycji węzeł nie wysyła już na kanale publicznym – do tego potrzebny jest kanał prywatny. Węzeł ze stałą pozycją (fixed position) na firmware 2.7.24–2.7.26 rozsyła współrzędne 0,0 zamiast ustawionych, więc na mapie nie pojawi się we właściwym miejscu. Dotyczy to także obecnej wersji stabilnej 2.7.26. Poprawka weszła do 2.8.1.
Przy przejściu z 2.7 na 2.8 zmienia się też identyfikator węzła – nowy jest wyznaczany z jego klucza publicznego. Inne węzły widzą go jako nowy węzeł, a stary wpis zostaje na liście, dopóki się nie przedawni. Po aktualizacji popraw ulubione, tematy MQTT i dashboardy, które korzystały ze starego identyfikatora.
Przed kolejną instalacją porównaj na obu węzłach:
- pełne numery firmware,
- ustawienia LoRa (region i preset),
- nazwę i klucz kanału,
- ustawienie Use AEAD,
- politykę podpisów.
Następnie sprawdź wiadomość na ekranie umówionego odbiorcy i poproś o odpowiedź. Potwierdzenie retransmisji wiadomości kanałowej mówi tylko, że inne radio ją powtórzyło. Przygotowanie kopii i samą migrację opisuje osobny poradnik aktualizacji, a nowości wersji 2.8.1 – artykuł o tym wydaniu.
