Channels & keys
Joining meshes, PSKs, QR import
How Meshtastic channels work
A channel is a name plus a pre-shared key (PSK). Radios sharing both can read each
other's traffic; everything else on the same frequency is undecryptable noise to you.
Slot 0 is the primary channel (usually LongFast with the well-known
default key AQ== — public by convention); slots 1–7 are secondary
channels, often a community or private group with a real key.
Joining a community mesh
Communities publish a channel URL (https://meshtastic.org/e/#…) or QR code
that encodes the full channel set and usually the LoRa tuning (modem preset, frequency
slot). Import it in Perch's channel manager — or via API:
curl -X POST http://127.0.0.1:2667/api/channels/import \
-H 'Content-Type: application/json' \
-d '{"url":"https://meshtastic.org/e/#CiUSAQ…"}'
The radio writes the config and reboots; you're on the community's channels afterward.
Export your current set with GET /api/channels/export or as a QR from
GET /api/qr — that's how you clone a config onto a second radio.
Keys, decryption, and what Coop does with them
Coop keeps a keyring of every channel key it knows and tries them all when decrypting observed traffic — including packets your radio couldn't decode (a channel the radio isn't configured for, or traffic arriving via MQTT). Decoded packets are tagged with the channel that matched, so multi-channel captures stay sorted.
Region and radio settings
- Region is mandatory and legally meaningful (US=915 MHz, EU_868, etc.). Radios ship UNSET and won't transmit until you pick one.
- Modem preset (LongFast is the near-universal default) must match the mesh you want to talk to — it changes speed/range tradeoffs and effectively which network you're on.
- Frequency slot: some communities standardize a non-default slot; their channel URL usually carries it, so import rather than hand-configure.
position precision on the channel or disable
position broadcast. (The public demo's data is
location-scrubbed for exactly this reason.)