Liberty Hill Mesh

A shared region namespace for Texas meshes

Region names are a namespace every mesh in radio range shares, and nothing enforces agreement on them. This is what Liberty Hill Mesh proposes we all use, and the commands to adopt it. It is a proposal, not a standard, and not ours to impose.

The problem it solves

A message sent on a local channel still reaches every repeater in range, in every direction, whether or not anyone there can read it. Channels decide who can decrypt a message. They do nothing to bound how far it travels. On a mesh with a handful of nodes that costs nothing; on a growing one it is the usual cause of flood traffic.

Regions are the mechanism that bounds it. A repeater forwards traffic for the regions it carries and ignores the rest.

What a region is, and is not

Not a channel
A channel decides who can decrypt. A region decides how far a repeater forwards. Mixing the two up is what fills the air.
Not a radio setting
Frequency, spreading factor and bandwidth are unchanged. Regions sit above all of that and only affect what a repeater re-transmits.
Two bytes on the air
A name compiles to a fixed 2-byte hash, so us-southcentral costs exactly what a costs. There is no reason to abbreviate and no reason not to scope tightly.
Repeaters only
Companions set their own scope in the MeshCore app under Tools → Discover Regions. Nothing here is written to a companion.

How nesting behaves

Traffic moves one way through the nesting. A message sent on a parent cascades down to everything beneath it. Local traffic sent on a child does not climb back up, so a parent-only backbone never sees it.

That is the whole design. A statewide announcement goes out on us-tx and reaches every Texas repeater. A conversation about a flooded low-water crossing goes out on a local name and stays in the county where it matters.

Carrying a region is not the same as nesting under it. A repeater that carries all six names in the chain receives cascades from every level above it. Adding a standalone local name on top keeps that node's own traffic to itself, without exposing it to anyone upstream.

The proposed map

Three levels of basis, deliberately. The trunk is census geography so it is not ours to argue about. The area level is conventional Texas usage. The metro level is the IATA code of the primary airport, which is short, unique, and not a matter of taste.

us                        country
└─ us-south               Census region: South
   └─ us-southcentral     Census division: West South Central
      └─ us-tx            state
         ├─ us-tx-central
         │  └─ us-tx-aus  Austin Mesh
         ├─ us-tx-south
         │  └─ us-tx-sat  San Antonio Mesh
         └─ us-tx-north
            └─ us-tx-dfw  North Texas Mesh

lhtx                      Liberty Hill Mesh — standalone, not nested
LevelFormBasis
Countryusfixed
Census regionus-<region>US Census
Census divisionus-<division>US Census
Stateus-<state>USPS code
Areaus-<state>-<area>conventional usage
Metrous-<state>-<iata>primary airport code
Localshort, standalonethe group's own choice

Only groups we know exist are named. Killeen, Waco, Houston, West Texas and the Rio Grande Valley are deliberately left open rather than pre-claimed — they follow the same rule when someone is there to hold them.

Your commands

Paste into a repeater's serial console. Each block is the full chain: the shared trunk, your area, your metro, then a save. Order matters, because a parent has to exist before a child can name it.

Austin Mesh — us-tx-aus

region put us
region put us-south us
region put us-southcentral us-south
region put us-tx us-southcentral
region put us-tx-central us-tx
region put us-tx-aus us-tx-central
region save

San Antonio Mesh — us-tx-sat

region put us
region put us-south us
region put us-southcentral us-south
region put us-tx us-southcentral
region put us-tx-south us-tx
region put us-tx-sat us-tx-south
region save

North Texas Mesh — us-tx-dfw

region put us
region put us-south us
region put us-southcentral us-south
region put us-tx us-southcentral
region put us-tx-north us-tx
region put us-tx-dfw us-tx-north
region save

Liberty Hill Mesh — lhtx

Ours, for comparison. Liberty Hill sits in the Austin metro, so we carry us-tx-aus and add lhtx standalone on top of it.

region put us
region put us-south us
region put us-southcentral us-south
region put us-tx us-southcentral
region put us-tx-central us-tx
region put us-tx-aus us-tx-central
region put lhtx
region save

Local names are yours and we propose nothing there. Pick something short, add it standalone like lhtx above, and it stays out of the hierarchy entirely.

What we are not claiming

We do not own this namespace. There is no registry, no authority, and nothing stopping any group from doing something else entirely. Liberty Hill wrote it down because we had already put us-tx-aus on our own repeaters, and naming another city's metro without saying so in public is not a defensible thing to do quietly.

If a group wants a different name for its own area, theirs wins and we change ours. The value is in agreeing on one trunk, not in any particular leaf.

Adopting is not trivially reversible. The CLI we use offers region put, region list allowed and region save. We are not aware of a removal command, so treat adding a region as something to decide on rather than to try out. The names cost nothing on the air; taking one back may mean reflashing.

The machine-readable copy is at proposal.json, in the order region put needs. Diff it, script it, or paste it into your own config.

Disagreements, corrections and claims: hello@lhtx.org. If you want a name in the map, or want one changed, that is the address.