Channels: channel

Manage device channels: list, add, delete, modify properties, and generate a QR code for sharing.

channel list

List all configured channels with their role, encryption, and uplink/downlink status.

mttctl channel list

Example output:

Channels
  [0]    Default        Primary      Default key  uplink: false downlink: false
  [1]    Team           Secondary    AES-256      uplink: false downlink: false

channel add

Add a new secondary channel. The channel is placed in the first available slot (indices 1-7).

# Add with default encryption key
mttctl channel add "Team"

# Add with a random AES-256 key
mttctl channel add "Secure" --psk random

# Add with no encryption
mttctl channel add "Open" --psk none

# Add with a specific AES-128 key (32 hex characters)
mttctl channel add "Custom" --psk d4f1bb3a2029075960bcffabcf4e6901
OptionDescription
<NAME>Channel name, up to 11 characters (required)
--pskPre-shared key: none, default, random, or hex-encoded key (default: default)

channel del

Delete a channel by index. Cannot delete the primary channel (index 0).

mttctl channel del 1

channel set

Set a property on a specific channel.

# Rename a channel
mttctl channel set 1 name "NewName"

# Change encryption key
mttctl channel set 1 psk random

# Enable MQTT uplink
mttctl channel set 1 uplink_enabled true

# Enable MQTT downlink
mttctl channel set 1 downlink_enabled true

# Set position precision
mttctl channel set 0 position_precision 14
FieldDescription
nameChannel name (up to 11 characters)
pskPre-shared key (none, default, random, or hex)
uplink_enabledForward mesh messages to MQTT
downlink_enabledForward MQTT messages to mesh
position_precisionBits of precision for position data

channel qr

Generate a QR code and shareable meshtastic:// URL for the current channel configuration. By default the QR code is printed directly to the terminal using Unicode block characters. Use --output to save as a PNG or SVG image file. Use --all to generate a separate QR code for each active channel individually.

# Print combined QR code to terminal (all active channels)
mttctl channel qr

# Export combined QR as PNG image (512x512 minimum)
mttctl channel qr --output channels.png

# Export combined QR as SVG image
mttctl channel qr --output channels.svg

# Print individual QR code per active channel to terminal
mttctl channel qr --all
OptionDescription
--outputFile path for image export. Supports .png and .svg formats. Prints to terminal if omitted. Cannot be combined with --all.
--allGenerate one QR code per active channel, printed to terminal. Cannot be combined with --output.

Example output (terminal):

[block character QR code rendered in terminal]

URL: https://meshtastic.org/e/#ENCODED...

Example output (file export):

ok QR code saved to channels.png

URL: https://meshtastic.org/e/#ENCODED...

Example output (--all, two active channels):

Channel 0: Default
[block character QR code]
URL: https://meshtastic.org/e/#ENCODED_CH0...

Channel 1: Team
[block character QR code]
URL: https://meshtastic.org/e/#ENCODED_CH1...