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
- Open the Meshtastic App 📲.
- 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 |
