Naar inhoud springen

The switch

Uit MeshWiki
Dutch Meshcore — Switch naar SF7
Netwerkbrede wijziging — actie vereist van alle operators
Switchdatum: 9 mei 2026
Deze pagina is gebaseerd op het switchdocument geschreven door greentown (@greentown0). Veel dank voor het opzetten van de SF test, het analyseren van de resultaten en het schrijven van de switchinstructies.
Bron: meshcore_sf7_switch_instructions.pdf · settings.woodwar.com

Waarom is deze switch nodig?

Het Nederlandse Meshcore netwerk groeit. Met meer nodes komt meer achtergrondverkeer: advertisement packets, route-updates en botberichten. De huidige SF8-instelling kan dit niet meer bijhouden. Het kanaal raakt verstopt, wat leidt tot gemiste berichten, mislukte logins bij repeaters en verminderde betrouwbaarheid.

Begin maart 2026 heeft de community een gecoördineerde test uitgevoerd gedurende een heel weekend, waarbij SF8 (huidig), SF7 en SF6 werden vergeleken. De resultaten ondersteunen een overstap naar SF7: het slagingspercentage van traceroutes verbeterde van gemiddeld ~38% bij SF8 naar ~53% bij SF7. De kanaalcapaciteit bij SF7 is bijna drie keer zo groot als bij SF8: het netwerk kan dezelfde verkeersbelasting aan met veel minder congestie. Het verschil in signaalgevoeligheid tussen SF7 en SF8 is slechts ongeveer 3 dB, een klein verschil dat in de praktijk de meeste verbindingen niet zal beïnvloeden.

De switch is een gecoördineerde actie. Het tegelijkertijd overschakelen minimaliseert de verstoring. Nodes die eerder overschakelen worden tijdelijk geïsoleerd van nodes die nog op SF8 zitten. Plan je switch op de afgesproken datum en volg alle onderstaande stappen.

Dit document is het vervolg op twee eerdere community documenten:

Nieuwe instellingen in één oogopslag

Parameter Waarde
Radio preset Netherlands (beschikbaar in de Meshcore app)
Spreading factor SF7
Coding rate CR5
Frequentie 869.618 MHz
Bandbreedte 62.5 kHz
Advert interval 50 uur minimum (flood adverts)
Firmware 1.15 of nieuwer

De switch in een notendop

Voorbereiding Switchdag Strict region
1 2 3 4 5 6 7 8
Firmware
updaten
Advert
interval
Bots &
scripts stoppen
Regio
scoping
Multi-byte
path
Loop
detectie
Radio
omschakelen

9 mei 2026
Strict
region

13 juni 2026

Repeaters die meedoen

De volgende grote repeaters schakelen over op switchdag:

Repeater Locatie Link
Utrecht Gerbrandytoren Utrecht analyzer
Almere Centrum Almere analyzer
DTIS meerdere locaties dtis.io

Voorbereidingsstappen

Stappen 1 t/m 6 kunnen en moeten vóór de switchdag worden gedaan, op je eigen tempo. Stap 7 (radio omschakelen) gebeurt op de afgesproken switchdatum. Stap 8 (strict region forwarding) is een aparte fase, gepland op 13 juni 2026.

Stap 1: Update je firmware naar versie 1.15 (of nieuwer)

Zorg dat je repeater en companion app de nieuwste stabiele Meshcore firmware draaien voordat je radio-instellingen wijzigt. Op het moment van schrijven is dat versie 1.15. Versie 1.15 is het minimum voor deze switch — functies zoals standaard regioscoping en het blokkeren van unscoped pakketten zijn pas vanaf deze versie beschikbaar.

Updates bevatten verbeteringen voor congestieafhandeling. Actuele firmware zorgt dat je node goed samenwerkt met de rest van het mesh.

Update zowel je repeater firmware als je companion app voordat je verdergaat.

Stap 2: Stel je advert interval in op 50 uur (minimaal)

Advertisement packets maken je node en zijn routeringsinformatie bekend aan het mesh. Te frequent verzenden is een van de belangrijkste oorzaken van congestie. Het minimale advert interval voor flood adverts is 50 uur. Je mag het hoger instellen.

Deze instelling geldt voor flood adverts. Zero-hop adverts (alleen gehoord door je directe buren) moeten ingesteld worden op 240 minuten (4 uur).

Stel het flood advert interval in op 50 uur of meer in je repeater-instellingen.
Zero-hop adverts: 240 minuten (4 uur).

Stap 3: Stop geautomatiseerde bots of scripts

Heb je je Meshcore node aan een computer gekoppeld, bijvoorbeeld via Home Assistant, een custom script of een andere automatisering? Controleer de configuratie vóór de switch.

Geautomatiseerde nodes die berichten verzenden verbruiken airtime die het mesh niet kan missen. Denk aan polling bots, scripts die op een schema verzenden, en bots die reageren op berichten in gedeelde kanalen zoals #test. Deze auto-reply bots zijn een grote bron van onnodig verkeer en moeten gestopt worden. In het verleden hebben we gezien dat een verkeerd geconfigureerde integratie het hele netwerk flink kon verstoren — niet uit kwade opzet, maar simpelweg door een over het hoofd geziene instelling.

Quick check: Heb je een node aan een computer gekoppeld? Bezoek mc-radar.woodwar.com/mesh-health en controleer of je node in de lijst staat. Nodes in die lijst hebben een te kort advert interval en veroorzaken onnodige belasting op het mesh. Staat de jouwe erbij? Pas het advert interval aan vóór de switchdatum.

Weet je niet hoe je je configuratie moet controleren of aanpassen? Vraag het in de community chat vóór de switchdatum.

Stap 4: Schakel regioscoping in

Regioscoping beperkt hoe ver een bericht door het mesh reist. In plaats van het hele landelijke netwerk te overspoelen, worden berichten met een regioscope alleen doorgestuurd door repeaters die die regio bedienen. Dat vermindert onnodig langeafstandsverkeer.

Regioscoping vereist meerdere wijzigingen: twee op de repeater (regiocodes toevoegen en een standaardregio instellen) en twee op de companion app. Het blokkeren van unscoped pakketten (stap A.3) is een aparte fase — Fase 8, 13 juni 2026 — en moet nu nog niet worden toegepast. Zie de sectie Regioscoping instellen hieronder.

Stap 5: Configureer multi-byte path (vereist firmware v1.14+)

Multi-byte path verbetert de observeerbaarheid van pakketten in het netwerk. Dit vereist een kleine wijziging op zowel je companion app als je repeater.

Op je companion app (belangrijkste): Ga naar Experimental Settings en stel Default Path Hash Size in op 2-byte. Dit is de belangrijkste instelling: het zorgt dat berichten die je het mesh in stuurt een 2-byte path hash meekrijgen, wat de rest van het netwerk nodig heeft om van multi-byte path te profiteren.

Op je repeater (CLI): Deze instelling zorgt dat de repeater een 2-byte path hash meestuurt bij zijn eigen verkeer (adverts en andere door de repeater gegenereerde pakketten):

set path.hash.mode 1

Stap 6: Schakel loopdetectie in en stel de duty cycle in (vereist firmware v1.14+)

Loopdetectie is geïntroduceerd in firmware v1.14.0. Repeaters weigeren hiermee flood-pakketten die lijken te loopen. Dat kan optreden wanneer een slecht werkende node (bijv. met aangepaste of verouderde firmware) een pakket corrumpeert en opnieuw doorstuurt, waardoor het door het mesh blijft circuleren tot de maximale 64-hop limiet. Dit soort packet storms veroorzaken forse congestie.

De detectie houdt bij hoe vaak de eigen ID of path hash van een repeater al voorkomt in het pad van een binnenkomend pakket. Overschrijdt het de drempel voor het geconfigureerde gevoeligheidsniveau, dan wordt het pakket geweigerd.

De minimal instelling vangt duidelijke 1-byte path loops op zonder risico op false positives bij legitiem verkeer.

Op je repeater (CLI):

set loop.detect minimal

Beschikbare opties: off, minimal, moderate, strict. De standaard is off. minimal is het aanbevolen startpunt voor alle Nederlandse Meshcore operators.

Stel ook de duty cycle in op 10%:

Europese radioregelgeving schrijft een maximale 10% duty cycle voor op de 868 MHz subband die Meshcore gebruikt. Dit commando dwingt deze limiet af op firmwareniveau, waardoor je node niet per ongeluk de wettelijke zendlimiet overschrijdt.

set dutycycle 10

Dit vervangt het oude set af 9 commando uit eerdere firmwareversies. Dit is een wettelijke vereiste voor gebruik in Europa en moet op alle repeaters worden ingesteld.

Switchdag — 9 mei 2026

Na de bovenstaande voorbereidingsstappen blijft er nog één actie over: de nieuwe radio-instellingen toepassen op de afgesproken datum.

Stap 7: Schakel over naar de nieuwe radio-instellingen

Selecteer in de Meshcore app de radio preset voor Nederland. Deze preset zit ingebouwd in de app en configureert alle vereiste parameters:

Parameter Waarde
Preset Netherlands
SF / CR SF7 / CR5
Frequentie 869.618 MHz
Bandbreedte 62.5 kHz
Geen Netherlands preset? De Netherlands preset is niet beschikbaar. Zie je hem niet, kies dan Custom en stel de parameters handmatig in: SF7, CR5, 869.618 MHz, 62.5 kHz.

Let op: alleen de spreading factor en coding rate veranderen. De frequentie (869.618 MHz) is dezelfde als de huidige SF8-instelling.

Zwakke verbinding na de switch? Als een specifieke link instabiel wordt na het toepassen van de nieuwe instellingen, kun je de coding rate wijzigen van CR5 naar CR8. Een hogere coding rate voegt meer foutcorrectie toe, wat de linkstabiliteit kan verbeteren op marginale paden — ten koste van meer airtime. Dit beïnvloedt alleen je uitgaande zendingen; het verbetert niet wat je node van anderen ontvangt.

Fase 8 — Strict region forwarding — 13 juni 2026

Ongeveer een maand na de hoofdswitch schakelt de community strict region forwarding in. Dit is de meest impactvolle wijziging in de hele transitie: het verdeelt het mesh in verbonden regionale zones. Problemen of congestie in één regio cascaderen niet meer over het hele netwerk, en advertisements reizen alleen zo ver als hun toegewezen regioscope.

Stap 8: Blokkeer pakketten zonder regioscope (strict region forwarding)

Pas het laatste regiocommando toe op je repeater. Dit instrueert je repeater om binnenkomende pakketten zonder regioscope te verwerpen, in plaats van ze door te sturen over het hele mesh. Vanaf dit punt moet elk bericht dat je repeater binnenkrijgt een expliciete regiotag dragen.

region denyf *
region save

Vanuit de UI: Stel in het Manage Regions scherm Deny Flood in bij de optie Packets without region set.

Pas dit pas toe op 13 juni 2026 of later. Controleer eerst dat je stap 4 hebt voltooid (regioscoping op zowel repeater als companion app) en dat je kanalen de juiste scopes hebben. Na activering verwerpt je repeater al het verkeer van nodes die geen regioscoping hebben geconfigureerd.

Checklist

Vóór switchdag — voorbereiding:
  • Stap 1: Firmware geüpdatet naar v1.15 of nieuwer (repeater + companion app)
  • Stap 2: Flood advert interval ingesteld op 50 uur of meer; zero-hop adverts: 240 minuten
  • Stap 3a: Bots en auto-reply scripts gestopt
  • Stap 3b: mc-radar.woodwar.com/mesh-health gecontroleerd, je node staat niet in de lijst
  • Stap 4: Regioscoping geconfigureerd (A.1 + A.2), zie sectie Regioscoping instellen
  • Stap 5: Multi-byte path: companion 'Default Path Hash Size' = 2-byte; repeater CLI: set path.hash.mode 1
  • Stap 6: Loopdetectie: repeater CLI: set loop.detect minimal; duty cycle: set dutycycle 10 (10%)

Op switchdag (9 mei 2026):

  • Stap 7: Pas de Netherlands radio preset toe (SF7/CR5, 869.618 MHz, 62.5 kHz)
  • Bevestig dat je je buren kunt horen op de nieuwe instellingen

Fase 8 — Strict region forwarding (13 juni 2026):

  • Alle voorbereidingsstappen (1–6) voltooid
  • Stap 4 (regioscoping A.1 + A.2) bevestigd werkend — kanalen correct gescoped
  • Stap 8: Strict region forwarding toegepast op je repeater

Regioscoping instellen

Regioscoping werkt alleen als je twee dingen configureert: de repeater en de companion app. De repeater bepaalt welke scoped berichten hij doorgeeft. De companion bepaalt welke scope aan jouw berichten wordt meegegeven.

Twee community tools maken het instellen van regio's makkelijk:

All-in-one configurator: mesh-up.nl/tools/regiocodes-instellen
Dashboard configurator: dashboard-elburg.f3dp.nl

A. Configureer de repeater

De repeaterconfiguratie omvat drie taken: A.1 regiocodes toevoegen, A.2 een standaardregio instellen, en A.3 unscoped pakketten blokkeren (Fase 8 — 13 juni 2026). Stappen A.1 en A.2 moeten tijdens de voorbereiding worden gedaan. Stap A.3 is een aparte fase, een maand na de switch. De makkelijkste manier is een van de community tools hierboven.

A.1 Regiocodes toevoegen

  • Repeater configurator site: Gebruik een van de bovenstaande tools om de configuratie te genereren. Dit is de aanbevolen manier als je niet bekend bent met regio's.
  • Vanuit de Meshcore app op je telefoon: Gebruik het ingebouwde Manage Regions scherm, in de administratie-instellingen van je repeater. Voeg eu, nl en je provinciecode (zie tabel hieronder) toe en zet ze op Allow Flood.
  • CLI: Zie het volledige commandoblok onderaan deze sectie.

A.2 Standaardregio instellen

Je repeater heeft een standaardregio nodig. De standaardregio wordt meegegeven aan de advertisements die je repeater over het mesh verstuurt. Door deze op je provincie in te stellen, worden de adverts van je repeater alleen binnen die provincie gehoord — dat vermindert congestie. Dit beïnvloedt niet de berichtconnectiviteit: berichten kunnen nog steeds provinciergrenzen oversteken via repeaters in aangrenzende regio's. Het beperkt alleen hoe ver je eigen repeater zichzelf aankondigt.

Vanuit de UI: Open in het Manage Regions scherm het 3-puntenmenu naast je provinciecode en kies Set as default.

CLI: region default JOUW_PROVINCIE — zie het commandoblok hieronder.

A.3 Unscoped pakketten blokkeren — Fase 8 (13 juni 2026)

Timing: Pas stap A.3 pas toe op 13 juni 2026 of later. Eerder inschakelen zorgt ervoor dat je repeater berichten verwerpt van nodes die nog geen regioscoping hebben geconfigureerd.

Na activering stuurt je repeater alleen nog pakketten door die een expliciete regioscope dragen — pakketten zonder scope worden verworpen. Dit verdeelt het mesh in verbonden regionale zones. Problemen in één regio (congestie, een misbehaving node, een packet storm) cascaderen niet meer over het hele landelijke netwerk.

Vanuit de UI: Stel in het Manage Regions scherm Deny Flood in bij Packets without region set.

CLI: Opgenomen in het commandoblok hieronder (region denyf * gevolgd door region save).

Alle repeater-regiocommando's — volledig CLI-blok

region put eu
region put nl
region put bx
region put JOUW_PROVINCIE
region put JOUW_STAD
region default JOUW_PROVINCIE
region denyf *
region save

Vervang JOUW_PROVINCIE door je provinciecode (zie tabel hieronder) en JOUW_STAD door je stadscode als die bestaat — laat het weg als je er geen hebt. eu dekt Europees verkeer, nl dekt landelijk verkeer, bx dekt Benelux-verkeer.

Timing: Het commando region denyf * (stap A.3) pas toepassen op 13 juni 2026 of later (Fase 8). Alle andere commando's in het blok hierboven kun je op elk moment tijdens je voorbereiding uitvoeren.

B. Configureer de companion app en kanaalscopes

Wijs in de Meshcore app een scope toe aan elk kanaal dat je gebruikt. Dit zorgt dat je uitgaande berichten worden getagd met de juiste regio. Dit is het belangrijkste onderdeel van de companion configuratie.

Standaardregio: Stel in Experimental Settings op je companion app de Default Region in op nl. Dit zorgt dat berichten zonder expliciete kanaalscope alsnog getagd worden met de regio Nederland.

  • Lokaal of stadskanaal: Voor een lokaal kanaal zoals #amsterdam, stel de scope in op de bijbehorende lokale code, bijv. nl-ams.
  • Nationaal of breed kanaal: Voor een kanaal zoals public, stel de scope in op nl als je bericht het hele land moet bereiken. Je kunt het ook op een kleiner gebied instellen.
  • Provincie-only kanaal: Voor een provinciekanaal zoals #gelderland, gebruik de provinciescope, bijv. nl-ge. Voor Noord-Holland nl-nh, enzovoort (zie provincietabel hieronder).
  • Europees kanaal: Als je wilt communiceren over heel Europa, maak een #europe kanaal aan en stel de scope in op eu.
  • Testkanalen: Testberichten hoeven niet het hele mesh te overspoelen. Stel een kleine scope in, zoals je provincie bijv. nl-nh voor Noord-Holland.

Vuistregel: kies de smalste scope die past bij het gesprek. Gebruik lokale of provinciale scopes voor lokale discussie; gebruik alleen nl wanneer het bericht landelijk relevant is, en eu alleen voor communicatie over heel Europa.

Een referentielijst van publieke kanalen met aanbevolen scopes staat op: Publieke kanalen

Provinciecodes

Provincie Regiocode
Groningen nl-gr
Friesland nl-fr
Drenthe nl-dr
Overijssel nl-ov
Flevoland nl-fl
Gelderland nl-ge
Utrecht nl-ut
Noord-Holland nl-nh
Zuid-Holland nl-zh
Zeeland nl-ze
Noord-Brabant nl-nb
Limburg nl-li

Een volledige lijst van regiocodes (inclusief steden) staat op: Lijst van regio's


Dutch Meshcore — Switch to SF7
Community-wide network settings change — action required from all operators
Switch date: 9 May 2026
This page is based on the switch document written by greentown (@greentown0). Many thanks for organising the SF test, analysing the results and writing the switch instructions.
Source: meshcore_sf7_switch_instructions.pdf · settings.woodwar.com

Why is this switch needed?

The Dutch Meshcore network is growing. More nodes means more background traffic: advertisement packets, route updates, and bot messages. The current SF8 setting can no longer keep up. The channel is congested, causing missed messages, failed logins to repeaters, and reduced reliability.

In early March 2026, the community ran a coordinated test over a full weekend, comparing SF8 (current), SF7, and SF6. The results support a switch to SF7: traceroute success rates improved from ~38% at SF8 to ~53% at SF7. Channel capacity at SF7 is nearly three times that of SF8, so the network can handle the same traffic with far less congestion. The sensitivity difference between SF7 and SF8 is only about 3 dB, a small margin unlikely to affect most links in practice.

The switch is a coordinated move. Switching the whole community at the same time minimises the disruption window. Nodes that switch early will be isolated from nodes still on SF8. Plan your switch for the agreed date and follow all steps below.

This document follows two earlier community documents:

New settings at a glance

Parameter Value
Radio preset Netherlands (available in the Meshcore app)
Spreading factor SF7
Coding rate CR5
Frequency 869.618 MHz
Bandwidth 62.5 kHz
Advert interval 50 hours minimum (flood adverts)
Firmware 1.15 or later

The Switch in a nutshell

Preparation Switch day Strict region
1 2 3 4 5 6 7 8
Update
firmware
Advert
interval
Stop bots
& scripts
Region
scoping
Multi-byte
path
Loop
detection
Switch
radio

9 May 2026
Strict
region

13 Jun 2026

Repeaters joining the switch

The following major repeaters will switch on switch day:

Repeater Location Link
Utrecht Gerbrandytoren Utrecht analyzer
Almere Centrum Almere analyzer
DTIS multiple locations dtis.io

Preparation steps

Steps 1 through 6 can and should be done before switch day, at your own pace. Step 7 (switching the radio) happens on the agreed switch date. Step 8 (strict region forwarding) is a separate phase scheduled for 13 June 2026.

Step 1: Update your firmware to version 1.15 (or later)

Make sure your repeater and companion app are running the latest stable Meshcore firmware before changing any radio settings. As of writing, that is version 1.15. Version 1.15 is the minimum required for this switch — features such as default region scoping and blocking unscoped packets are only available from this version onwards.

Updates include improvements to congestion handling. Current firmware ensures your node interoperates with the rest of the mesh.

Update both your repeater firmware and your companion app before proceeding.

Step 2: Set your advert interval to 50 hours (minimum)

Advertisement packets announce your node's presence and routing information to the mesh. Sending them too often is one of the main causes of congestion. The minimum advert interval for flood adverts is 50 hours. You may set it higher.

This setting applies to flood adverts. Zero-hop adverts (only heard by your immediate neighbours) should be set to 240 minutes (4 hours).

Set flood advert interval to 50 hours or more in your repeater settings.
Zero-hop adverts: 240 minutes (4 hours).

Step 3: Stop automated bots or scripts

If you have connected your Meshcore node to a computer via Home Assistant, a custom script, or another automation, review its configuration before the switch.

Automated nodes that transmit messages consume airtime the mesh cannot spare. This includes polling bots, scripts that send on a schedule, and bots that reply to user messages in shared channels such as #test. These auto-reply bots are a major source of unnecessary traffic and should be stopped. We have seen cases in the past where a misconfigured integration caused significant harm to the whole network — not because of bad intentions, but simply because a setting was overlooked.

Quick check: Have a node connected to a computer? Visit mc-radar.woodwar.com/mesh-health and check whether your node appears in the list. Nodes listed there have an advert interval that is too short and are causing unnecessary load on the mesh. See yours? Fix the advert interval before the switch date.

Not sure how to check or fix your configuration? Ask in the community chat before the switch date.

Step 4: Enable region scoping

Region scoping limits how far a message travels across the mesh. Instead of flooding the entire national network, messages tagged with a region are only forwarded by repeaters that serve that region. This reduces unnecessary long-distance traffic.

Region scoping requires several changes: two on the repeater (adding region codes and setting a default region) and two on the companion app. Blocking unscoped packets (step A.3) is a separate phase — Phase 8, 13 June 2026 — and should not be applied yet. See the Region scoping setup section below.

Step 5: Configure multi-byte path (requires firmware v1.14+)

Multi-byte path improves the observability of packets in the network. This requires a change on both your companion app and your repeater.

On your companion app (most important): Go to Experimental Settings and set Default Path Hash Size to 2-byte. This is the key setting: it ensures that messages you send into the mesh carry a 2-byte path hash, which is what the rest of the network needs to benefit from multi-byte path.

On your repeater (CLI): This setting makes the repeater attach a 2-byte path hash to its own originated traffic (adverts and other repeater-generated packets):

set path.hash.mode 1

Step 6: Enable loop detection and set duty cycle (requires firmware v1.14+)

Loop detection was introduced in firmware v1.14.0. Repeaters with this enabled reject flood packets that appear to be looping. This can happen when a poorly-behaved node (e.g. running modified or outdated firmware) corrupts and re-forwards a packet, causing it to circulate across the mesh up to the 64-hop limit. These packet storms cause heavy congestion.

The detection tracks how many times a repeater's own ID or path hash appears in an incoming packet's path. If it exceeds the threshold for the configured sensitivity level, the packet is rejected.

The minimal setting catches clear 1-byte path loops without risking false positives on legitimate traffic.

On your repeater (CLI):

set loop.detect minimal

Available options: off, minimal, moderate, strict. Default is off. minimal is the recommended starting point for all Dutch Meshcore operators.

Also set the duty cycle to 10%:

European radio regulations mandate a maximum 10% duty cycle on the 868 MHz sub-band used by Meshcore. This command enforces the limit at the firmware level, preventing your node from inadvertently exceeding the legal transmission duty cycle.

set dutycycle 10

This replaces the deprecated set af 9 command from older firmware versions. This is a legal requirement for operation in Europe and should be set on all repeaters.

Switch day — 9 May 2026

After the preparation steps above, one action remains: apply the new radio settings on the agreed date.

Step 7: Switch to the new radio settings

In the Meshcore app, select the radio preset for the Netherlands. This preset is built into the app and configures all required parameters:

Parameter Value
Preset Netherlands
SF / CR SF7 / CR5
Frequency 869.618 MHz
Bandwidth 62.5 kHz
No Netherlands preset? The Netherlands preset is not available. If you don't see it, select Custom and set the parameters manually: SF7, CR5, 869.618 MHz, 62.5 kHz.

Note: only the spreading factor and coding rate change. The frequency (869.618 MHz) is the same as the current SF8 setting.

Weak connection after the switch? If a specific link becomes unstable after applying the new settings, you can try changing the coding rate from CR5 to CR8. A higher coding rate adds more error-correction information, which can improve link stability on marginal paths — at the cost of higher airtime usage. This only affects your outgoing transmissions; it will not improve what your node receives from others.

Phase 8 — Strict region forwarding — 13 June 2026

Approximately one month after the main switch, the community will enable strict region forwarding across the mesh. This is the most impactful change in the entire transition: it turns the mesh into a set of connected regional zones. Problems or congestion in one region no longer cascade across the whole network, and advertisements only travel as far as their assigned region scope.

Step 8: Block packets without region scope (strict region forwarding)

Apply the final region command on your repeater. This instructs your repeater to silently drop any incoming packet that carries no region scope, instead of re-broadcasting it across the entire mesh. From this point on, every message entering your repeater must carry an explicit region tag.

region denyf *
region save

From the UI: In the Manage Regions screen, set Deny Flood in the Packets without region set option.

Do not apply this before 13 June 2026. First confirm you have completed step 4 (region scoping on both repeater and companion app) and that your channels have the correct scopes assigned. Once enabled, your repeater will drop all traffic from nodes that have not configured region scoping.

Checklist

Before switch day — preparation:
  • Step 1: Firmware updated to v1.15 or later (repeater + companion app)
  • Step 2: Flood advert interval set to 50 hours or more; zero-hop adverts: 240 minutes
  • Step 3a: Bots and auto-reply scripts stopped
  • Step 3b: mc-radar.woodwar.com/mesh-health checked, your node is not listed
  • Step 4: Region scoping configured (A.1 + A.2), see Region scoping setup section
  • Step 5: Multi-byte path: companion 'Default Path Hash Size' = 2-byte; repeater CLI: set path.hash.mode 1
  • Step 6: Loop detection: repeater CLI: set loop.detect minimal; duty cycle: set dutycycle 10 (10%)

On switch day (9 May 2026):

  • Step 7: Apply the Netherlands radio preset (SF7/CR5, 869.618 MHz, 62.5 kHz)
  • Confirm you can hear your neighbours on the new settings

Phase 8 — Strict region forwarding (13 June 2026):

  • All preparation steps (1–6) completed
  • Step 4 (region scoping A.1 + A.2) confirmed working — channels scoped correctly
  • Step 8: Apply strict region forwarding on your repeater

Region scoping setup

Region scoping requires configuring two things: the repeater and the companion app. The repeater decides which scoped messages it forwards. The companion decides what scope gets attached to your outgoing messages.

Two community tools make region setup easy:

All-in-one configurator: mesh-up.nl/tools/regiocodes-instellen
Dashboard configurator: dashboard-elburg.f3dp.nl

A. Configure the repeater

The repeater configuration covers three tasks: A.1 adding region codes, A.2 setting a default region, and A.3 blocking unscoped packets (Phase 8 — 13 June 2026). Steps A.1 and A.2 should be completed during preparation. Step A.3 is a separate phase scheduled one month after the switch. The easiest way is to use one of the community tools above.

A.1 Add region codes

  • Repeater configurator site: Use any of the tools above to generate the configuration automatically. This is the recommended approach if you are not familiar with regions.
  • From the Meshcore app on your phone: Use the built-in Manage Regions screen inside the administration settings of your repeater. Add eu, nl, and your province code (see table below) and set them to Allow Flood.
  • CLI: See the complete command block at the bottom of this section.

A.2 Set default region

Your repeater needs a default region configured. The default region is attached to the advertisements your repeater broadcasts across the mesh. Setting it to your province means your repeater's adverts are only heard within that province — significantly reducing congestion. This does not affect messaging connectivity: messages can still travel across province boundaries via repeaters in adjacent regions. It only limits how far your own repeater announces itself.

From the UI: In the Manage Regions screen, open the 3-dot menu next to your province code and choose Set as default.

CLI: region default YOUR_PROVINCE — see the command block below.

A.3 Block unscoped packets — Phase 8 (13 June 2026)

Timing: Do not apply step A.3 before 13 June 2026. Enabling it earlier will cause your repeater to drop messages from nodes that have not yet configured region scoping.

Once enabled, your repeater will only forward packets that carry an explicit region scope — packets without a scope are silently dropped. This turns the mesh into a collection of connected regional zones. Problems in one region (congestion, a misbehaving node, a packet storm) no longer cascade across the entire national network.

From the UI: In the Manage Regions screen, set Deny Flood in the Packets without region set option.

CLI: Included in the command block below (region denyf * followed by region save).

All repeater region commands — complete CLI block

region put eu
region put nl
region put bx
region put YOUR_PROVINCE
region put YOUR_CITY
region default YOUR_PROVINCE
region denyf *
region save

Replace YOUR_PROVINCE with your province code (see table below) and YOUR_CITY with your city code if applicable — omit it if you don't have one. eu covers European-wide traffic, nl covers national traffic, bx covers Benelux traffic.

Timing: The region denyf * command (step A.3) should only be applied on 13 June 2026 or later (Phase 8). Run all other commands in the sequence above at any time during your preparation.

B. Configure the companion app and channel scopes

In the Meshcore app, assign a scope to each channel you use. This tags your outgoing messages with the right region. This is the most important part of the companion configuration.

Default region: In Experimental Settings on your companion app, set the Default Region to nl. This ensures messages without an explicit channel scope are still tagged with the Netherlands region.

  • Local or city channel: For a local channel such as #amsterdam, set the scope to the matching local code, e.g. nl-ams.
  • National or broad channel: For a channel like public, set the scope to nl if the message needs to reach the whole country. You can also use a smaller area.
  • Province-only channel: For a province channel such as #gelderland, use the province scope, e.g. nl-ge. For North Holland use nl-nh, and so on (see province table below).
  • Europe-wide channel: To communicate across Europe, create a #europe channel and set the scope to eu.
  • Test channels: Test messages don't need to flood the whole mesh. Set a small scope, like your province e.g. nl-nh for North Holland.

Rule of thumb: pick the narrowest scope that fits the conversation. Use local or provincial scopes for local discussion; use nl only when the message is relevant nationwide, and eu only for European-wide communication.

A reference list of public channels with their recommended scopes is available at: Publieke kanalen

Province codes

Province Region code
Groningen nl-gr
Friesland nl-fr
Drenthe nl-dr
Overijssel nl-ov
Flevoland nl-fl
Gelderland nl-ge
Utrecht nl-ut
Noord-Holland nl-nh
Zuid-Holland nl-zh
Zeeland nl-ze
Noord-Brabant nl-nb
Limburg nl-li

A full list of region codes (including cities) is at: Lijst van regio's

These instructions are based on the Dutch Meshcore SF Test Weekend (6–8 March 2026). The full post-test report is available from the community. Questions? Ask in the community chat.