Meshtastic i Meshcore
W ostatnich kilku tygodniach zainteresowałem się nowym tematem. Meshtastic oraz Meshcore. To dwa podobne i pewnego rodzaju konkurencyjne projekty budowania sieci Mesh w oparciu o moduły komunikacyjne LoRa. Są to projekty open-source do budowania alternatywnej i społecznościowej sieci łączności tekstowej. W Polsce sieci te budowane w nielicencjonowanym paśmie ISM 868MHz, gdzie nie jest wymagane pozwolenie radiowe i budową takiej sieci może zająć się absolutnie każdy. Ludzie uruchamiają nowe węzły, które rozszerzają zasięg takiej sieci.

W naszym klubie SP6PWT już znaleźli się zapaleńcy i uruchomili węzeł sieci Meshtastic jakiś czas temu. Ja sam na początku jakoś nie byłem tym zainteresowany do pewnego czasu, kiedy zobaczyłem urządzenia i porozmawiałem z innymi użytkownikami. Po konsultacji zamówiłem więc dwa moduły Heltec Wireless Paper i zacząłem zabawę. Zacząłem od projektu Meshtastic, który był chyba pionierem i zyskał bardzo dużą popularność. Pobawiłem się ze dwa dni i spróbowałem pobawić się projektem Meshcore. Jest to w zasadzie projekt tworzony przez twórców Meshtastica, którzy przeszli na jasną (a może ciemna?) stronę mocy. Jest to ulepszony w swojej architekturze projekt w którym wyeliminowano większość niesprawdzających się w Meshtasticu założeń, takich jak wyeliminowanie automatycznej telemetrii i przekazywanie każdej wiadomości przez każdy węzeł sieci, co powodowało bałagan. W Meshcore’ze za przekazywanie wiadomości odpowiedzialne są tylko specjalne stacje – Repeatery. Sama konfiguracja Meshcore jest prostsza a ilość ról zredukowano do absolutnego minimum. Moje zainteresowanie zbiegło się z eksodusem Meshtastika na rzecz Meshcore’a. Po krótkim epizodzie z Meshtastikiem zostałem już na Meshcore nie mając właściwie, oprócz jakichś mglistych wyobrażeń, żadnego pojęcia jak to działa i co ja właściwie robię. Na ślepo podążałem za jakimiś poradnikami w Internecie oraz tym co udało mi się dowiedzieć od kolegów.

Jak to właściwie działa? Takie urządzenie jak np Heltec Wireless Paper z jednej strony ma interfejs LoRa do komunikacji z innymi węzłami sieci, a z drugiej ma interfejs Bluetooth Low Energy, który się łączy np ze smartfonem. Tam uruchomiona jest już odpowiednia aplikacji, która służy do zarządzania takim węzłem oraz wysyłania wiadomości do innych użytkowników sieci.
Zbyt głęboko w Meshtastic nie wchodziłem, więc bardziej skupię się teraz na Meshcore’ze. Takie urządzenie można zaprogramować wrzucając gotowe oprogramowanie. Flashowanie jest banalnie proste, bo odbywa się z poziomu przeglądarki na stronie projektu. Dla każdej z ról jest dedykowane oprogramowanie. W Meshcore można zaprogramować swoje urządzenie jako Companion, Repeater albo Room Server. Companion to po prostu klient – interfejs dostępowy do sieci. To z nim bezpośrednio komunikuje się smartfon. Repeater to urządzenie sieci, które przekazuje odebrane komunikaty dalej. Room Server to cos w rodzaju pokoju konferencyjnego, do którego można pisać, wiadomości są tam umieszczane i wszyscy mający do niego dostęp mogą odczytać te wiadomości.
Jako, że kupiłem dwa urządzenia, jedno urządzenie podrzuciłem sąsiadowi i testowaliśmy jak to właściwie działa. Kiedy mgliste wyobrażenie zaczynało nabierać jakichś kształtów dokupiłem od jednego z kolegów jeszcze jeden moduł Wireless Paper. Pojawił się pomysł uruchomienia własnego repeatera i nad tym właśnie pracuję. We Wrocławiu jestem w zasięgu kilku repeaterów, więc dokładanie kolejnego w mojej lokalizacji nie ma sensu, natomiast w Strzegomiu aktualnie jestem w Meshcore’owej dziurze i taki repeater by się tu przydał. Może ktoś pójdzie moim śladem i postawi kolejny gdzieś dalej i uda skomunikować z Wrocławiem.
Komunikacja w Meshcore jest szyfrowana z wyjątkiem kanału Public, który jest takim kanałem głównym, który każdy widzi i każdy może pisać oraz własnych kanałów publicznych. Zarówno widomości bezpośrednie jak i wiadomości na kanałach prywatnych są szyfrowane i wymagają klucza do odszyfrowania. W przypadku wiadomości bezpośrednich jest to klucz użytkownika, w przypadku kanałów prywatnych – klucz kanału, który trzeba przekazać innym użytkownikom w sposób niejawny, aby mogli do niego dołączyć. Kanały działają na zasadzie peer-to-peer, kto słyszy (i ew. ma klucz) ten widzi wiadomość. Za pomocą roli Room Server można zrobić taki kanał z punktem centralnym, ale jeszcze się tym nie zajmowałem.
Siłą tego projektu jest to, że jak już wspominałem korzysta z wycinka pasma nielicencjonowanego, wiec może być budowane przez każdego bez żadnych pozwoleń oraz to, że takie węzły pobierają na tyle mało energii, że możliwe staje się budowanie sieci w oparciu o węzły zasilane energia słoneczną. Odpowiednio dobrany mikrokontroler pobiera na tyle mało energii, że jest w stanie na około 20W panelu fotowoltaicznym wraz z akumulatorem działać nieprzerwanie cały rok.
Ten wpis to dopiero początek i ogólny zarys, bo w planach są kolejne rzeczy do zrobienia i omówienia. Zapraszam do śledzenia i odkrywania świata Meschcore razem ze mną.