Skip to main content

Device Configuration

The device config options are: Role, Serial Output, and Debug Log. Device config uses an admin message sending a Config.Device protobuf.

Device Config Values

Roles

Device RoleDescriptionBest Uses
CLIENTApp connected or stand alone messaging device.General use for individuals needing to communicate over the Meshtastic network with support for client applications.
CLIENT_MUTEDevice that does not forward packets from other devices.Situations where a device needs to participate in the network without assisting in packet routing, reducing network load.
CLIENT_HIDDENDevice that only broadcasts as needed for stealth or power savings.Use in stealth/hidden deployments or to reduce airtime/power consumption while still participating in the network.
TRACKERBroadcasts GPS position packets as priority.Tracking the location of individuals or assets, especially in scenarios where timely and efficient location updates are critical.
LOST_AND_FOUNDBroadcasts location as message to default channel regularly for to assist with device recovery.Used for recovery efforts of a lost device.
SENSORBroadcasts telemetry packets as priority.Deploying in scenarios where gathering environmental or other sensor data is crucial, with efficient power usage and frequent updates.
TAKOptimized for ATAK system communication, reduces routine broadcasts.Integration with ATAK systems (via the Meshtastic ATAK Plugin) for communication in tactical or coordinated operations.
TAK_TRACKEREnables automatic TAK PLI broadcasts and reduces routine broadcasts.Standalone PLI integration with ATAK systems for communication in tactical or coordinated operations.
REPEATERInfrastructure node for extending network coverage by relaying messages with minimal overhead. Not visible in Nodes list.Best positioned in strategic locations to maximize the network's overall coverage. Device is not shown in topology.
ROUTERInfrastructure node for extending network coverage by relaying messages. Visible in Nodes list.Best positioned in strategic locations to maximize the network's overall coverage. Device is shown in topology.
tip

Still not sure which role to use? Check out the role configuration tips

Looking for ROUTER_CLIENT? This role was deprecated in firmware 2.3.15. Learn more in the 2.3.15 release notes

Role Comparison

This table shows the default values after selecting a preset. As always, individual settings can be adjusted after choosing a preset.

Device RoleBLE/WiFi/SerialScreen EnabledPower ConsumptionRetransmitPrioritized RoutingVisible in Nodes List
CLIENTYesYesRegularYesNoYes
CLIENT_MUTEYesYesLowestNoNoYes
CLIENT_HIDDENYesYesLowestLocal OnlyNoNo
TRACKERYesNoRegular / LowAwake Only1NoYes
LOST_AND_FOUNDYesNoRegularYesNoYes
SENSORYesNoRegular / LowAwake Only1NoYes
TAKYesOptionalRegularYesNoYes
TAK_TRACKERYesOptionalRegularYesNoYes
ROUTERNo2NoHighYesYesYes
REPEATERYesNoHighYesYesNo

Notes about Power Saving + Role behavior

ESP32 Platform Only

Every role except for the TRACKER and SENSOR roles are capable of traditional sleep behavior using the power.is_power_saving setting. When a node goes to sleep, in general, the serial console, peripherals, GPS, and WiFi/Bluetooth radio are all shut down to conserve power. The CPU will enter a low power state (light sleep or deep sleep on the ESP32). The LoRA radio will be left on stand-by for receiving any packets which will wake up the device to resume services and respond.

Timeout configurations of display.screen_on_secs (Screen timeout), power.min_wake_secs (Minimum time till sleep), and power.wait_bluetooth_secs (Bluetooth timeout) will delay a node's transition to a sleep state. The timeouts and subsequent transition to sleep states may also be reset by external events or actions such as receiving a packet, pressing a button, or connecting via client through serial or other means.

For the ROUTER role, the power.is_power_saving behavior of sleep is enabled automatically and cannot be turned off.

ESP32 and NRF52 Platforms

In the TRACKER and SENSOR roles, there are special sleep behaviors when combined with power.is_power_saving. For TRACKER, the device will go to sleep for position.position_broadcast_secs and upon waking will send a position packet when the GPS provides a valid location and repeat the cycle. For SENSOR, the device will go to sleep for telemetry.environment_update_interval and upon waking will gather environment data and send a telemetry packet and repeat the cycle. For both of these roles, the LoRA radio does not remain in standby mode to accept packets and wake up the device. Sleep remains constrained to their respective transmission intervals.

Rebroadcast Mode

This setting defines the device's behavior for how messages are rebroadcasted.

ValueDescription
ALLALL (Default) - This setting will rebroadcast ALL messages from its primary mesh as well as other meshes with the same modem settings, including when encryption settings differ.
ALL_SKIP_DECODINGALL_SKIP_DECODING - Same as behavior as ALL, but skips packet decoding and simply rebroadcasts them. Only available with Repeater role.
LOCAL_ONLYLOCAL_ONLY - Ignores observed messages from foreign meshes that are open or those which it cannot decrypt. Only rebroadcasts message on the nodes local primary / secondary channels.
KNOWN_ONLYKNOWN_ONLY - Ignores observed messages from foreign meshes like LOCAL_ONLY, but takes it a step further by also ignoring messages from nodenums not in the node's known list (NodeDB).
NONENONE - Only permitted for SENSOR, TRACKER and TAK_TRACKER roles, this will inhibit all rebroadcasts, not unlike CLIENT_MUTE role.
CORE_PORTNUMS_ONLYCORE_PORTNUMS_ONLY - Ignores packets from non-standard portnums such as: TAK, RangeTest, PaxCounter, etc. Only rebroadcasts packets with standard portnums: NodeInfo, Text, Position, Telemetry, and Routing.

TZDEF (Timezone Definition)

The tzdef setting allows the local offset to be defined for the device. It uses the TZ Database format to display the correct local time on the device display and in its logs.

To set the timezone, use the POSIX TZ Database string for the relevant region. Here is a list of supported timezones. For example, if your region is America/Los_Angeles, you would input PST8PDT,M3.2.0,M11.1.0 as the timezone.

GPIO for user button

This is the GPIO pin number that will be used for the user button, if your device does not come with a predefined user button.

GPIO for PWM Buzzer

This is the GPIO pin number that will be used for the PWM buzzer, if your device does not come with a predefined buzzer.

Node Info Broadcast Seconds

This is the number of seconds between NodeInfo message (containing i.a. long and short name) broadcasts from the device. The device will still respond ad-hoc to NodeInfo messages when a response is wanted. When the device hears any packet from a node it doesn't know yet, it will send its NodeInfo and ask for a response automatically.

Double Tap as Button Press

This option will enable a double tap, when a supported accelerometer is attached to the device, to be treated as a button press.

Device Config Client Availability

Apple

info

All device config options other than NTP Server are available on iOS, iPadOS and macOS at Settings > Device Configuration > Device.

Footnotes

  1. Awake Only indicates retransmissions will occur normally but not while asleep between transmission intervals. 2

  2. The ROUTER role enables Power Saving by default (ESP32 only). When needing to update a ROUTER via BLE, it's recommended you utilize an admin channel to temporarily change the role in order to update and then revert when done.