Meshtastic® is een project waarmee je met LoRa-apparaten een off-grid communicatie netwerk maakt.
Dat is in het kort wat het is. Het niet gebruiken van Internet of 4G/5G, maar je smartphone via Bluetooth verbinden met een “Node” die samen met andere “Nodes” en netwerk vormt waarmee tekstberichten kunnen worden uitgewisseld. Niet meer en niet minder. Je hebt dus niet de volledige functionaliteit van Internet of 4G/5G zoals spraak, foto’s, video’s of het uitwisselen van bestanden. Het is slechts een beperkte berichtenservice waarbij je naast tekstberichten je positie of meteo gegevens (of andere telemetrie) naar elkaar of een groep kunt communiceren.
Is het dan wel nuttig om hier mee te experimenteren? Dat is een reëele vraag waar ik over na moest denken. In feite dezelfde vraag die je kunt stellen bij het TinyGS en het PAX Counter project. Wat heeft de radio hobbyist aan de LoRa spread spectrum technology en IoT, Internet of Things. Is dit een aanvulling op de hobby die ook kan rekenen op een brede interesse, zodat experimenten gedeelt kunnen worden?
Om eerlijk te zijn, na een paar maanden van knutselen, uitzoeken, proberen, vragen stellen en daadwerkelijk testen kom ik tot de conclusie dat IoT voor mij nauwelijks toegevoegde waarde heeft. Uiteraard gebruik ik wel IoT in mijn weerstation op het dak en bij mijn domoticz in huis, maar IoT projecten samen met andere radio hobbyisten komt nu nog niet goed uit de verf.
Ingredienten nodig voor het Meshtastic experiment:
- 2 stuks LilyGO TTGO T3 LoRa32 868MHz V1.6.1 ESP32 device. (via Tinytronics.nl of Amazon)
- Geprinte behuizing van Thingverse. Sluit de print mooi in en is lekker compact.
- Li-Po Batterij 3.7V 350mAh voor kort gebruik ca. 3 uur ingebouwd in de behuizing.
- Ga naar flash.meshtatsic.org met een Chrome of Edge browser en flash de firmware of ga naar meshtastic.org en volg de aanwijzingen.
- Download voor de smartphone de Meshtastic App
- Configureer je node. Regional Setting: EU_868 is een belangrijke. Je kunt de node via een USB kabel en met Chrome of Edge browser configureren via de site client.meshtastic.org.
Nadat je met je iPhone of met een Android smartphone een bluetooth verbinding hebt gemaakt met de node moet je al vrij snel twee nodes zien verschijnen op beide telefoons (ik heb 2 smartphones 🙂 een iPhone en een Android speciaal voor hobbyprojecten). In message Channels LongFast kun je dan een bericht versturen naar de andere telefoon. Je kunt dit ook min of meer afgeschermd via Direct Messages van node naar node sturen, maar houdt er rekening mee dat niets is afgeschermd en iedereen kan technisch gezien meekijken. Al snel zag ik dat er bij mij in de buurt nog iemand aan het experimenteren was (geen radio zendamateur overigens) en hadden we een conversatie op LongFast.
Maar ja dat was het dan…… gedurende een week of twee zag ik af en toe een node letterlijk ‘langsrijden’ maar geen uitbreiding van het mesh netwerk helaas.
Hoe nu verder? Het is mogelijk om je node te verbinden met Internet. Dit is feitelijk niet de bedoeling maar okay. Hiervoor moet je node een verbinding maken met je thuis WiFi maar dan werkt bluetooth niet meer op de node dus niet handig. Alternatief is om je node te laten verbinden met internet via je smartphone (via bluetooth en de meshtstic app) om op die manier met een zogeheten MQTT server (Message Queuing Telemetry Transport) te verbinden. Er is een global MQTT server op meshtatsic.org maar als je daar een verbinding mee opzet krijg je zoveel nodes en berichten binnen dat je node meteen crashed. Geen goed idee. Dit probleem is te ondervangen door de “Root Topic” goed in te stellen. Nou is deze functionaliteit helaas nog niet goed geïmplementeerd of gedocumenteerd in Meshtastic. “Root Topic” is een belangrijke parameter in een goed werkende MQTT server zoals hier beschreven. Bij Meshtastic heeft het niet alleen uitwerking op de berichten maar ook op de node doorgifte. De nodes maken zichzelf regelmatig bekend via het LongFast berichten kanaal.
Ik moet dit Root Topic onderwerp dus verder uizoeken en kwam tot de volgende uitkomsten:
- Verbinden met mqtt.meshtastic.org met root topic: msh (of leeg) geeft heel veel nodes van over de hele wereld tot aan Autralia aan toe. Relatief weinig messages en het is de vraag of de nodes (mocht je er een direct message naar sturen) daadwerkelijk worden uitgelezen.
- Verbinden met mqtt.meshtastic.org met root topic: msh/EU_868 geeft nog steeds een aanzienlijk aantal nodes. Na ca. 15 minuten al 350 nodes. Het meshtastic project lijkt hiermee volkomen nutteloos want iedereen zit op de een of andere manier aan internet verbonden. Er worden namelijk ook nodes doorgegeven die via één of meer hops via een mqtt verbonden node bereikbaar zijn.
- Verbinden met mqtt.meshtastic.org met root topic: msh/EU_868/Overijssel geeft niks! Niemand die dus op deze manier verbonden is met de meshtastic mqtt.
Op reddit kwam ik een goede uitleg tegen waarbij ik me vervolgens ook nog eens realiseerde dat iedereen (of groep) zijn eigen root topic kan verzinnen (net zoals een nieuwe Channel met bijbehorende key) dus vind elkaar dan maar eens terug. Dit lijkt op de problemen die we ook hebben bij de digitale modes (DMR, D-START, C4FM) waarbij door de veelheid van Reflectors, Rooms en Talk Groepen we elkaar ook mis lopen.
In het reddit bericht staat als conclusie: "… dus hoewel de geneste onderwerpen een mapsubset zijn van een onderwerp op een hoger niveau, is de berichtgeving beperkt tot het exacte onderwerp. Met andere woorden: de onderwerpen op een hoger niveau bevatten geen superset van de onderwerpen op een lager niveau." Kortom gebruik je root topic: msh/EU_868/Overijssel dan zie je niets van msh/EU_868 of msh en andersom msh laat je niet meekijken met msh/EU_868 en msh/EU_868/Overijssel.
Terug naar Meshtastic en dan met name naar de site meshnet.nl. Hier wordt e.e.a. voor Nederland gecoördineerd. Je kunt verbinden met mqtt.pa8f.nl en met root topic: msh en je krijgt uitsluitend Nederlandse nodes te zien omdat alleen die gebruik maken van deze mqtt server. Je kunt LongFast berichten sturen, maar je krijgt nauwelijks berichten terug. Dit heeft uiteraard te maken met het feit dat de aanbeveing van de mqtt beheerder is om je topic specifiek temaken met een poscodebereik. Na een tijdje heb je ca. 80 nodes ontvangen verspreid over Nederland zowel EU_433 als EU_868 nodes. (Je moet geduld hebben want nodes moeten zichzelf bekend maken omdat het is een live mesh is.)
Maar wat gebeurt er nu eigenlijk. De nodes die jij via mqtt ontvangt en waar je in principe mee kunt verbinden worden ook gepubliseerd in jouw lokale mesh. De chaos is compleet! Dit was dus het moment waarop ik dacht laat maar. Overigens zag ik veel radio zendamteur roepnamen gebruikt worden in de node naam en ook het feit dat sommige mensen meerdere nodes hebben geconnect met mqtt in verschillende rollen zoals Client, Router & Client en soms Client Mute. Kortom nog meer chaos! Welke node wordt daadwerkelijk bemand en worden de berichten hopelijk gelezen en welke staat een beetje zichzelf te wezen. Je moet blijkbaar via Telegram ( één van de onderwerpen in de Meshtastic Netherlands Telegram groep is “wie is waar (gezien)” 🙂 ) met elkaar afspreken hoe je de ander kunt bereiken en het is natuurlijk bezopen om meerder nodes in hetzelde mesh (zeg maar in dezelfde wijk met nodes die elkaar kunnen zien) aan mqtt te hangen.
Wat nu? Na lang zoeken en prutsen kwam ik tot de ontdekking dat als ik voor de pa8f mqtt server verbinding de root topic specifiek maakte ik berichten ontving en direct messages kon versturen naar nodes in een bepaalde mesh. Dit was een groep nodes in Amersfoort met postcodebereik 3800-3899. Zodra ik dit als root topic in de node configuratie invoerde (msh/3800-3899) kreeg ik alleen nog de nodes van die mesh te zien en ook de LongFast berichten. Vervolgens kon ik ook Direct Messages verzenden en ontvangen (dus van eind node naar eind node). Na een avond kletsen (teksten) met een paar mensen in de Amersfoortse mesh dan toch maar even doorzetten en een werkbare opzet maken.
Gebruik je op pa8f als root topic: msh dan zie je alle aangesloten nodes ongeacht nested topics maar tekst berichten uitsluitend onder root topic: msh. Gebruik je nested root topic: msh/3800-3899 dan krijg je de berichten te zien van nodes die eveneens deze topic hebben ingesteld en ook je nodelijst wordt ook uitsluitend aangevuld met nodes die deze topic gebruiken. Er wordt dus in de mqtt server voor je gefilterd. Dit kan omdat de route updates (hallo hier ben ik) via LongFast en dus ook onder de specifieke topic worden verstuurd.
Note 1: De node, verbonden met de mqtt server, bepaald de topic. Dus als een niet op mqtt aangesloten node in de mesh een LongFast bericht stuurt, wordt deze gerouteerd naar de mqtt server met de specifieke topic.
Note 2: Heeft een mesh twee mqtt aangekoppelde nodes met verschillende root topic dan krijg je dus een interessante olievlek werking oftwel chaos. Vergelijkbaar met "digitale mode koppelingen" die bujvoorbeeld DMR, Fusion of analoog aan elkaar gekoppeld hebben.
Ik heb nu het volgende gebouwd zoals hierboven in het plaatje rechts van de MQTT server te zien is :
- ANG1 – PA3ANG Base met role Client en een mqtt verbinding met pa8f en als Root Topic msh/3800-3899. Deze node heeft een 1/4 antenne en ontvangt dus ook nodes in mijn buurt. De node is aangesloten op de WiFi thuis en wordt dus verder niet uitgelezen. Hierdoor is hij 24/7 aan mqtt gekoppeld en dus niet afhankelijk van de bluetooth / app thetering.
- ANG2 – PA3ANG Mobile met role Client Mute. Deze node is (als ik actief ben) aangesloten op de smartphone via bluetooth.
Ik heb hiermee mijn eigen mesh(je) in Zwolle/Stadhagen gecombineerd met de mesh in Amersfoort. Ben benieuwd hoe lang dit zo werkt want Meshtastic is in constante ontwikkeling en er is grote afhankelijkheid van de mqtt server om dit te laten werken. Ook merk ik dat ik nog steeds berichten mis. Waarom is nog onduidelijk, missende control layer in het protocol of gewoon instabiliteit? Ook Direct Messages komen vaak niet aan via een mqtt router node. Een ander punt is zogeheten store & forward. Berichten worden niet opgeslagen in de keten / node als je niet verbonden bent met je smartphone aan de laaste node in de keten. Alles moet live zijn.
Conclusie of bottom line…. is Meshtastic een nuttige aanvulling op de hobby?
Ach je kunt leuk experimenteren maar echt nuttig kan ik het (nog) niet vinden. Er is een radio component maar die is vrijwel ondergeschikt aan de aandacht die je moet geven aan de software instellingen en aan de netwerk stabiliteit. Lokaal een mesh op een hackerevent, festival of radio velddag zonder mqtt verbinding zal mogelijk wel een leuke aanvulling zijn en meer kans van slagen hebben.
Er is nog een interessante mogelijkheid, namelijk om LoRa standaard in de smartphone in te bouwen. Als dan 4G/5G uitvalt kun je meteen overschakelen op de mesh en blijf je in de buurt met elkaar in contact.
Wil je meer weten over Meshtastic, IoT en LoRa dan is Google de beste optie om wijzer te worden. Specifiek voor Meshtastic raad ik uiteraard de nederlandse website meshnet.nl aan. Via deze download kun je een zeer lezenswaardig artikel lezen uit The Communicator jul-aug 2024 (engelstalig).
Mooi verwoord Johan. Veel herkenbaars ook.
Ook eens twee node’s aangeschaft maar door gebrek aan resultaat liggen ze maar in de kast.
Je kan ook LORA gebruiken met MeshCom, een LORA netwerk voor o.a. berichten , maar enkel voor Radio amateurs, we zijn recent gestart in ON, kijk eens op Facebook : https://www.facebook.com/groups/814328754183427
73’s Frits