Meshtastic Guide - Meshtastic Device Configuration

Meshtastic Device Configuration ⚙️ includes essential parameters such as Role 🎭, Rebroadcast Mode 🔁, GPIO assignments 🔌, broadcast intervals ⏱️, and power behavior 🔋. These settings define how each device functions within the Meshtastic mesh 🕸️—whether as a Client 👤, Router 📡, Repeater 🔄, Sensor 🌡️, or Tracker 📍—and how it handles message rebroadcasting. Configuration is applied via an admin message 🛠️ using the Config.Device protobuf structure.

📑 Device Configuration Parameters

🎭 Meshtastic Device Roles

Device Role Description Best Uses
👤 CLIENT Standard messaging node, app-connected 📱 or standalone. Rebroadcasts packets if no other node has done so. General-purpose role for individuals using client apps to communicate 💬 across the mesh.
🤫 CLIENT_MUTE Node that does not rebroadcast packets 🚫, reducing airtime usage ⏳. Ideal for dense deployments 🏙️ where minimizing rebroadcast traffic is important.
🙈 CLIENT_HIDDEN Device that only transmits when necessary, supporting stealth 🕵️ or power-saving 🔋. Useful for hidden or low-power roles needing mesh participation.
📍 TRACKER Prioritizes GPS position packets 🛰️ for reliable location tracking. Best for tracking assets 📦 or individuals 🚶 where timely updates are critical.
🆘 LOST_AND_FOUND Regularly broadcasts location 📡 to the default channel to aid recovery. Used for locating lost nodes in the field 🌲.
🌡️ SENSOR Prioritizes telemetry packets 📊 such as environmental or sensor data. Ideal for data collection 🌱 with efficient power usage 🔋 and frequent updates.
🎖️ TAK Optimized for ATAK system integration, minimizing routine broadcasts. Used in tactical deployments 🪖 requiring ATAK plugin support.
🎯 TAK_TRACKER Automatically sends TAK PLI broadcasts 📡 while reducing routine traffic. Standalone integration with ATAK systems for location-based tactical ops.
🔄 REPEATER Infrastructure node that always rebroadcasts packets once 🔁, extending coverage. Not shown in topology. Strategically placed repeaters 🏔️ to maximize coverage without appearing in node list.
📡 ROUTER Infrastructure node that always rebroadcasts packets once. Visible 👀 in topology and node list. Best used in fixed locations 🏠 to extend coverage and improve routing reliability.
⏳ ROUTER_LATE Rebroadcasts packets only after other roles, enhancing coverage for local clusters 🌐. Ideal for filling coverage gaps 🕳️ or supporting isolated clusters.

📊 Comparative Analysis of Roles

This table displays the default values after a preset is selected ⚙️. As always, individual settings can be adjusted 🛠️ after choosing a preset.

Device Role 🎭 BLE/WiFi/Serial 📡 Screen Enabled 🖥️ Power Consumption 🔋 Retransmit 🔁 Prioritized Routing 🚦 Visible in Nodes List 👀
👤 CLIENT Yes ✅ Yes ✅ Regular ⚡ Yes 🔁 No 🚫 Yes 👀
🤫 CLIENT_MUTE Yes ✅ Yes ✅ Lowest ⏳ No 🚫 No 🚫 Yes 👀
🙈 CLIENT_HIDDEN Yes ✅ Yes ✅ Lowest ⏳ Local Only 📍 No 🚫 No 🚫
📍 TRACKER Yes ✅ No 🚫 Regular / Low 🔋 Awake Only ⏱️ No 🚫 Yes 👀
🆘 LOST_AND_FOUND Yes ✅ No 🚫 Regular ⚡ Yes 🔁 No 🚫 Yes 👀
🌡️ SENSOR Yes ✅ No 🚫 Regular / Low 🔋 Awake Only ⏱️ No 🚫 Yes 👀
🎖️ TAK Yes ✅ Optional ⚙️ Regular ⚡ Yes 🔁 No 🚫 Yes 👀
🎯 TAK_TRACKER Yes ✅ Optional ⚙️ Regular ⚡ Yes 🔁 No 🚫 Yes 👀
📡 ROUTER No 🚫 No 🚫 High ⚡⚡ Yes 🔁 Yes ✅ Yes 👀
⏳ ROUTER_LATE Yes ✅ Yes ✅ High ⚡⚡ Yes 🔁 No 🚫 Yes 👀
🔄 REPEATER Yes ✅ No 🚫 High ⚡⚡ Yes 🔁 Yes ✅ No 🚫

🔋 Understanding Power Savings and Role Performance

⚙️ ESP32 Platform Only – Meshtastic Power Management

On the ESP32 platform 💻, all roles—except TRACKER 📍 and SENSOR 🌡️—support low-power operation using power.is_power_saving 💤. When enabled, the device enters sleep mode 😴, powering down peripherals 🔌, GPS 🛰️, and radios 📡 to conserve energy 🔋.

Timeout parameters ⏱️ such as display.screen_on_secs, power.min_wake_secs, and power.wait_bluetooth_secs influence when the device sleeps. External events like packet reception 📦, button presses 🔘, or Bluetooth connections 📱 can reset the countdown.

For the ROUTER role 📡, power saving is always enabled ✅ to ensure efficient energy use while maintaining mesh networking 🕸️.

🌐 ESP32 and NRF52 Platforms – Tracker and Sensor Sleep Behavior

On both ESP32 💻 and NRF52 🔋 platforms, TRACKER 📍 and SENSOR 🌡️ roles use specialized sleep cycles 💤. Trackers sleep until the next GPS broadcast 🛰️, then wake to send position packets 📍. Sensors sleep until the next telemetry interval 📊, then wake to collect and transmit data 🌱.

Unlike other roles, these nodes do not keep the LoRa radio in standby 🚫, waking only at configured intervals ⏱️. This makes them ideal for low-power, periodic reporting 🔋.

  • 📌 Awake Only mode allows retransmissions only during active periods, not while sleeping 😴.
  • 📡 For ROUTER nodes on ESP32, power saving is enabled by default ⚡. To update via Bluetooth 🔗, temporarily change the role to a non-sleeping mode, then revert back once complete ✅.

⚙️ Other Device Configuration Parameters

  • 🔁 Meshtastic Rebroadcast Configuration: Defines how messages are rebroadcast across the mesh 🕸️.
Value Description
ALL 📡 Default – Rebroadcasts all messages from local and foreign meshes 🌍, even if encryption differs.
ALL_SKIP_DECODING 🚫 Same as ALL but skips decoding, rebroadcasts blindly 👀. Only for Repeater role 🔄.
LOCAL_ONLY 📍 Rebroadcasts only messages from local channels, ignores foreign meshes 🚫.
KNOWN_ONLY 🧩 Filters out packets from unknown nodes ❌, rebroadcasts only from known NodeDB entries.
NONE 🚫 Disables rebroadcasting. Only for roles like SENSOR 🌡️, TRACKER 📍, and TAK_TRACKER 🎯.
CORE_PORTNUMS_ONLY 🎯 Rebroadcasts only core packet types: NodeInfo ℹ️, Text 💬, Position 📍, Telemetry 📊, Routing 🔄.
  • 🔘 User Button GPIO Settings: Defines the GPIO pin number for the user button if missing.
  • 🔔 PWM Buzzer GPIO Configuration: Assigns GPIO pin for buzzer alerts 📢.
  • ⏱️ NodeInfo Broadcast Interval: Sets interval for automatic NodeInfo broadcasts ℹ️.
  • 👆 Double Tap as Button Press: Enables double-tap gesture if accelerometer present.
  • 🚫 Disable Triple Click Feature: Turns off triple-click shortcut for GPS toggle 📍.
  • 🌍 Timezone Definition (TZDEF): Defines local time offsets ⏰ using POSIX TZ strings.
  • 💡 LED Heartbeat Disabled: Stops LED blinking ✨ for stealth or power-saving 🔋.

📱 Device Configuration Client Accessibility

🤖 Android

  1. Open the Meshtastic App 📲.
  2. Navigate: ⋮ (3 dots) ➡️ Radio Configuration ➡️ Device.

🍎 Apple

All configuration options (except NTP Server 🌐) are available on iOS, iPadOS, and macOS at Settings ➡️ Device Configuration ➡️ Device.

💻 CLI

All options are accessible via the Python CLI 🐍. Example commands below:

Setting ⚙️ Acceptable Values ✅ Default 📌
device.role 🎭 CLIENT 👤, CLIENT_MUTE 🤫, ROUTER 📡, REPEATER 🔄, TRACKER 📍, SENSOR 🌡️ CLIENT 👤
device.rebroadcast_mode 🔁 ALL 📡, ALL_SKIP_DECODING 🚫, LOCAL_ONLY 📍 ALL 📡
device.button_gpio 🔘 0 – 34 🔢 0
device.buzzer_gpio 🔔 0 – 34 🔢 0

Register for our newsletter

Get the latest information about our products and special offers.