MeshCore in Scotland/Regions/There is no gb-sco in Scotland

There is no gb-sco in Scotland

If a guide told you to set gb-sco, or to put Scotland underneath the Island of Ireland, your repeater is not carrying Scottish traffic. It will look perfectly healthy while doing it. Here is what Scotland actually runs, and how to put it right.

In one line

Scotland
Radio presetUK / EU Narrow
Default scopesco
Path hash3 byte
Repeaters running it99 of 109
99Repeaters advertising sco
0Advertising any gb- code
109Repeaters heard
869.618MHz, UK / EU Narrow

Counted from what the repeaters themselves advertise, heard in the last five days. Updated .

The radio preset

Every radio on the Scottish mesh matches all five. Differ on one and you are not on it.

UK / EU Narrow

Mandatory
Frequency869.618 MHz
Bandwidth62.5 kHz
Spreading factorSF 8
Coding rateCR 8
TX power22 dBm

This is the preset the flasher calls UK / EU Narrow. It is not the same as EU868, which is the one people pick by mistake: EU868 uses a wider bandwidth and a different spreading factor, so a radio on it sits a few hundred metres from the mesh and hears nothing at all.

Set the preset before anything else. A wrong preset is silent in both directions, which makes it the hardest fault to diagnose from the app: the radio looks fine, the battery is fine, and there is simply nothing there.

Set the path hash to 3 bytes at the same time. A 1-byte hash collides often enough that trails on the map teleport between repeaters that never heard each other.

How scopes decide whether anything moves

The part that makes a working radio carry nothing.

Every MeshCore message carries a scope. A repeater forwards it only when that scope exactly matches one of the regions the repeater is configured for. There is no partial match, no prefix match and no fallback.

Scotland also denies unscoped wildcard forwarding. That is deliberate: the framework came in after roughly 24,000 flood packets a day from the wider UK mesh nearly took the network down. The cost of that protection is that a repeater with the wrong scope is not partly useful, it is silent.

So there are two ways to be invisible here. The wrong radio preset, where nothing hears you. Or the wrong scope, where everything hears you and forwards none of it.

Scotland's scope is sco. Guides elsewhere describe a gb-* family and place Scotland under ioi. Neither is running here, and the numbers below are the check.
The codes, and what sits under what
sco                 Scotland, carried by every repeater
  cen              Central Scotland
    edi            Edinburgh
    gla            Glasgow
    fal            Falkirk
    sti            Stirling (proposed, not ratified)
  fif              Fife
    fif            Dunfermline
    fif            Kirkcaldy
    fif            St Andrews
  tay              Tayside
    dun            Dundee
    per            Perth

ioi               Island of Ireland, a peering root beside sco
wls               Wales, a peering root beside sco

What Scottish repeaters actually advertise

Not a view on the scheme. The scheme in use, counted from the mesh.

Scope advertisedRepeatersShare
#sco9991%
(nothing set)109%
gb-sco, gb-eng or any gb- code00%

Repeaters showing nothing set have not been configured with a default scope. They still relay within whatever they are allowed, but their own adverts go out unscoped, which is why they are worth chasing.

The repeater script

Console order matters: parents before children, adverts scoped last.

Repeater console
# parents before children
region put sco *
region put cen sco        # your region, if there is one
region put ioi *          # peering: Island of Ireland
region put wls *          # peering: Wales

region allowf sco
region allowf cen
region allowf ioi
region allowf wls

region denyf *            # no unscoped wildcard forwarding
region default sco        # without this your adverts go out unscoped
region save

Swap cen for the code covering the area your repeater genuinely serves, or leave that line out. sco alone is a perfectly good configuration and most Scottish repeaters run exactly that.

Then type region and read it back. Every line should answer OK. If region default is missing, your adverts go out unscoped and the rest of the mesh rejects them, which looks exactly like a dead radio.

Four ways a MeshCore repeater goes quiet

Each looks like a dead radio from the app. Each has a different cause.

The preset is wrong

Symptom: nothing at all, in either direction, even standing beside another node. The app pairs, the battery reads fine, the node list stays empty.

Cause: EU868 instead of UK / EU Narrow. Different bandwidth and spreading factor, so the radios are physically unable to hear each other.

Fix: reflash or reselect the preset, then set the scope again. A merged flash does not always keep either.

The scope does not match

Symptom: the repeater appears on the map, adverts arrive, and nothing it hears is ever relayed. Neighbours say they can see it but not through it.

Cause: a region code nobody else runs, usually gb-sco or gb from a guide written for England. Matching is exact, so a near miss is a total miss.

Fix: the script above. sco first, everything else after.

Adverts go out unscoped

Symptom: the repeater relays fine for people beside it, but never shows up further away, and no one outside the area knows it exists.

Cause: no region default. Its own adverts carry no scope, and a mesh that denies unscoped wildcard forwarding drops them.

Fix: region default sco, then region save. This is the single most common omission.

The path hash is too small

Symptom: it works, but trails on the map jump between repeaters that never heard each other, and hop counts look wrong.

Cause: a 1-byte path hash. One byte collides often across a mesh this size, so two different repeaters look identical in a path.

Fix: set the path hash to 3 bytes. It costs nothing and it makes every coverage map honest.

Ireland and Wales

Why every Scottish repeater carries two codes that are not Scottish.

Scotland peers with the Island of Ireland and with Wales. A message scoped ioi or wls has to cross Scottish repeaters to get where it is going, and a repeater that does not carry those codes will not pass it.

So both are part of a baseline Scottish configuration rather than an option. They sit beside sco, both created against the wildcard parent. They are not underneath it, and Scotland is not underneath them.

That last point is worth being blunt about, because at least one widely read guide lists sco as a province of the Island of Ireland alongside Ulster, Munster, Leinster and Connacht. Scotland is not a province of Ireland, and the mesh does not treat it as one.

The peering lines
# beside sco, not beneath it
region put ioi *
region put wls *
region allowf ioi
region allowf wls

Leave these in even if you never expect Irish or Welsh traffic. The cost is two lines; the cost of omitting them is a gap in somebody else's route.

Why Scotland scopes at all

The framework exists because the alternative stopped working.

MeshCore floods by default. Every repeater that hears a message rebroadcasts it, which is what makes the mesh resilient and also what makes it fragile once enough radios are on the air. Scotland reached that point when roughly 24,000 flood packets a day were arriving from the wider UK mesh: traffic with no business here, rebroadcast by every Scottish repeater, crowding out the messages people were actually sending.

The regional framework was the answer. Repeaters deny unscoped wildcard forwarding and carry only the regions they serve, so traffic stays in the area it belongs to and the national scope stays usable. It works, and the cost is that configuration is no longer optional. A radio with no scope is not a slightly worse citizen of the mesh; it is not on it.

That is also why a guide written for a mesh without this problem gives advice that fails here. A gb-* scheme is a reasonable idea in the abstract. It is simply not the one running, and on a network that matches exactly, the scheme that is running is the only one that matters.

Questions operators ask

Is gb-sco a real MeshCore region code?

Not in Scotland. Of the 109 MeshCore repeaters heard on the Scottish mesh, 99 advertise sco and 0 advertise any code beginning gb. A repeater configured for gb-sco does not match a message scoped sco, because MeshCore matches scopes exactly, so it will sit there looking healthy and forward nothing. Guides that list a gb-eng, gb-sco and gb-wls family describe a scheme nobody here is running.

Why is my MeshCore repeater not forwarding in Scotland?

Almost always the scope. Scotland denies unscoped wildcard forwarding, so traffic without a scope the repeater is configured for is not carried. Check three things: the default scope is sco, the repeater allows flood forwarding for sco, and its own adverts are scoped with region default sco. A repeater with no default scope advertises unscoped and gets rejected.

What region code should a Scottish repeater use?

sco, always, plus the local code for the area it genuinely serves if one has been agreed, plus ioi and wls so traffic can reach Ireland and Wales. Those last two are peering roots carried alongside sco, not underneath it. Scotland is not a sub-region of the Island of Ireland.

How do I fix a repeater set to gb-sco?

Connect to the console and run the script on this page. It takes under a minute: create sco and your local code, allow flood forwarding for each, deny the wildcard, set your own adverts to sco, and save. Then type region and check every line answers OK.