Skip to main content

Pacific Northwest MeshCore — Region Rollout

An action guide for repeater operators — what to do, and when.

Phase 1 (Configure regions) opens: DATE TBD Phase 2 (Strict region forwarding, optional) target: DATE TBD Last updated: DATE TBD

This is the action-oriented companion to the Pacific Northwest MeshCore Region Strategy document. The strategy document explains what the regions are and why the scheme is designed the way it is; this document tells you, as a repeater operator, exactly what to configure. Where you need the reasoning behind a step, this guide links back to the relevant section of the strategy document.


Why we're rolling out regions

The PNW mesh keeps growing, and every unscoped flood packet still reaches every repeater from Southern Oregon to Vancouver Island. Regions let a message travel only as far as it needs to: neighborhood chat stays in the neighborhood, statewide nets reach the state, and only genuinely region-wide traffic crosses the whole mesh. The result is less congestion and a more reliable mesh for everyone.

Adopting regions is additive and backward compatible. Turning on region tags does not cut anyone off — unscoped traffic keeps flooding as it does today (via the firmware root region *). Regions only add the ability to scope traffic more tightly. That is why Phase 1 is safe to adopt at any pace, and why the breaking-change step (Phase 2) is optional and deferred.


The rollout in a nutshell

Phase When What you do
Phase 1 — Configure regions From DATE TBD, at your own pace Steps 1–5 below: update firmware, add your region tags, set a default region, scope your Companion channels, and verify.
(General mesh hygiene) Anytime Step 6: advert-interval and loop-detection tuning. Not region-specific, but encouraged alongside the rollout.
Phase 2 — Strict forwarding Target DATE TBD, optional Step 7: region denyf * — your repeater stops forwarding unscoped traffic. A breaking change; adopt only when your local mesh is ready.
Phase 1  ─ Configure regions (safe, additive, do anytime) ──┐
   1  Update firmware                                        │
   2  Add region tags                                        │
   3  Set default region                                     │
   4  Scope Companion channels                               │
   5  Verify with Discover Regions                           │
   6  (Optional) General mesh hygiene                        │
                                                             ▼
Phase 2  ─ Strict region forwarding (OPTIONAL, coordinated) ──
   7  region denyf *   ← breaking change; only when ready

What you'll set, at a glance

On your repeater(s):

Item Recommendation
Minimum firmware 1.10.0 (regions work at all); 1.15.0+ recommended so region put enables flooding automatically
Region tags Your full ancestry down to your local tag (e.g. west, pnw, wa, w-wa, sea) — use the Config Generator
Default region Your everyday local tag (scopes your repeater's own adverts)
Strict forwarding region denyf *Phase 2, optional, do not enable early

On your Companion(s):

Item Recommendation
Channel scopes Scope each channel to how far the conversation should travel (sea/pdx local, wa/or statewide, pnw region-wide)
Default scope Your local metro tag (e.g. sea, pdx) — tags flood packets on unscoped channels

Phase 1 — Configure regions

Steps 1–5 are the whole rollout. They are safe to do as soon as Phase 1 opens — nothing here drops anyone's traffic. The fastest path through Steps 2 and 3 is the Config Generator, which builds your exact command chain from your location; the steps below show what it produces and explain it so you can verify or adjust.

Step 1 — Update your firmware

Make sure your repeater is on current MeshCore firmware before configuring regions.

Step 2 — Add your region tags

Your repeater must carry every tag in its ancestry, from the root down to your local area. Region matching is per-tag, not hierarchical: carrying wa does not automatically forward sea traffic — you must carry each tag explicitly. (See The hierarchy is administrative, not functional for why.)

Easiest: open the Config Generator, pick your area, and copy the generated commands straight to your repeater.

Manual example — a Seattle metro repeater:

region put west
region put pnw west
region put wa pnw
region put w-wa wa
region put sea w-wa
region save

Tags carried: west, pnw, wa, w-wa, sea.

In the app instead of the CLI: open the repeater's Manage Regions screen and, for each tag in your ancestry, add the tag and turn on Allow Flood. Add them from the root down (west, then pnw, then wa, …) so each tag's parent already exists. (The parent column is display-only — it organizes the list but doesn't change forwarding — so the order is for tidiness, not correctness.)

Find the chain for your own area in the strategy document's Repeater Configuration examples (Portland, Spokane, Boise, Victoria, Flathead, border repeaters, and more), or generate it with the Config Generator.

Step 3 — Set your default region

The default region is attached to the packets your repeater originates itself — chiefly its own advertisements. Setting it scopes your adverts so they don't flood the entire mesh, cutting background noise. It does not affect which traffic you forward; that is governed entirely by the tags from Step 2.

region default sea
region save

(Replace sea with your own everyday local tag.)

In the app instead of the CLI: on the Manage Regions screen, tap the menu next to your local tag and choose Set as default.

Choosing your default:

Step 4 — Companion app: scope your channels

Tags on the repeater decide what your node forwards; the Companion app decides what scope is attached to the messages you send. Both halves are needed for regions to actually reduce traffic.

In the MeshCore Companion app:

1. Scope each channel (the important part):

  1. Open the channel you want to scope.
  2. Tap its menu and choose Set Region Scope.
  3. Type the region tag and confirm. Match the scope to how far the conversation should travel: local public chat → your metro tag (sea, pdx); statewide → wa / or; PNW-wide nets → pnw; mesh-wide announcements only → west.
  4. The scope now appears as a Region: sea subtitle under the channel name. You can change or remove it any time through the same menu.

Repeat for every channel you use.

2. Set an app-wide default scope:

Open Settings → Experimental Settings → Default Region Scope and set your everyday local tag (e.g. your metro). Flood packets you send, both channel messages and adverts, with no explicit scope are then still tagged with this default instead of flooding the whole mesh.

A full walkthrough with screenshots is in Using Regions in the App.

Step 5 — Verify with Discover Regions

Confirm your tags are live and that your neighbors are configured too.

  1. From the main screen, tap the menu (top-right).
  2. Choose Tools → Discover Regions.
  3. The app scans the mesh and lists every region tag carried by repeaters it can hear.

Step 6 — (Optional) General mesh hygiene

These are not region settings, but they reduce congestion and pair well with the rollout. Coordinate exact values with your local group.


Phase 2 — Strict region forwarding (optional)

By default the PNW scheme stays backward compatible: unscoped traffic keeps flooding via the root region *. Strict forwarding turns that off on your repeater:

region denyf *
region save

From the app UI: in Manage Regions, set Deny Flood on Packets without region set.

When to consider enabling it:

To revert (re-allow unscoped flood):

region allowf *
region save

Checklist

Phase 1 — Configure regions:

Phase 2 — Strict forwarding (optional, coordinated):


Troubleshooting

My scoped messages aren't arriving. The neighbor repeaters between you and your destination may not carry the tag you scoped to. Region matching is per-tag — if a repeater in the path doesn't carry that exact tag, it won't forward. Temporarily clear the scope on the channel (in the Companion app); if the message gets through unscoped, it confirms a region misconfiguration in your local mesh. Use Tools → Discover Regions to see which tags neighbors actually carry, and have them complete Step 2.

Discover Regions doesn't show a tag I expect. Re-check your region put chain on the repeater and confirm you ran region save. On firmware 1.14.x, confirm you also ran region allowf <name> for each tag.

I enabled strict forwarding and now neighbors can't reach me. Running region denyf * is Phase 2, and dropping unscoped traffic is its expected effect on nodes that haven't configured regions. If you enabled it too early, revert with region allowf * then region save, and wait until your local mesh has completed Phase 1.


Where to get help