Repeater, czyli węzeł, który odbiera i przekazuje dalej wiadomości w sieci MeshCore, stawia się tam, skąd ma najlepszy zasięg: na dachu, maszcie albo szczycie wzgórza. Tam też najtrudniej do niego dotrzeć, gdy trzeba wgrać nowy firmware. Aktualizator opisany 22 czerwca 2026 na blogu MeshCore doczekał się w sierpniu następcy, Drone MeshCore Updater, którego obsługuje się z przeglądarki.
Od Raspberry Pi do lekkiego modułu
Pomysł powstał podczas rozbudowy lokalnej sieci MeshCore na Słowacji. Lucidnx przygotował rozwiązanie wykorzystujące Raspberry Pi Zero 2 W. Pokazany zestaw z zasilaniem ważył 70 g, a jego konfiguracja i diagnostyka w terenie były kłopotliwe.
Wcześniej recrof napisał nrf_dfu_py, program do aktualizacji z komputera przez zewnętrzny adapter Bluetooth z kierunkową anteną – z ziemi, bez drona. Podobnie z ziemi działa aplikacja MeshCore Update na telefon, ale wymaga podejścia na odległość zasięgu Bluetooth.
Recrof opracował mniejszy aktualizator na płytce Seeed Studio XIAO nRF52840. Płytka z akumulatorem litowo-jonowym 250 mAh, przymocowana do drona DJI Neo 2, ważyła razem 7,5 g.
Co zmieniła nowa wersja?
Starszy projekt wykorzystywał dysk USB z systemem plików FAT12, na który kopiowano firmware i konfigurację. Jego następca, Drone MeshCore Updater, działa na systemie Zephyr (otwarty system operacyjny czasu rzeczywistego dla mikrokontrolerów), a obsługuje się go z aplikacji w przeglądarce, która łączy się z płytką przez Bluetooth.
Aplikacja pozwala przesyłać przez Bluetooth paczki z firmware’em, zmieniać ustawienia, uruchamiać aktualizację, śledzić jej postęp i czytać dzienniki. Działa w Chrome i Edge na komputerze i Androidzie. Firefox, Safari i przeglądarki na iPhonie nie obsługują Web Bluetooth, więc z nimi nie zadziała. To PWA, czyli aplikacja webowa, którą można zainstalować jak zwykły program – po instalacji działa bez internetu.
Przygotowanie i aktualizacja repeatera
Najpierw wgrywa się oprogramowanie samego aktualizatora: płytkę podłącza się kablem USB do komputera i w aplikacji wybiera „Flash updater”. Potem, już przez Bluetooth, przesyła się na nią paczki z firmware’em repeaterów w formacie Nordic DFU (plik .zip). Płytka przechowuje kilka paczek naraz, na XIAO nRF54LM20A około 16.
Paczkę dla konkretnego modelu repeatera można pobrać z flashera MeshCore. W ustawieniu ble_name wpisuje się fragment nazwy, którą repeater ogłasza przez Bluetooth – na przykład „4631” dla płytek RAK albo „T114” dla Heltec T114.
Repeater na nRF52 musi mieć bootloader (program startowy, który przyjmuje nowy firmware) OTAFIX autorstwa oltaco w wersji 2.1 lub nowszej. Przed lotem wysyła się do repeatera przez sieć MeshCore polecenie start ota, które przełącza go w tryb aktualizacji.
UWAGA: lot przy maszcie, antenach i liniach energetycznych grozi zderzeniem i upadkiem drona z wysokości. Loty dronem w Polsce podlegają przepisom Unii Europejskiej i Urzędu Lotnictwa Cywilnego – przed startem sprawdź, czy w tym miejscu wolno latać i jakie warunki trzeba spełnić, a pod masztem nie powinno być ludzi.
Dron podnosi aktualizator w zasięg Bluetooth repeatera. Gdy aktualizator wykryje urządzenie o nazwie z ustawienia ble_name i dostatecznie silnym sygnale (próg min_rssi, domyślnie −75 dBm), przesyła firmware przez Bluetooth Low Energy (BLE). Sieć LoRa służy tylko do wydania polecenia i do sprawdzania pingiem, czy aktualizacja się zaczęła i kiedy repeater wróci do pracy.
Zasilanie w powietrzu
Z dala od komputera płytka potrzebuje 5 V na złączu USB-C albo akumulatora na polach lutowniczych. Powerbank jest najprostszy, ale musi mieć tryb dla urządzeń o małym poborze prądu. Aktualizator między transmisjami pobiera kilka miliamperów, a większość powerbanków przy tak małym obciążeniu wyłącza się po 10–30 sekundach. Objaw: przy konfiguracji wszystko działa, a po powrocie płytka jest martwa.
UWAGA: pola na akumulator nie mają zabezpieczenia przed odwrotnym podłączeniem, a zwarte lub uszkodzone ogniwo litowe może się zapalić. Przed lutowaniem sprawdź biegunowość oznaczoną na płytce i zaizoluj przewody.
Akumulator LiPo trzeba dokupić i przylutować samodzielnie. Od wersji 2.3 aktualizator na XIAO nRF54LM20A, XIAO nRF52840 i RAK4631 pokazuje w aplikacji stan baterii.
Automatyczna praca podczas lotu
Drone MeshCore Updater ma ustawienie auto_flash, które zaczyna aktualizację zaraz po włączeniu zasilania, bez telefonu i bez naciskania czegokolwiek. Reguły ble_firmware_mapping przypisują paczki z firmware’em do nazw, które ogłaszają repeatery, więc jeden aktualizator może nosić firmware dla kilku modeli.
Bez auto_flash aktualizację uruchamia się z aplikacji, więc telefon albo komputer musi być w zasięgu Bluetooth aktualizatora. Z włączonym auto_flash aktualizator wgra firmware każdemu urządzeniu, które pasuje do reguł – także takiemu, którego nikt nie zamierzał aktualizować. Wynik widać na diodzie (zielona miga w trakcie pracy, po sukcesie świeci ciągle), a szczegóły zapisuje dziennik, który po powrocie drona odczytuje się w aplikacji.
Obsługiwany sprzęt i ograniczenia
Sam aktualizator działa na płytkach Seeed XIAO nRF54LM20A, nRF52840, ESP32-S3, ESP32-C5 i MG24, a od wersji 2.3 także na RAK4631 z modułem pamięci RAK15001. Najnowsze wydanie to 2.4 z 12 września 2026.
Przez Bluetooth, protokołem Nordic Legacy DFU, aktualizator obsługuje repeatery z układami nRF52. Repeatery MeshCore na ESP32 nie przyjmują firmware’u przez Bluetooth: po poleceniu start ota uruchamiają otwartą sieć Wi-Fi „MeshCore-OTA” i przyjmują plik przez stronę ElegantOTA. Tę drogę aktualizator obsługuje od wersji 2.0 z 30 sierpnia 2026, ale tylko na płytce z Wi-Fi, czyli XIAO ESP32-S3 – XIAO ESP32-C5 działa na razie tylko przez Bluetooth. O drodze decyduje plik: paczka .zip idzie przez Bluetooth, plik .bin przez Wi-Fi. Opis w README tego jeszcze nie uwzględnia i podaje, że transport Wi-Fi nie jest gotowy.
Płytki różnią się pamięcią na paczki: XIAO nRF54LM20A ma 8 MB (około 16 paczek), XIAO ESP32-S3 i MG24 – około 10, a XIAO nRF52840 tylko 2 MB (około 4 paczek). Moc nadawania Bluetooth to do +8 dBm na układach nRF i do +20 dBm na ESP32. Na liście rzeczy do zrobienia autor wymienia też wymianę klucza, którym podpisywane są aktualizacje samego aktualizatora: na razie jest to publicznie znany klucz testowy MCUboot, więc taką aktualizację może podpisać każdy.
Artykuł powstał na podstawie wpisu „OTA Updates by Drone” na blogu MeshCore oraz dokumentacji i opisów wydań projektu Drone MeshCore Updater w serwisie GitHub.
