Node Configuration

Configuring MeshCore companion clients and repeater infrastructure for the Florida Mesh.

Companion nodes are configured in the app. Repeaters and room servers are configured over the CLI. Radio values come from Regional Settings.

Firmware

Flash from the MeshCore flasher over USB, using Chrome or Edge. Select the board, then the firmware role: companion, repeater, or room server.

Use meshcore.io

The project moved to meshcore.io. meshcore.co.uk is no longer affiliated with the official project.

Companion nodes

If your node is paired to your phone, this section plus Channels is the whole setup. Nothing in the repeater section applies to you.

Radio

Select the USA/Canada preset, then change the coding rate to 8:

SettingValue
Frequency910.525 MHz
Bandwidth62.5 kHz
Spreading factor7
Coding rate8

Frequency, bandwidth, and spreading factor must match the rest of the mesh exactly. Coding rate does not have to, since the receiver reads it from each packet, but set it to 8 anyway because it makes your own weak links more reliable.

Hop Bytes

Settings → Experimental → Hop Bytes: 2

Every hop a packet takes is recorded in its path as a short hash of the repeater that forwarded it. At 1 byte there are only 256 possible values, so in a mesh this size two repeaters routinely hash to the same byte, after which routing and telemetry cannot tell which one actually carried the packet. Two bytes gives 65,536 values and makes collisions rare.

The cost is path length: each hop consumes two bytes of a fixed-size path field instead of one, reducing the maximum number of hops a route can record. Florida accepts that trade.

The CLI equivalent is set path.hash.mode 1.

Channels

Florida uses:

ChannelKeyRegion ScopePurpose
PublicBuilt inGeneral traffic
FloridaMeshe9a7128005b364ae010dd6330d693fa6Statewide chat
#emergencyDerived from nameEmergency and severe weather traffic
#weatherDerived from nameWeather scripts and alerting
#testingDerived from nameNode, script, and bot testing
#weekly-mesh-netDerived from nameWeekly Mesh Net

Open this page in your phone’s browser and tap a channel name to hand it straight to the MeshCore app, which opens with the name and key already filled in. To add one by hand instead: Public is built in and needs nothing entered, the hashtag channels derive their key from their name, so Add Channel → Join a Hashtag Channel or a QR code is enough, and FloridaMesh is private, so enter its name and key exactly as listed. There is no CLI to add channels.

Region scopes

Region scopes decide which repeaters relay a flood beyond its own area. They are set on repeaters, and companion nodes receive everything regardless, so most operators have nothing to configure here yet.

Florida has not chosen its tags and the naming convention is still moving. See Region Scopes for how they work, the formats under discussion, and the CLI commands.

Repeater & room server nodes

CLI configuration. Reboot to apply radio changes.

set radio 910.525,62.5,7,8
set flood.advert.interval 12
set path.hash.mode 1

radio sets frequency, bandwidth, spreading factor, and coding rate. The first three must match between two nodes or they cannot demodulate each other; coding rate does not. See Regional Settings.

flood.advert.interval is the number of hours between flood adverts, range 3168, default 12. Shorter intervals put more advert traffic on the air for every repeater that relays them. advert.interval separately controls local zero-hop adverts, in minutes.

path.hash.mode selects the path hash size: 0 = 1-byte, 1 = 2-byte, 2 = 3-byte. Florida uses 2-byte; see Hop Bytes.

Fixed position, for boards without GPS:

set lat <decimal degrees>
set lon <decimal degrees>

Boards with a GPS module use gps on, gps sync, and gps setloc instead.

Verifying Your Configuration

get radio
get tx
get path.hash.mode
get flood.advert.interval
ver
  • get radio returns 910.525,62.5,7,8
  • ver reports the firmware version, so you can confirm the node is running the one you intended