Community-maintained device configuration profiles for Offband Meshcore. A profile is a small YAML file — region, WiFi, MQTT broker pool — that the app applies to a device (observer / repeater / companion) instead of hand-entering each field.
This repo is the reference catalog. It is also a template: any region can host its own catalog on any HTTP server and point users at it. Offband does not gatekeep — see Host your own below.
- Curated catalog — the app reads
profiles.jsonfrom here by default and lists thepublishedentries. - Any source URL — point the app at another region's catalog or a single
profile. The URL's tail decides how it's read (
.json= catalog,.yaml= one profile, trailing/=…/profiles.json). See SCHEMA.md.
The app previews the exact changes and asks you to confirm before applying, whatever the source. That confirm step — not the source — is what keeps a bad profile from mis-pointing your MQTT or region. Read the diff.
- Add a YAML under
profiles/— copyprofiles/example.yaml. Validate it against SCHEMA.md. - Add an entry to
profiles.json(status: "published"),urlpointing at the raw file. - Open a PR. No secrets — this repo is public;
password/jwt_token/ WiFi password do not belong in a shared profile.
Retiring: set the entry's status to "retired". It stays for history and
disappears from the app's picker. Don't delete — retire.
Put profiles.json + your YAMLs on any static HTTP host (GitHub Pages,
raw.githubusercontent, S3, your own box). Give users the directory URL (or the
profiles.json URL) and the app treats it exactly like this catalog. Use
profiles.json.example as a starting point. A region
that would rather not depend on Offband can run entirely on its own catalog.
The app's regional radio presets (frequency, bandwidth, spreading factor, coding
rate) live in radio-presets/, not in the app's code, so they can
change without an app release. The app ships with a copy and refreshes from here.
meshcore-upstream.json: MeshCore's suggested presets, the same list the stock MeshCore app shows. Mirrored daily and unmodified by the Radio presets workflow. Don't edit it by hand.offband.json: Offband's additions, for meshes the upstream list doesn't cover yet (OKI-Mesh, Philly Mesh, Arizona, Russian cities, Off-Grid). Where a title matches an upstream entry, ours wins.
To add or change a preset, edit offband.json, run
python scripts/validate_radio_presets.py, and open a PR. Field rules are in
SCHEMA.md.
The upstream presets are maintained by Liam Cottle for
MeshCore and published at
https://api.meshcore.nz/api/v1/config, where MeshCore apps and tools read them.
They are community-suggested values; regional updates go to Liam through the
MeshCore Discord (see the MeshCore FAQ). Offband
mirrors them unchanged, with thanks.
MIT — see LICENSE. Profiles you contribute are shared under the same.
The mirrored MeshCore presets in radio-presets/meshcore-upstream.json are
community-suggested radio parameters, credited above.