Meshtastic Guide - Meshtastic Channel Configuration

The configuration options for channels include Index, Roles, and Settings. Channel configuration utilizes an admin message that sends a Channel protobuf, which contains either a ChannelSettings or ModuleSettings protobuf.
Note: Channel Settings (described on this page) should not be confused with Modem Preset Settings.
Modem Preset Settings consist of the modem configuration, including frequency settings, spreading factor, bandwidth, and more, applicable to the LoRa radio. These settings are consistent across all channels and cannot be unique to individual channels.
In contrast, Channel Settings provide information for organizing message groups, enabling optional encryption, and allowing or disallowing messaging over internet gateways. These settings are unique and configurable for each channel.

Channel Configuration Values

Index

The channel index begins at 0 and ends at 7.
Indexing can not be modified.
Index Channel Default Role Purpose
0 1 PRIMARY Used as default channel
1 2 DISABLED User defined
2 3 DISABLED User defined
3 4 DISABLED User defined
4 5 DISABLED User defined
5 6 DISABLED User defined
6 7 DISABLED User defined
7 8 DISABLED User defined
NOTE: You cannot have DISABLED channels placed between active channels like PRIMARY and SECONDARY. Active channels must be in consecutive order.

Role

Each channel is assigned one of three roles:
  1. PRIMARY (1) This is the first channel created during the initial setup. Only one primary channel can exist and cannot be disabled. Periodic broadcasts, such as position and telemetry, are sent exclusively over this channel.
  2. SECONDARY (2) This channel can modify the encryption key (PSK).
  3. DISABLED (0) The channel is no longer available for use, and its settings are reset to default.
NOTE: Although you can use a different PRIMARY channel and communicate over SECONDARY channels with the same name and PSK, the hash of the PRIMARY channel's name defines the LoRa frequency slot. This frequency slot determines the actual transmission frequency within the band. To ensure that devices with different PRIMARY channel names transmit on the same frequency, you must explicitly set the LoRa frequency slot.

Channel Configuration Parameters

The Channel Settings options include: Name, PSK, Downlink Enabled, and Uplink Enabled. These channel settings are encapsulated within the Channel protobuf as a ChannelSettings protobuf and transmitted as an admin message.

channel names

A short identifier for the channel. (< 12 bytes)
Reserved Name Purpose
"" (default) If left empty on the Primary channel, this designates the default channel.
admin On Secondary channels, the name admin (case sensitive) designates the admin channel used to administer nodes over the mesh. Note that this is a Legacy feature, see Remote Admin for details.
NOTE: To communicate on the same channel with other devices, matching channel names are essential. For instance, if your device utilizes the channel name LongFast, the device you want to communicate with must also have a channel named LongFast.

PSK

The encryption key used for private channels can be specified as follows: it can be 0 bytes (no encryption), 16 bytes (AES128), or 32 bytes (AES256). The Primary default channel utilizes the hex byte 0x01.
Note: Matching PSKs are necessary for communication on the same channel with other devices. For example, if your device is using a channel with the default PSK of AQ==, the device you wish to communicate with must also have a channel that matches the same PSK.

Downlink Enabled

If enabled, messages captured from a public internet gateway will be forwarded to the local mesh. By default, this setting is false for all channels.

Uplink Enabled

If enabled, messages from the mesh will be transmitted to the public internet via any node's configured gateway. This setting is false by default for all channels.

Channel Configuration Settings

The channel module settings options include position precision. These settings are incorporated into the Channel protobuf as a ModuleSettings protobuf and are sent as an admin message.

Position Accuracy

The position_precision setting allows you to control the level of precision for location data transmitted over a specific channel. This can be important for privacy, as it may be necessary to obfuscate the exact location when sending position data over certain channels.
The position_precision value is an integer ranging from 0 to 32:
  • A value of 0 indicates that location data is never sent over the given channel.
  • A value of 32 means that location data is sent with full precision.
  • Values in between represent the number of bits of precision to be sent, corresponding to a specific position precision detailed in the table below.
  • Please note that the public MQTT server filters out precise positions.
The client applications provide various levels of precision, allowing users to choose from a practical range. You can set values across the full range of integers using the Python CLI. For examples on how to set different levels of precision using the CLI, refer to Setting Position Precision.
Precision bits Metric Imperial
10 23.3 km 14.5 miles
11 11.7 km 7.3 miles
12 5.8 km 3.6 miles
13 2.9 km 1.8 miles
14 1.5 km 4787 feet
15 729 m 2392 feet
16 364 m 1194 feet
17 182 m 597 feet
18 91 m 299 feet
19 45 m 148 feet

Channel Client Configuration Availability

Android

Channel Config options are available on Android.

The Radio Configuration tab is available for common tasks, including:
  • Viewing your current channel configuration QR code and URL.
  • Quickly creating or modifying your primary channel.
  • Selecting a modem preset for all your channels, such as Long Range or Fast.
For additional instructions on setting up your primary channel, see the Android App Usage section.

Tap "Edit" to access the Channel Menu, where you can:
  • Add, remove, or modify secondary channels.
  • Create or modify encryption keys.
  • Enable uplink and downlink for individual channels.
  • Enable position settings.
  • Set precise location (if position is enabled).
  • Adjust position precision (if precise location is disabled).

Apple

A channel editor is accessible in the iOS, iPadOS, and macOS applications under Settings > Radio Configuration > Channels.

CLI

Tip: As the device will reboot after each command is sent via the CLI, it is recommended to chain commands together as one when setting multiple values in a config section.Example:
 meshtastic --ch-set name "My Channel" --ch-set psk random --ch-set uplink_enabled true --ch-index 4
All Channel config options are available in the Python CLI. Example commands are provided below:

Name

Set channel name for the PRIMARY channel

 # without spaces
meshtastic --ch-set name MyChannel --ch-index 0
# with spaces
meshtastic --ch-set name "My Channel" --ch-index 0

PSK

If you use Meshtastic for exchanging messages that you don’t want others to see, you should use the random setting. Choosing default or any of the simple values from the following table will utilize publicly known encryption keys. These keys are included with the Meshtastic source code, making it possible for anyone to intercept messages encrypted with them. While they're suitable for testing and public channels, they are not secure for private communications.
Setting Behavior
none Disable Encryption
default Default Encryption (use the weak encryption key)
random Generate a secure 256-bit encryption key. Use this setting for private communication.
simple0- simple254 Uses a single byte encoding for encryption
  • Set encryption to default on PRIMARY channel
 meshtastic --ch-set psk default --ch-index 0
  • Set encryption to random on PRIMARY channel
 meshtastic --ch-set psk random --ch-index 0
  • Set encryption to single byte on PRIMARY channel
 meshtastic --ch-set psk simple15 --ch-index 0
  • Set encryption to your own key on PRIMARY channel
 meshtastic --ch-set psk 0x1a1a1a1a2b2b2b2b1a1a1a1a2b2b2b2b1a1a1a1a2b2b2b2b1a1a1a1a2b2b2b2b --ch-index 0
  • Set encryption to your own key on PRIMARY channel (Base64 encoded)
 meshtastic --ch-set psk base64:puavdd7vtYJh8NUVWgxbsoG2u9Sdqc54YvMLs+KNcMA= --ch-index 0
  • Disable encryption on PRIMARY channel
 meshtastic --ch-set psk none --ch-index 0
NOTE: Use this to copy and paste the base64 encoded (single channel) key from the meshtastic --info command. Please avoid using the omnibus (all channels) code here, as it is not a valid key.

Uplink / Downlink

For configuring gateways, please see MQTT
  • Enable/Disable Uplink on PRIMARY channel
meshtastic --ch-set uplink_enabled true --ch-index 0 
meshtastic --ch-set uplink_enabled false --ch-index 0
  • Enable/Disable Downlink on SECONDARY channel
 meshtastic --ch-set downlink_enabled true --ch-index 1
meshtastic --ch-set downlink_enabled false --ch-index 5

Configuring Position Precision

This is a per-channel setting. The --ch-index parameter must be specified to set the position precision for a specific channel, e.g., --ch-index 0 for the primary channel or --ch-index 1 for the secondary channel 1.
  • Set position precision to 13 bits (approx ±3 km)
 meshtastic --ch-set module_settings.position_precision 13 --ch-index 0
  • Set position precision to full precision (32 bits)
 meshtastic --ch-set module_settings.position_precision 32 --ch-index 1

Web

All Channel config options are accessible in the Web UI.

QR code

The Meshtastic QR code (or Channel URL) enables users to quickly share channel and LoRa settings, simplifying the process of configuring multiple nodes with matching communication settings. Scanning a QR code applies all included channel settings and LoRa configuration settings, so make sure to review what these settings encompass before proceeding. Only scan QR codes from trusted sources.
For more details, see:

Barra lateral

Última publicación

Esta sección actualmente no incluye ningún contenido. Agrega contenido a esta sección usando la barra lateral.

Regístrate para nuestro boletín

Obtenga la información más reciente sobre nuestros productos y ofertas especiales.