DutchMeshCore
Wat is DutchMeshCore?
Firmware
DutchMeshCore (afgekort DMC) is firmware voor op repeaters en room servers. DMC is gebaseerd op de officiële Meshcore firmware. DMC bevat enkele functies die de originele firmware niet heeft:
- Een filter functie. Hiermee kan spam en andere overlast geblokkeerd worden. Je bepaalt zelf welk verkeer jouw repeater doorlaat.
- Wifi-ondersteuning, op apparaten die dat ondersteunen, zoals Heltec V3 en Heltec V4. DMC kan zichzelf updaten via de wifi-verbinding met het ota update commando.
- MQTT-ondersteuning, die nuttig is om van je repeater een observer te maken.
- Een toekomstige versie biedt region gating: als de zendtijd een te hoog percentage bereikt, worden bepaalde regio's niet meer doorgegeven, te beginnen met de grootste. Lokaal verkeer krijgt hiermee dan voorrang. Als de zendtijd weer onder een percentage zakt, worden de regio's weer wel doorgegeven. Ook dit kan spam helpen bestrijden.
DutchMeshCore is er voor repeaters, room servers en observers, maar niet voor companions.
De DutchMeshCore firmware is hier te vinden. Installeren kan met een web flasher, op vrijwel dezelfde manier als de originele Meshcore firmware.
Tools
Naast DutchMeshCore firmware biedt de DutchMeshCore website ook een scala aan tools voor Meshcore-gebruikers:
- Een CLI-wiki waar je commando's kan opzoeken, voor zowel de originele als de DMC firmware.
- Configuratiehulp via USB om je repeater of room server in te stellen
- Een MQTT-wizard om je observer in te stellen. Deze wizard geeft je de commando's die je zelf moet uitvoeren in de CLI van je device.
- Een filter-wizard om het filter in te stellen. Deze wizard geeft je de commando's die je zelf moet uitvoeren in de CLI van je device.
- Een overzicht van de aanbevolen Meshcore-instellingen in Nederland
- Een Meshcore key generator, waarmee je je eigen favoriete device key kan maken (c0ffee is al bezet)
- Een Meshcore kanaal browser
- Een triangulator, die de bron van spamincidenten kan localiseren
- Een observer packet inspector, die live laat zien welke packets een observer ziet.
Waarom DutchMeshCore firmware
De ontwikkeling van de officiële Meshcore firmware gaat niet heel snel. Het aantal ontwikkelaars is beperkt. Sommige pull requests (aangeboden stukjes nieuwe functionaliteit) van buitenstaanders worden niet, of pas heel laat, geaccepteerd.
Daarnaast hebben we in Nederland een unieke situatie: we zijn een dichtbevolkt land, zonder bergen, met vele duizenden Meshcore-liefhebbers. Er zijn circa 3000 repeaters, die over het algemeen goed met elkaar verbonden zijn. Hierdoor lopen we in Nederland tegen problemen aan die op veel andere plaatsen nog niet voorkomen. Met name congestie: overbelasting. Een van de oorzaken is spam. Om de spam aan te pakken was in Nederland dringend behoefte aan een filterfunctie. Maar enkele developers vonden, dat het niet aan beheerders van repeaters was, om te bepalen welke berichten worden doorgegeven en welke niet. Helaas is de spam zo'n ernstig probleem dat we ons in Nederland niet kunnen veroorloven te wachten tot die developers van mening veranderen. En dat betekent een fork: een afsplitsing van de software die zijn eigen ontwikkelpad gaat volgen.
Tot slot: DMC firmware kan van je apparaat een observer maken. Die luistert naar binnenkomend radioverkeer en geeft dat door aan de MQTT brokers van DutchMeshCore, die ze weer beschikbaar stellen aan analyse-websites zoals MC-Radar.
Versies
DutchMeshCore firmware heeft deze versies:
| Versie | Voor device rollen | Filter | Wifi, MQTT | Observer | Kies deze: |
|---|---|---|---|---|---|
| DMC Repeater | Repeater | Ja | Nee | Nee | Als je een normale DMC-repeater wilt draaien. |
| DMC Repeater PacketLog | Repeater, observer | Ja | Nee | Ja, via USB | Als je packets extern wilt uitlezen, loggen of verwerken. Bijvoorbeeld: je hebt een apparaat dat geen wifi ondersteunt, maar je wilt er wel een observer van maken. Dan sluit je je apparaat met daarop deze firmware aan op bijvoorbeeld een Raspberry Pi met observer software. |
| DMC MQTT Observer | Repeater, observer | Ja | Ja | Ja | Voor apparaten die wifi ondersteunen. Voor als je een DMC observer wilt draaien. |
| DMC Room Server MQTT | Room, observer | Nee | Ja | Ja | Als je een room server wilt draaien die ook observer moet zijn. Deze versie is geen repeater dus biedt ook geen filter. |
Wifi en MQTT
De DMC MQTT versies bieden wifi op apparaten die dat ondersteunen: dat zijn doorgaans apparaten gebaseerd op een ESP32 microcontroller, bijvoorbeeld de Heltec V3 en V4. Deze Heltec nodes met de DMC MQTT firmware zijn daarom erg geschikt als observer. De DMC MQTT firmware is standaard ingesteld om zijn observaties te versturen naar de twee brokers van DutchMeshCore. De data wordt in Nederland opgeslagen, en niet in de VS zoals met LetsMesh. Eventueel kun je nog brokers toevoegen als je dat wilt, maar dat hoeft niet. Wel zul je je wifi SSID en wachtwoord moeten invoeren, want zonder internetverbinding worden geen observaties geüpload. Ook moet je een luchthavencode van je gebied (bijvoorbeeld AMS) invoeren, en je emailadres. Deze configuratiehulp geeft aan welke commando's je daarvoor kan gebruiken.
Updaten via wifi
De DMC MQTT versies kunnen zichzelf updaten als de wifi goed geconfigureerd is. Met ota check kun je controleren of de internetverbinding werkt, en of er updates zijn. Als de verbinding niet werkt, probeer dan je device te herstarten, bijvoorbeeld met commando reboot. Als er een firmware update is installeer je die met ota update.
Hoe werkt het filter?
Het filter kan:
- De hoeveelheid berichten van een bepaald type beperken (rate limiten), zodat berichten van één enkel type niet de hele mesh onbruikbaar maken voor anderen.
- Berichten met onleesbare karakters blokkeren.
- Berichten met 1 byte hashes blokkeren. De spamberichten hebben (tot nu toe) altijd 1 byte hashes. 1 byte hashes zijn moeilijk te lokaliseren omdat elke byte in Nederland al gauw naar meerdere repeaters kan verwijzen. 2 byte hashes zijn veel zekerder te lokaliseren.
- Kanalen blokkeren.
Blokkeren houdt hier in: niet doorgeven. Helaas kunnen er andere repeaters in de buurt zijn, die geen filter gebruiken en hetzelfde verkeer alsnog doorgeven. Maar dan nog is de gebruikte airtime minder. Dus ook dan helpt het om overbelasting te verminderen.
Aanbevolen filter-instellingen
Op het moment zijn dit de aanbevolen instellingen, om zo veel mogelijk spam tegen te houden:
filter on
filter malformed on
filter hash 2
Maar houd de Meshcore community in de gaten, want dit advies kan veranderen.
De statistieken van het filter kun je zien met het commando "filter":
> filter
> Filter on: Blocked [ Hops: 0 | Rate: 8 | Channel: 0 | Hash: 15740 | Malformed: 0 ]