Meshtastic integrates with Android Auto so you can stay in touch with your mesh while driving, without taking your hands off the wheel or your eyes off the road.
⚠️ Note: Android Auto support is available on Google-flavor Android builds only. It is not included in the F-Droid build, and it is not available on Desktop or iOS.
ℹ️ What ships today: The Google Play build provides notification-only car messaging — incoming messages are announced on the head unit and you reply through its notification controls. The full tabbed Messages / Nodes / Status experience described below is a beta built on the Android Car App Library (Google’s templated car UI is currently restricted to Closed/Internal Play tracks), so it appears only in builds compiled with -PenableCarTemplates=true. The rest of this page documents that beta experience.
Overview
When your phone is connected to an Android Auto head unit (or the Desktop Head Unit emulator used for development), the beta build presents Meshtastic as a messaging app built with the Android Car App Library, with a tabbed Home screen optimized for driving-safe, glanceable use:
Messages — recent conversations, with hands-free reading and replies.
Nodes — the mesh node list, with a node-detail view.
Status — current connection and mesh status.
The car app does not add a new connection of its own. It uses the Meshtastic app’s existing connection, node, and message state, so it reflects whatever your phone is already connected to.
⚠️ Note: Your phone must be connected to a Meshtastic radio for the car app to show live data. If the app is disconnected, the car screen reflects that disconnected state.
الرسائل
The Messages tab lists your recent conversations. While driving, you can:
Have messages read aloud so you don’t need to look at the screen.
Reply by voice or text using your head unit’s reply control, dictating your response hands-free.
Nodes
The Nodes tab shows your mesh node list in a car-friendly layout. Selecting a node opens a node-detail view with key information about that node. See Nodes for the full meaning of the information shown.
Status
The Status tab summarizes your current connection and mesh status at a glance — useful for confirming you’re still connected to your radio without opening your phone.
App Functions expose Meshtastic capabilities to the Android system and to on-device AI assistants (such as Gemini) through the Android App Functions API. With them enabled, an assistant can discover and trigger mesh workflows for you — for example sending a message or checking your mesh status — without you opening the app.
⚠️ Note: App Functions are available on Google-flavor Android builds only.
⚠️ Note: This is separate from the in-app Chirpy assistant. App Functions let the system AI assistant act on your mesh; Chirpy is a conversational assistant inside the Meshtastic app itself.
Enabling App Functions
App Functions are controlled from Settings → System AI (the in-app screen is labeled “System AI”). The screen has:
A master toggle labeled “Allow AI access”, with the subtitle “Let system AI assistants (e.g. Gemini) discover and use mesh functions”. When off, no functions are exposed to the system.
An individual toggle for each function, so you can expose only the capabilities you want.
The functions are grouped into a Write section (functions that change something or send data to your mesh) and a Read section (functions that only return information).
Write Functions
Function
What it does
Send Message
Sends a text message to a contact (direct message) or to a channel, up to 237 bytes.
Read Functions
Function
What it returns
Get Mesh Status
Overall mesh status.
Get Node List
The list of nodes on your mesh.
Get Channel Info
Information about your channels.
Get Device Status
Status of your connected radio.
Get Node Details
Detailed information about a specific node.
Get Recent Messages
Recent messages from your conversations.
Get Unread Summary
A summary of unread messages.
Get Mesh Metrics
Telemetry and metrics from your mesh.
Privacy
🔒 Privacy: The Send Message function lets an assistant send messages to your mesh on your behalf. Only enable functions you trust the assistant to use. The read functions expose node, message, and metric data to the assistant — enable only what you’re comfortable sharing. Each function has its own toggle, and the master toggle turns all of them off at once.
Meshtastic supports multiple transport methods to communicate between your phone/desktop and a radio node.
Bluetooth (BLE)
Bluetooth Low Energy is the default and most common connection method on Android.
Pairing a Device
Ensure your Meshtastic radio is powered on and in pairing mode.
Open the app and navigate to the Connect tab.
Tap Scan for Bluetooth devices — nearby Meshtastic radios will appear.
Select your device from the list.
Accept the Bluetooth pairing prompt if shown.
Use the transport selector — a segmented button row below the connection card — to switch between the Bluetooth, Network, and USB transports (one is active at a time):
💡 Tip: If your device doesn’t appear, check that Bluetooth and Location permissions are granted, and that the radio is not already connected to another device.
Connection Status
Icon
State
الوصف
🟢
Connected
Active radio link established
🟡
Connecting
Handshake in progress
🔴
انقطع الاتصال
No active connection
⚪
Not configured
No device selected
When connecting, a status indicator shows the current connection state:
If no devices are found, the app shows an empty state with instructions:
Troubleshooting Bluetooth
Device not found: Toggle Bluetooth off/on, ensure location is enabled.
Connection drops: Move closer to the radio; check for interference.
Pairing rejected: Forget the device in Android Bluetooth settings and retry.
USB Serial
USB connections provide a wired alternative, useful for desktop or when Bluetooth is unavailable.
Setup
Connect your radio via USB cable to your device.
The app will prompt for USB permission — tap Allow.
The connection is established automatically.
⚠️ Note: USB connections require OTG support on Android devices.
TCP/IP (Network)
Some Meshtastic radios support WiFi/Ethernet connectivity, allowing TCP-based connections over your local network. Get the radio onto your network first — using the radio’s own WiFi settings (via the firmware web interface or another connection) — then connect to it from the app.
Connecting over the Network
Make sure the radio is on the same local network as your phone/desktop.
On the Connect screen, select Network in the transport selector.
Choose the radio one of two ways:
Scan for network devices — toggle this on to auto-discover radios that advertise themselves on the local network (mDNS / _meshtastic._tcp). Discovered devices appear in the list; tap one to connect.
Add device manually… — enter the radio’s IP address (or hostname) and port (default: 4403).
Previously-used network addresses are remembered under Recent Network Devices for quick reconnection (long-press to remove one).
💡 Tip: Network discovery uses mDNS, which only works when both devices are on the same subnet. On Android 17+ the app needs the local-network permission for scanning; if discovery finds nothing, add the device manually by IP.
When to Use TCP
Radio is on the same local network
Testing with a simulated radio
Environments where Bluetooth has interference issues
Reconnection Behavior
The app reconnects to the last selected device on startup. You can switch transports from the Connect screen at any time.
To disconnect, tap the disconnect button on the Connect screen:
Desktop Connections
On Desktop (Linux/macOS/Windows), the app supports:
Bluetooth (BLE) — via the Kable library; works on macOS, Linux, and Windows
USB Serial — primary wired connection method
TCP/IP — for network-connected radios
See Desktop App for platform-specific details and keyboard shortcuts.
When something misbehaves, the app’s debug logs are the single most useful thing you can attach to a bug report. Meshtastic can capture them for you, from inside the app — you no longer need adb or any desktop tooling to collect them.
Open the Debug Panel from Settings → Advanced → Debug Panel.
📎 Filing an issue? Export your logs (see below) and attach the .txt file to your report at github.com/meshtastic/Meshtastic-Android/issues. A log capture that covers the moment the problem happened turns “it doesn’t work” into something a developer can actually track down.
The two tabs
The Debug Panel has two tabs:
Packets — the decoded mesh traffic your radio has sent and received (protocol-level messages). Useful for diagnosing mesh and routing behavior.
App logs — the app’s own diagnostic log (Android logcat), including warnings, errors, and stack traces from the app itself. This is usually what a bug report needs.
Each tab has its own export button and produces its own file, so you can grab whichever is relevant — or both.
Viewing app logs
The App logs tab shows the most recent log lines from this app only — never other apps on your device.
Search — type in the search box to filter to matching lines.
Level filter — the V / D / I / W / E chips toggle Verbose, Debug, Info, Warn, and Error lines. Tap a level to hide it; tap again to bring it back. Fatal lines are always shown.
Refresh — the refresh icon re-reads the latest logs.
Error and warning lines are tinted so problems stand out.
Exporting
Tap the download icon to save the current logs to a file. You choose where it goes through the system file picker, and the file is named with a timestamp (for example meshtastic_logcat_20260701_143312.txt) so repeated exports never overwrite each other.
Attach that file to your GitHub issue.
🔒 Privacy: Exports automatically redact private keys, admin keys, and session passkeys before writing the file. Channel PSKs are not redacted, and logs can also contain node names, positions, and other identifying details — glance through the file before sharing it publicly, and share privately if you have any doubt.
Desktop
The desktop app has no system logcat, so the App logs tab shows the app’s own captured log output instead. Search, filtering, and export work the same way.
The Meshtastic Desktop application shares its core codebase with Android via Kotlin Multiplatform. Most features work identically on Linux, macOS, and Windows.
Installation
Linux
Download the .deb or .AppImage package from the releases page
Or build from source using ./gradlew :desktopApp:run
macOS
Download the .dmg package from releases
Or build from source
Windows
Download the .msi installer from releases
Or build from source
Connecting Your Radio
USB Serial (Primary)
The most reliable connection method on Desktop:
Connect your Meshtastic radio via USB cable.
The app should detect the serial port automatically.
If not detected, select the correct serial port from the Connect menu.
TCP/IP
For network-connected radios:
Enter the radio’s IP address and port (default: 4403).
Click Connect.
Bluetooth (BLE)
Bluetooth Low Energy is supported on Desktop via the Kable library:
Ensure your system has a Bluetooth adapter.
The app scans for nearby Meshtastic radios automatically.
Select your device from the Connect screen.
Feature Parity
Feature
Android
Desktop
Notes
Messaging
✓
✓
Full parity
Node List
✓
✓
Full parity
الخريطة
✓
◐
Map tab exists on desktop, but the interactive map view is Android-only
الإعدادات
✓
✓
Full parity
Bluetooth (BLE)
✓
✓
Via Kable on desktop
Firmware Update
✓
✓
In-app USB, BLE, and Wi-Fi (ESP32) update all work the same as Android
Notifications
✓
✓
Native OS notifications
Widgets
✓
✗
Android-only
Android Auto
✓
✗
Android-only — not available on Desktop or iOS
AI Assistant (Chirpy)
✓*
✗
Google flavor Android only
App Functions (system AI)
✓†
✗
Google flavor Android only
*Chirpy AI requires Android 14+ on Google flavor builds with supported hardware.
†App Functions exposes app actions to the Android system AI on Google flavor builds. See App Functions.
UI Differences
The Desktop app uses the same Compose Multiplatform UI with adaptations for larger screens and desktop interaction.
Keyboard Shortcuts
Shortcuts use ⌘ (Command) on macOS and Ctrl on Windows and Linux. (The Super / Windows key is not bound.)
Shortcut
Action
⌘/Ctrl+Q
Quit the application
⌘/Ctrl+,
Open Settings
⌘/Ctrl+1
Switch to Messages tab
⌘/Ctrl+2
Switch to Nodes tab
⌘/Ctrl+3
Switch to Map tab
⌘/Ctrl+4
Switch to Connect tab
⌘/Ctrl+/
Open About
Window & System Tray
Window resizing — responsive layout adapts to window dimensions
System tray — minimize to system tray for background mesh operation
Tray menu — right-click the tray icon to show window or quit
Mouse interaction — hover states and standard desktop navigation
Notification Preferences
The Desktop app provides in-app toggles for controlling which notifications are shown — messages, new nodes, and low battery alerts. Access these from Settings → Notifications within the app.
Built-in Documentation Browser
The Desktop app includes a built-in documentation browser for quick access to help content without leaving the application.
The browser supports full-text search across all documentation:
Discovery tools help you understand how your mesh network is connected — which nodes can hear each other, what paths messages take, and where bottlenecks or weak links exist.
The app offers two complementary approaches:
Local Mesh Discovery (Scanner) — an automated mode that cycles your connected radio through different LoRa presets, listens on each, and ranks which preset performs best at your location.
Manual exploration — traceroute, Neighbor Info, and the node list, which you can use at any time to investigate specific paths and topology.
Local Mesh Discovery (Scanner)
Local Mesh Discovery is a dedicated scanning mode that helps you find the best LoRa modem preset for your location and see which nodes are active on each preset. It cycles your connected radio through one or more presets you choose, listens (or “dwells”) on each one for a set time to collect packets, then analyzes and ranks the results.
Open it from Settings → Advanced → Local Mesh Discovery. On desktop, it has its own Settings → Local Mesh Discovery entry.
⚠️ Note: Discovery temporarily changes your radio’s LoRa settings while it scans, then restores your original configuration when it finishes. Your device must be connected to run a scan.
Setting Up a Scan
Before starting, configure these controls:
Control
الوصف
LoRa preset picker
Select one or more presets to scan. Discovery dwells on each selected preset in turn.
Dwell time
Time to listen on each preset. Choose from 1, 5, 15, 30, 45, 60, 90, 120, or 180 minutes. Longer dwell times collect more packets and give a clearer picture, but take longer.
Keep screen awake
Optional toggle that prevents the screen from sleeping during a long scan.
The Start button stays disabled — with an explanation of why — until the scan can run. Common reasons it’s disabled:
The device is not connected.
No presets have been selected to scan.
The selected preset uses 2.4 GHz, which your hardware doesn’t support.
Live Progress
While a scan runs, Discovery shows its current stage:
Stage
What’s happening
Preparing
Saving your current configuration and getting ready to scan.
Shifting to <preset>
Switching the radio to the next preset to test.
Reconnecting
Re-establishing the connection after the preset change.
Dwell
Listening on the current preset to collect packets, with a countdown to the next step.
Analysis
Processing the collected packets and ranking the presets.
Restoring
Putting your original LoRa configuration back.
Reading the Results
When the scan completes, Discovery presents a per-preset result card for each preset it tested, plus an overall summary.
Metrics include:
Metric
What it tells you
RF health
Overall quality of the radio environment on that preset.
Channel utilization
How busy the airwaves were during the dwell.
Airtime
Transmission time observed.
Direct vs. relayed nodes
How many mesh nodes were heard directly versus via a relay.
Bad / duplicate packets
Counts of corrupt and repeated packets, indicating congestion or interference.
Additional features available from the results:
Scan History — saved sessions you can revisit; view or delete past scans.
Discovery Map — a map of the nodes found during the scan.
Report export — export a report as a PDF on Android, or as text on other platforms.
💡 Tip: On Android, Discovery can generate an on-device AI summary (Gemini Nano) of your results. If the on-device model isn’t available, an algorithmic summary is used instead — so you always get a readable interpretation of the scan.
Mesh Beacon
Mesh Beacon lets nodes invite others to join their mesh. A beaconing node periodically broadcasts an invitation — optionally advertising a channel, region, and modem preset — that nearby devices can hear even before they share a configuration.
Configure it under Settings → Module Config → Mesh Beacon:
Listen for beacons — receive invitations broadcast by other nodes.
Broadcast beacon — send your own invitation at a set interval, with an optional message and an offered channel.
Received invitations appear as Mesh invitations cards on the Discovery screen. Each card shows the sender’s message plus the offered channel, region, preset, and signal quality, with these actions:
Join — switch to the offered channel and preset (retunes the radio and reboots). When the offer matches your current frequency slot, an Add channel action adds it without a reboot.
Discover — seed a Discovery scan with the offered preset so you can survey that mesh before joining (shown only when the beacon offers a preset).
Dismiss — ignore the invitation.
Channels advertised by beacons also show up in the scan setup as Beacon channels — select one to include it as a scan target.
Manual Exploration
The tools below are available at any time from the node list and node detail screens. Use them to investigate specific paths and build a topology picture, alongside or instead of a full scan.
Traceroute
Traceroute reveals the exact path a message takes from your node to any other node on the mesh. It’s the single most useful tool for debugging connectivity problems.
Running a Traceroute
Navigate to Nodes and tap the node you want to trace.
On the node detail screen, tap Traceroute.
The app sends a traceroute request and waits for the response.
Results display each hop in order, with signal quality at every step.
Reading the Results
A traceroute result looks like this:
You → Node A (SNR: 8.5, RSSI: -95) → Node B (SNR: 5.2, RSSI: -108) → Target
-
Each hop represents a relay node that forwarded the message. The SNR and RSSI values at each hop tell you about the link quality on that specific segment.
What to look for
What it means
All hops show Good SNR (≥ −7 dB, green)
Healthy path — messages flow reliably
One hop shows Bad SNR (< −15 dB, red)
Weak link — this relay segment is fragile
Many hops (4+)
Long path — consider repositioning a node to shorten it
Different path on retry
Mesh is adapting — multiple routes exist (this is good!)
💡 Tip: Run traceroute several times over a few minutes. If the path changes, your mesh has redundant routes — a sign of a well-connected network.
Troubleshooting with Traceroute
“No route found” — The target node may be offline, out of range, or on a different channel. Check that both nodes share at least one channel with the same encryption key.
Traceroute times out — The path may be too long (exceeds hop limit) or a relay node is congested. Try increasing the hop limit in Settings → LoRa Config.
Asymmetric paths — A traceroute from A→B may take a different path than B→A. This is normal — radio propagation is not always symmetric.
Neighbor Info
The Neighbor Info module lets each node broadcast a list of the nodes it can directly hear (single-hop). When multiple nodes share their neighbor lists, you can piece together a topology map of the entire mesh.
Enabling Neighbor Info
Navigate to Settings → Module Config → Neighbor Info.
Enable the module.
Set the broadcast interval (default: 900 seconds / 15 minutes).
Once enabled, your node periodically broadcasts its neighbor table. Other nodes with Neighbor Info enabled do the same.
Viewing Neighbor Data
Open any node’s detail screen and look for the Neighbors section.
Each neighbor entry shows the node that was directly heard and its signal quality.
Combine neighbor data from multiple nodes to understand the full mesh topology.
⚠️ Note: Neighbor Info increases airtime usage because every enabled node periodically broadcasts its neighbor list. On busy meshes with many nodes, consider longer broadcast intervals (3600 seconds or more) to avoid congestion.
Node List as a Discovery Tool
The node list itself is a powerful discovery tool when you use its filtering and sorting features effectively.
Finding New Nodes
Sort by Last heard to see the most recently active nodes at the top.
Enable Include unknown to see nodes that have appeared on the mesh but haven’t sent user info yet — these are often newly powered-on devices.
Assessing Connectivity
Sort by Hops away to see which nodes are directly reachable (0 hops) versus relayed.
Sort by Distance to find nearby nodes and verify they’re reachable.
Use Exclude MQTT to focus on nodes reachable over radio (not via internet bridge).
Infrastructure Audit
Disable Exclude infrastructure to see Router, Router Late, and Client Base nodes.
Check their signal quality and last-heard times to verify your infrastructure nodes are healthy.
See Nodes for full details on filtering and sorting options.
Tips for Mesh Exploration
Start with traceroute — it gives you immediate, actionable information about a specific path.
Enable Neighbor Info on key nodes — especially routers and repeaters, to build a picture of the backbone.
Check the map — node positions on the Map combined with signal data help you understand why some links are strong and others are weak.
Compare signal over time — use the Signal Meter guide to interpret SNR and RSSI values correctly.
diff --git a/v2.8.0/ar-rSA/user/firmware.html b/v2.8.0/ar-rSA/user/firmware.html
deleted file mode 100644
index c21a7b83f7..0000000000
--- a/v2.8.0/ar-rSA/user/firmware.html
+++ /dev/null
@@ -1 +0,0 @@
- Firmware Updates | Meshtastic AndroidSkip to main contentLinkMenuExpand(external link)DocumentSearchCopyCopied
Keep your Meshtastic radio up to date with the latest firmware for new features, bug fixes, and security improvements.
Checking for Updates
Open the connected radio’s configuration and, under Advanced, tap Firmware Update. The entry appears only for OTA-capable devices.
The app checks for available firmware versions.
Available updates show the version number and changelog summary.
Update Methods
OTA (Over-The-Air) via Bluetooth
The most common update method for Android users:
Ensure your radio is connected via Bluetooth.
Navigate to the Firmware Update screen.
Select the desired firmware version.
Tap Update to begin the OTA process.
Wait for the update to complete — do not disconnect during the update.
⚠️ Warning: Interrupting a firmware update can brick your device. Ensure your radio has sufficient battery (>50% recommended) and maintain Bluetooth proximity during the entire process.
In-App USB Update
When your radio is connected over USB/serial (rather than Bluetooth), the Firmware Update screen offers USB File Transfer. The app reboots the device into DFU mode, then prompts you to save the .uf2 file to the device’s DFU drive using the system file picker. This option appears only on a USB/serial connection — it is not available over Bluetooth.
ℹ️ nRF bootloader note: Some devices (e.g. RAK WisBlock RAK4631) need their bootloader flashed with the vendor’s serial DFU tool (such as adafruit-nrfutil) — copying the .uf2 alone won’t update the bootloader. The app surfaces a hint when this applies.
Other Flashing Options
For recovery or when neither OTA nor in-app USB is available:
This same user documentation ships inside the app, so you can read it offline without leaving Meshtastic. Open it from Settings → Help & Documentation.
Browsing
The docs browser lists every user-guide page. Tap a page to read it; images and cross-links work just like they do here.
Search
Tap the search icon and type to filter pages by title and keywords — results update as you type.
A page open in the browser:
Chirpy — the AI Assistant
Chirpy answers plain-language questions about Meshtastic using this bundled documentation as its source. Tap the Chirpy button in the docs browser, type a question, and it replies with an answer and links to the relevant pages.
🔒 Privacy: On supported Google-flavor devices, Chirpy runs on-device using Gemini Nano — your questions never leave your phone. A small model downloads on first use.
⚠️ Note: On F-Droid, Desktop, and iOS builds, Chirpy falls back to a keyword search over the documentation rather than a generative model. If your device doesn’t support on-device AI, the assistant is hidden and you can still browse and search the docs normally.
Related Topics
Translate the App — how these pages get localized into other languages
App Functions — the separate system-AI integration (distinct from Chirpy)
diff --git a/v2.8.0/ar-rSA/user/map-and-waypoints.html b/v2.8.0/ar-rSA/user/map-and-waypoints.html
deleted file mode 100644
index 6e36524b08..0000000000
--- a/v2.8.0/ar-rSA/user/map-and-waypoints.html
+++ /dev/null
@@ -1 +0,0 @@
- Map & Waypoints | Meshtastic AndroidSkip to main contentLinkMenuExpand(external link)DocumentSearchCopyCopied
The Map screen shows the geographic positions of nodes on your mesh, along with shared waypoints.
Map View
The map displays:
Node positions — colored markers for each node reporting location
Waypoints — shared points of interest
Your position — your current GPS location
Node Markers
Each node that reports a position is shown as a node chip marker displaying the node’s short name. The chip is colored by the node’s own identity color (a stable color derived from its node number) — the same chip used in the node list, so a node looks the same everywhere. Marker color does not encode online/offline status. When a node’s position updates live, its marker briefly pulses. Nearby markers are clustered as you zoom out.
Map Controls
Zoom — pinch or use +/- buttons
Pan — drag to explore
Center — select the location button to center on your position
Node tap — tap a node marker to view details
The floating toolbar provides quick access to compass, layer switching, node filters, refresh, and location tracking. Tap the compass to reorient north-up, or tap the location button to center on your current position.
Waypoints
Waypoints are shared geographic points of interest that all mesh members can see.
Creating a Waypoint
Long-press on the map at the desired location.
Enter a name and optional description.
Choose an icon/emoji for the waypoint.
Tap Send to share with the mesh.
Waypoints are addressed like messages: by default they broadcast on the primary channel, but a waypoint can also be sent on a specific channel or as a direct message to a single node.
Waypoint Properties
Property
الوصف
الاسم
Short identifier (max 29 characters)
الوصف
Optional longer description
Icon
Visual marker emoji on the map
مقفل
If locked, only the creator can edit or delete
Expiration
Optional auto-remove date and time
Geofence
Optional enter/exit alert area — see below
Waypoint Expiration
Waypoints can be set to expire automatically:
Never (default) — waypoint remains until manually deleted
Timed — pick a specific date and time; the waypoint is automatically removed once that time passes. Useful for temporary markers like rally points, hazards, or meeting locations.
Expired waypoints are automatically hidden from the map so they don’t clutter the display. The expiration countdown is based on the absolute time you picked, not a duration from when the waypoint was created or received.
Waypoint Geofences
Any waypoint can also define a geofence — an alert area — so you or others get notified when a node enters or leaves it:
Set a geofence radius from the preset chips (or Off to disable), or tap Set area on map to draw a custom rectangular area instead.
Once a region is set, toggle Notify on enter and/or Notify on exit.
Optionally enable Favorites only to limit alerts to your favorited nodes.
Since waypoints (and their geofences) are broadcast to the whole mesh, only the creator is alerted by default. If someone else shares a geofenced waypoint with you, its detail view offers a “Notify me of crossings” opt-in so you can also receive enter/exit alerts for it.
Managing Waypoints
Tap a waypoint on the map to view its details and coordinates
Edit or delete waypoints you created
Locked waypoints cannot be modified or deleted by other nodes — only the original creator can change them
Unlocked waypoints can be edited by any mesh member
Map Layers
Tap the layers icon on the map to open Manage Map Layers, where you can import your own overlays in .kml, .kmz, or GeoJSON format — either by opening a file with Meshtastic or sharing it into the app from another app. Imported layers are listed with a toggle to show/hide each one and an option to remove it. This is available on both the Google Play and F-Droid builds.
Site Planner
Site Planner estimates RF coverage for a transmitter and draws it on the map as a color-coded overlay. Open it from a map control, or from a node’s detail page via Estimate coverage (shown only for nodes with a known position). Configure the transmitter (location, frequency, TX power, antenna gain and height), the receiver (sensitivity, height), and simulation options (max range, high-resolution terrain, color palette), then run the estimate. Like map layers, Site Planner works on both the Google Play and F-Droid builds.
Position Sharing
Enabling Position Sharing
Your node shares its GPS position based on:
Fixed interval — broadcast position at regular intervals
Smart position — broadcast when movement exceeds a threshold
Manual — only share when explicitly requested
Configure position behavior in Settings → Position.
Privacy Considerations
🔒 Privacy: Position data is broadcast to all nodes on your channel. If you don’t want your location shared, disable GPS position in settings or use a fixed/fake position.
Map Sources
The base map depends on your app flavor: Google Play builds use Google Maps, while F-Droid and Desktop builds use OpenStreetMap. On top of the base map, additional tile sources are available as overlays or alternatives:
Satellite imagery (where available)
Offline tiles (download map areas for offline use)
Meshtastic supports two communication modes: channel broadcasts and direct messages.
القنوات
Channels are shared communication groups. All nodes configured with the same channel key can read and send messages on that channel.
Default Channel
Every Meshtastic device comes with a default LongFast channel. This is an unencrypted channel used for general mesh communication.
Channel Security
Channels support multiple encryption levels:
Icon
Security Level
الوصف
🔒
PSK (256-bit AES)
Fully encrypted with a strong pre-shared key. Only nodes with the matching key can read messages.
🔐
PSK (128-bit AES)
Encrypted with a shorter key. Secure for most uses but 256-bit is preferred for sensitive data.
🔓
Default / Open
Uses the well-known default key. Any Meshtastic device on the same preset can read these messages.
⚠️
Insecure + Position
Open channel that also broadcasts your GPS position. Use with caution in public meshes.
🔒 Security Tip: Always configure a unique PSK for private communications. The default channel is intentionally open so new users can discover the mesh — but you should create a separate encrypted channel for anything sensitive.
Adding a Channel
Navigate to Settings → Channels.
Tap Add Channel or scan a QR code.
Configure the channel name and encryption key.
Share the channel URL/QR code with others who need access.
Tapping a channel shows its details and sharing options.
Direct Messages
Direct messages (DMs) are point-to-point encrypted communications between two specific nodes.
Sending a Direct Message
Open the Messages tab.
Select a node from your contacts list or tap a node in the node list.
Type your message and tap Send.
Message States
A status label appears under your own outgoing messages only (incoming messages from others show no status label):
State
Meaning
Sending…
Queued or already handed to the radio, not yet resolved either way (queued and en-route both show this same text)
Delivered to recipient
The strongest confirmation for a direct message — an acknowledgment came back
Delivered to mesh
For a channel broadcast, the message reached the mesh (broadcasts have no per-recipient ack)
Relayed, not confirmed by recipient
For a direct message, shown in a warning color — the message was relayed but no acknowledgment has come back yet
Routing via SF++ chain…
Being routed/buffered by the Store & Forward Plus Plus chain
Confirmed on SF++ chain
Confirmed delivered via the SF++ chain
غلط
Delivery failed — tap the status for the specific reason (see Delivery Errors below)
Delivery Errors
When a message fails to deliver, the error indicator shows what went wrong:
غلط
Meaning
What to Do
No Route
No path exists to the destination node
The recipient may be offline or out of mesh range. Try later or move closer.
Got NAK
The next-hop node refused to relay
The relay node may be congested. Wait and retry.
استغرق وقت طويل
No acknowledgment within retry window
The recipient may be just out of range. Try increasing hop limit or moving to a better position.
لم يجد وسيط
No radio interface available to send
Check that your radio is connected and the channel is configured.
Max Retransmit
All retry attempts exhausted
The mesh path is unreliable. Try a different channel or wait for conditions to improve.
لا يوجد قناه
The destination channel doesn’t exist
Verify both nodes share the same channel configuration.
Too Large
Message exceeds maximum payload size
Shorten your message (max ~200 characters).
No Response
Node received message but didn’t respond
The recipient’s radio may be busy or in low-power sleep mode.
Duty Cycle Limit
Regional airtime limit reached
Your radio has used its allowed transmit time. Wait for the duty cycle window to reset (typically 1 hour in EU regions).
طلب غير جيد
Malformed or invalid message
This usually indicates a software bug. Try restarting the app.
💡 Tip: Most delivery errors resolve themselves. If a node is intermittently reachable, the mesh will retry. For persistent “No Route” errors, check that intermediate Router nodes are online.
Message Features
Quick Chat
Pre-configured messages for rapid communication:
Access via the Quick Chat button in the message input area
Choose from built-in phrases or custom messages
Customize quick chat messages in Settings → Quick Chat
Useful when typing is impractical (gloves, small screen, urgent)
Each quick chat entry has a short Name (the button label), the Message it inserts, and an Instantly send toggle — when enabled, tapping the button sends the message immediately instead of placing it in the input field for editing:
The channel list shows each channel with its latest message preview.
Searching Messages
You can search the full history of any conversation directly from the chat screen:
Open a conversation (a channel or a direct message).
Tap the search icon in the top bar.
Type into the Search messages… field. The search runs as you type, across all stored messages in that conversation.
Use the N / M result counter and the previous / next arrows to jump between matches, which are highlighted in the conversation.
💡 Tip: Search is full-text and stays within the conversation you opened it from — it doesn’t search across other channels or contacts. It matches against the messages already stored on your device, so it works fully offline.
Message Bubbles
Messages appear as chat bubbles — sent messages on the right, received messages on the left. Each bubble shows the sender, timestamp, and delivery status. Messages with replies include a quoted preview of the original message above the response.
Text Formatting
Messages support lightweight inline Markdown. Received messages render the styling with the syntax characters removed:
Type
Syntax
Renders as
Bold
**bold**
bold
Italic
*italic*
italic
Strikethrough
~~strike~~
strike
Inline code
`code`
monospace code
Link
[label](https://example.com)
a tappable label
When composing, focus the message field and type at least three characters to reveal a formatting toolbar below the input. Select text and tap a style to wrap it (tap again to remove it); with no selection, a style inserts an empty pair with the cursor between the markers. The link button opens a dialog to enter a URL. As you type, the draft styles live in the field while the underlying text keeps its Markdown characters.
💡 Tip: Formatting is carried as literal characters on the mesh — the same bytes iOS sends. Clients that don’t support Markdown (older apps, plain firmware clients) will show the raw **/~~ characters. URLs, email addresses, and phone numbers are still auto-linked whether or not you use Markdown.
Mentions
Type @ while composing to mention a node — a picker suggests matching contacts as you type. In a received message, a mention appears as a highlighted chip showing the node’s name; tap it to jump straight to that node’s detail page.
Reactions
React to messages with emoji:
Long-press a message to open the actions menu
Tap Add Reaction to choose an emoji
Reactions appear below the message bubble
Multiple users can react to the same message
React to your own messages or others’ messages
💡 Tip: Reactions are lightweight — they use minimal mesh bandwidth compared to full text messages.
Message Actions
Long-press any message to access:
Copy — copy message text to clipboard
Reply — quote the message in your response
React — add an emoji reaction
Translate — translate a received message into your device language and toggle between the original and translated text (Google Play build only; uses on-device translation)
Delete — remove a message you sent (local deletion)
Message Priority
Messages are queued and transmitted based on priority:
Emergency/alert messages (highest)
Direct messages
Channel broadcasts (lowest)
Message Limits
Maximum length: 200 bytes (approximately 200 characters for ASCII text)
The 200-byte cap applies to the in-app composer — the mesh payload limit itself is ~233 bytes, so messages from other senders (e.g., App Functions or Android Auto) may arrive slightly longer
Rate limiting: The mesh enforces airtime fairness; heavy message volume may be throttled
Delivery: Messages are retried automatically if no acknowledgment is received
Best Practices
Use channels for group coordination
Use direct messages for private person-to-person communication
MQTT bridges your Meshtastic mesh network to the internet, enabling long-range communication beyond radio range.
Overview
The MQTT module connects your node to an MQTT broker, allowing:
Messages to reach nodes on different physical meshes via the internet
Integration with home automation and monitoring systems
Publishing node positions to the public Meshtastic map
Custom data pipelines for logging and alerting
How It Works
[Your Node] → Radio → [Gateway Node with WiFi] → MQTT Broker → [Remote Gateway] → Radio → [Remote Node]
-
A gateway node with internet access (WiFi or Ethernet) publishes mesh messages to an MQTT topic. Remote gateways subscribed to the same topic inject those messages into their local mesh.
Configuration
Enabling MQTT
Navigate to Settings → Module Config → MQTT.
Enable the MQTT module.
Configure the broker connection:
Setting
الوصف
Default
Server Address
MQTT broker hostname
mqtt.meshtastic.org
Username
Broker authentication
meshdev
Password
Broker authentication
large4cats
Root Topic
Base topic for messages
msh
Encryption
Encrypt MQTT payload
Enabled
JSON Output
⚠️ Deprecated — JSON packet support has been removed from firmware; this field is ignored
Disabled
TLS
Secure connection to broker
Disabled
Map Reporting
Report position to public map
Disabled
MQTT Proxy on This Phone
If your node has no internet access of its own, it can use the connected phone as its MQTT gateway: enable MQTT and Proxy to client enabled in the module config, and the app relays MQTT traffic between the radio and the broker over your phone’s internet connection.
The MQTT proxy on this phone toggle at the top of the MQTT settings screen shows whether this relay is currently running and lets you cut it off (or restart it) immediately — without editing and re-saving the device’s MQTT configuration.
Default Meshtastic Broker
The community maintains a public broker at mqtt.meshtastic.org. This is intended for general use and testing.
ℹ️ Note: Connections to mqtt.meshtastic.org always use TLS (port 8883), even if the TLS toggle is off. For any other broker, TLS is used only when you enable it (port 8883 with TLS, 1883 without).
🔒 Privacy: Messages on the public broker are readable by anyone subscribed. Always use channel encryption for private communications.
Private Broker
For better privacy and control, you can run your own MQTT broker:
Mosquitto (lightweight, open-source)
HiveMQ
EMQX
Configure your node to point to your private broker with appropriate credentials.
Map Reporting
When Map Reporting is enabled, your node publishes its position to the Meshtastic community map:
Visible at meshmap.net and similar community map services
Only position and node info are shared
Disable this if you don’t want your location publicly visible
Uplink vs Downlink
Direction
الوصف
Uplink
Messages from mesh → MQTT broker
Downlink
Messages from MQTT broker → mesh
Configure per-channel which directions are active to control message flow and airtime usage.
Message Formats
MQTT uses protobuf message format:
Format
الوصف
Use case
Protobuf
Binary Meshtastic protobuf encoding
Node-to-node mesh bridging
⚠️ Note: JSON output support was removed from firmware. The json_enabled setting is still visible in the app for legacy compatibility but has no effect on current firmware versions.
Encryption & Privacy
Understanding the layered encryption model:
Channel encryption happens on the mesh before MQTT. If your channel has a PSK, the MQTT payload is already encrypted — the broker and any subscribers see only the ciphertext.
MQTT encryption (the module setting) adds an additional encryption layer for transit to the broker. This protects metadata and routing information.
TLS encrypts the TCP connection to the broker itself, preventing network-level eavesdropping.
🔒 Important: The default public channel has a well-known key. Messages on the default channel sent via MQTT are effectively unencrypted — anyone can decode them. Always use a custom PSK for private communications.
Best Practices
Use channel-level encryption (PSK) on channels that bridge to MQTT
Don’t enable MQTT on nodes without internet access (it will buffer and waste memory)
Use a private broker for sensitive deployments
Be mindful of airtime when downlinking messages from busy MQTT topics — every downlinked message consumes radio airtime on your local mesh
Consider enabling uplink-only if you only need to monitor your mesh remotely without injecting messages back
Troubleshooting
MQTT Not Connecting
Check WiFi — the gateway node must have an active internet connection (WiFi or Ethernet). MQTT does not work over the LoRa radio link itself.
Verify credentials — incorrect username or password will silently fail on most brokers. Double-check for trailing spaces.
Firewall — port 1883 (MQTT) or 8883 (MQTT+TLS) must be open. Some networks block non-standard ports.
DNS resolution — if using a custom broker hostname, verify the node can resolve it. Try the broker’s IP address directly.
Messages Not Bridging
Check uplink/downlink settings — if only uplink is enabled, messages flow from mesh to MQTT but not back. Enable downlink on the receiving gateway.
Channel mismatch — both gateways must share the same channel with the same PSK. A mismatch means messages are encrypted with different keys and appear as garbage.
Topic mismatch — ensure both gateways use the same root topic. The default msh works for the public broker.
The node detail screen provides comprehensive telemetry and metrics for each node on your mesh.
Device Metrics
Basic operating information reported by each node:
Metric
الوصف
Battery Level
Current battery percentage
شدة التيار
Battery voltage reading
استخدام القناة
Percentage of airtime consumed
Airtime
Transmission time used by this node
Uptime
Time since last reboot
Device metrics are displayed as individual cards with trend sparklines showing battery level, voltage, channel utilization, airtime, and uptime over time.
💡 Tip: Tap any metric card to expand it into a full chart with historical data points. Pinch to zoom the time axis.
Environment Metrics
Environmental sensor data (requires compatible hardware):
Metric
Sensor Examples
الحرارة
BME280, BME680, SHT31
الرطوبة
BME280, BME680, SHT31
الضغط الجوي
BME280, BMP280
Gas Resistance
BME680
IAQ (Air Quality)
BME680
Environment metrics are charted over time for easy trend analysis — temperature, humidity, and pressure each get their own line chart with the measurement unit displayed on the Y axis.
The BME680 IAQ (Indoor Air Quality) index is a single 0–500+ value derived from gas resistance, shown against a color-coded scale from Excellent to Dangerously Polluted:
💡 Tip: Environment metrics require a sensor connected to the remote node. Not all nodes report environmental data. See Telemetry & Sensors for a full list of supported sensors.
Air Quality Metrics
Air Quality is a dedicated metrics view for nodes equipped with a particulate-matter and/or CO₂ sensor. It is separate from the BME680 IAQ reading listed under Environment Metrics — IAQ is a single gas-resistance-derived index, while the Air Quality view charts the underlying particulate and CO₂ measurements.
Metric
Unit
الوصف
PM1.0
µg/m³
Particulate matter up to 1.0 micron
PM2.5
µg/m³
Particulate matter up to 2.5 microns
PM10
µg/m³
Particulate matter up to 10 microns
AQI
EPA index
EPA NowCast AQI computed from your recent PM2.5 history, with a color-coded severity label. Shown next to PM2.5 once enough readings have accumulated.
CO₂
ppm
Carbon dioxide concentration
CO₂ temperature
°C / °F
Temperature reported by the CO₂ sensor itself (e.g. SCD4x)
CO₂ humidity
%
Relative humidity reported by the CO₂ sensor
CO₂ readings are color-coded by severity to make air quality easy to read at a glance:
Band
CO₂ Range (ppm)
Color
جيد
< 1000
Green
Stuffy
< 2000
Amber
Poor
< 5000
Orange
Unsafe
< 30000
Red
Evacuate
≥ 30000
Dark red
An air-quality log/metrics button appears on the node detail screen only when the node has reported air-quality telemetry. From the Air Quality view you can:
Select a time frame for the charts.
Filter with metric chips — only metrics that have data are shown.
Refresh / request the latest air-quality telemetry.
Export to CSV for analysis in a spreadsheet.
💡 Tip: Air Quality metrics require a compatible air-quality sensor on the remote node. If a node has no particulate or CO₂ sensor, the air-quality button won’t appear. See Telemetry & Sensors for supported hardware.
Signal Metrics
Radio signal quality information:
Metric
الوصف
SNR
Signal-to-Noise Ratio (higher is better)
مؤشر القوة النسبية
Received Signal Strength Indicator (closer to 0 is better)
Noise Floor
Local background RF noise in dBm (more negative is quieter)
Hop Count
Number of mesh hops for last message
Signal Quality Reference
Signal quality is rated from SNR relative to the active LoRa modem preset’s demodulation floor, not from fixed thresholds — a given SNR means different things on different presets (e.g. −15 dB is fine on LongSlow but unusable on ShortFast). RSSI is shown but is not part of the rating. Letting limit be the preset’s SNR limit:
Local Stats from your connected radio are also shown in Signal Quality when available. These logs include noise floor, traffic counters, relay counters, online node counts, and radio uptime. The noise floor chart uses a dashed reference line at -85 dBm to help identify a busy RF environment. Use Request to ask the connected radio for a fresh Local Stats telemetry report, Clear to remove Local Stats logs for that node, and Save to export the visible Local Stats history as CSV.
Power Metrics
Power management telemetry (requires INA sensor or compatible hardware):
Metric
الوصف
Bus Voltage
Supply voltage
الحالي
Power draw in milliamps
Power
Calculated wattage
Traceroute
Traceroute shows the path a message takes through the mesh:
From the node detail screen, tap Traceroute.
The app sends a traceroute request to the target node.
Results show each hop with SNR/RSSI values.
Reading Traceroute Results
You → Node A (SNR: 8.5) → Node B (SNR: 5.2) → Target
-
Each hop represents a relay node that forwarded the message.
سجل الموقع
Historical position data for nodes that share their location:
GPS coordinates
Altitude
Speed (if moving)
Timestamp for each position report
Neighbor Info
Shows which nodes a given node can directly hear, useful for understanding mesh topology.
Viewing Metrics
Navigate to Nodes.
Tap the node you want to inspect.
Select the metric category from the detail tabs.
The position tab shows location data for nodes that share GPS:
⚠️ Note: Metrics are only available when they have been reported by the remote node. Metrics update at intervals configured on each node’s telemetry settings.
The Nodes screen displays all devices visible on your mesh network.
Node List
The node list shows every node your radio has heard, including:
Node name — user-configured long name
Short name — 4-character identifier
Signal quality — last heard signal strength
Last heard — time since last communication
Distance — estimated distance (if positions are shared)
Battery — remote node battery level (if telemetry is enabled)
Node Status Indicators
Badge
Meaning
🟢 Online
Node heard within the last 2 hours
⚪ Offline
Node not heard for over 2 hours
⭐ Favorite
Node marked as favorite by the user
A node is considered online if it was heard within the last 2 hours, and offline otherwise — there is no separate “away” tier.
Node Roles
Nodes can be configured with different roles that affect their mesh behavior:
Role
الوصف
Client
Standard end-user device
Client Base
Treats favorited-node traffic as Router Late priority; all other traffic as Client
Client Mute
Receives but doesn’t retransmit
Client Hidden
Like Client Mute, plus hides from node list
Router
Prioritizes message forwarding; stays awake to relay
Router Late
Infrastructure node that rebroadcasts once, but only after all other modes (provides supplemental coverage)
Router Client
⚠️ Deprecated (removed in firmware 2.3.15) — no longer selectable; use Router or Client instead
Repeater
⚠️ Deprecated (removed in firmware 2.7.11) — no longer selectable; use Router instead
Tracker
Optimized for position reporting at regular intervals
Sensor
Optimized for telemetry reporting
TAK
Interoperates with TAK systems (sends/receives CoT)
TAK Tracker
TAK position reporting only
Lost & Found
Continuous position beacon for recovery
Choosing a Role
Most users should keep the default Client role. Consider a different role when:
Router — You have a node in a fixed, elevated location with reliable power (rooftop, hilltop). Routers stay awake continuously to relay messages for others and are essential for extending mesh coverage. Don’t use Router on battery-powered handheld devices.
Router Late — An infrastructure node that always rebroadcasts packets once but only after all other routing modes have had their turn. Provides supplemental coverage for local clusters without competing with primary routers.
Client Base — Treats traffic from/to your favorited nodes with Router Late priority (ensuring those messages get extra relay coverage) while handling everything else as a normal Client.
Client Mute — You want to receive mesh traffic but not contribute to relaying. Useful for monitoring-only devices or to reduce congestion in dense areas.
Tracker — An unattended device whose sole purpose is broadcasting its GPS position (e.g., a vehicle, pet, or asset). Sleeps between broadcasts to conserve battery.
Sensor — An unattended device reporting environmental telemetry (temperature, humidity, air quality). Similar power profile to Tracker.
TAK / TAK Tracker — Only needed if interoperating with ATAK/WinTAK systems. See TAK Integration for details.
💡 Tip: The mesh works best when most nodes are Client or Router. Too many Mute nodes reduces mesh resilience; too many Routers in a dense area can cause congestion. A good rule of thumb: one Router per 5–10 Clients in your area.
Encryption Indicators
Nodes display encryption status icons next to their name:
Icon
Meaning
🔒 Locked
Communication uses PKI (public key infrastructure) — end-to-end encrypted with verified identity
🔓 Unlocked
Communication uses shared channel PSK — encrypted but identity not individually verified
⚠️ Mismatch
Public key mismatch — the node’s key has changed since last seen (investigate before trusting)
💡 Tip: PKI encryption (firmware 2.5+) provides stronger security than channel PSK because each node has a unique key pair. If you see a key mismatch warning, the node may have been reset or compromised.
Quick Actions
From the node list, you can:
Tap a node to view its detail page
Long-press for quick actions:
Mark/remove favorite
Mute/unmute notifications
Send a direct message
Trace route
Ignore/unignore
Remove node
Filtering & Sorting
Text Search
Type in the search field to filter nodes by name or short name. The filter updates in real time as you type.
Filter Toggles
عربي
الوصف
Only online
Show only nodes heard within the last 2 hours
Only direct
Show only nodes with direct (non-relayed) connections
Tap the hop-histogram icon in the node list’s app bar to open a bar chart of how many nodes sit at each hop distance (0 = direct, 1 = one relay away, and so on). Filter the chart to a last heard window — All time, 1 hour, 8 hours, or 24 hours — to see how the mesh looks right now versus over a longer period. It’s a quick way to gauge how busy and spread out your local mesh is.
Node Detail
Tapping a node opens the detail view with comprehensive information. See Node Metrics for full details on metrics and telemetry.
The detail screen includes device info, position, and action buttons:
Inline status indicators show key metrics at a glance:
Indicator
Screenshot
Signal quality
Battery level
Hop count
آخر ظهور
المسافة
Device Links (“I want one”)
When a node’s hardware is recognized, the detail view shows a collapsible “I want one” section linking to places to buy or learn more about that device: the vendor’s product page, product variants, and regional marketplace listings (such as AliExpress, Amazon, and supported retailers), filtered to your country. Each link opens through the msh.to redirect service. Devices with no matching links don’t show the section.
A full, browsable directory of every link is also available under Settings → Help & Documentation → Device Links.
Related Topics
Node Metrics — detailed telemetry dashboards for each node
Welcome to Meshtastic! This guide walks you through the initial setup of the Meshtastic Android app.
First Launch
When you open the app for the first time, you’ll be guided through an introductory flow that helps configure essential permissions and settings. Each step can be completed in order, or you can skip and configure permissions later in Android settings.
Welcome Screen
The welcome screen introduces Meshtastic and its core capabilities:
Off-grid mesh communication
No cellular or internet required
End-to-end encrypted messaging
Tap Get Started to proceed through the setup flow.
Permissions
The app requests several permissions during setup. Each one serves a specific purpose, and some are required for core functionality.
Bluetooth Permission
Bluetooth is the primary connection method between your phone and Meshtastic radio:
Bluetooth scanning — discover nearby Meshtastic radios
Bluetooth connect — establish and maintain connections with paired radios
Grant both permissions when prompted. Without Bluetooth, you’ll need to use USB or TCP connections instead.
Location Permission
⚠️ Why is location required for Bluetooth? Android requires location permission to discover nearby Bluetooth Low Energy devices. This is an Android system requirement, not a Meshtastic-specific choice.
Meshtastic also uses your location for:
Showing your position on the mesh map
Calculating distances to other nodes
Sharing your GPS coordinates with other mesh members (if enabled)
Grant “While using the app” or “Always” depending on your preference:
While using the app — position updates only when the app is open
Always — enables background position updates for always-on mesh presence
If denied, Bluetooth scanning will not function and your node will not report a position.
Notifications Permission
Notifications alert you to:
Incoming messages from channels and direct messages
New nodes joining the mesh
Low battery on a remote node
💡 Tip: You can fine-tune notification preferences later in Android system settings — the app creates a separate notification channel per category (plus a few internal ones, like the background service), so you can enable or silence them individually.
Critical Alerts Permission
On supported devices, the app may request permission for critical alerts:
These are high-priority notifications that can break through Do Not Disturb mode
Useful for emergency mesh alerts or urgent messages
You can skip this step if you don’t need breakthrough notifications
Configure or revoke later in Android notification settings
After Setup
Once permissions are granted, the app transitions to the main interface. Your first action should be connecting to a Meshtastic radio — see Connections for detailed instructions.
💡 Tip: If you skipped any permissions during setup, you can grant them later through Android Settings → Apps → Meshtastic → Permissions. The app will prompt you again if a missing permission blocks a feature you try to use.
Configure optional feature modules and perform device administration. Modules extend Meshtastic with specialized capabilities — each can be independently enabled or disabled.
💡 Tip: You only need to enable the modules you actually use. Disabling unused modules reduces airtime, saves battery, and simplifies your configuration.
Module settings use a card-based layout with toggle switches, dropdowns, text fields, and sliders:
Module Configuration
MQTT Module
Bridges mesh messages to and from an MQTT broker for internet connectivity. This is how you extend your mesh beyond radio range or integrate with home automation systems.
Setting
الوصف
Enabled
Toggle MQTT bridge
Server
MQTT broker address
Username
Authentication username
Password
Authentication password
Encryption
Encrypt MQTT payloads
JSON Output
⚠️ Deprecated — JSON support removed from firmware; field is ignored
TLS
Use secure connection
Root Topic
Base MQTT topic path
Map Report
Publish position for public map
See MQTT for a detailed usage guide including encryption, privacy, and broker setup.
Serial Module
Enables serial port communication for external device integrations (GPS modules, sensors, or custom hardware). When enabled, the node’s serial port can send and receive protobuf or text data, allowing external microcontrollers or computers to interact with the mesh.
Setting
الوصف
Enabled
Activate serial communication
Echo
Echo received serial data back
Mode
Text, Protobuf, or NMEA output
RX/TX Pins
GPIO pins for serial connection
Baud Rate
Serial communication speed
External Notification Module
Controls buzzer, LED, or vibration alerts on your radio hardware. Useful for devices that need to physically signal when a message arrives — particularly helpful for unattended or outdoor installations.
Setting
الوصف
Enabled
Activate notifications
Alert Message
Notify on incoming messages
Alert Message Buzzer
Use buzzer for messages
Alert Message Vibra
Use vibration for messages
Alert Bell
Notify on bell character
Output (GPIO)
Pin for notification output
Active
High or Low active
Duration (ms)
Notification length
Use I2S as Buzzer
Use I2S audio output
Store & Forward Module
Buffers messages for nodes that were temporarily offline, then replays them when those nodes reconnect. Essential for meshes where nodes go in and out of range regularly — ensures messages aren’t lost during brief disconnections.
Setting
الوصف
Enabled
Activate store and forward
Heartbeat
Periodically announce this node’s store-and-forward capability
Records
Maximum stored messages
History Return (max)
Max messages to replay
History Return (window)
Time window for replay
Server
Act as a store-and-forward server for the mesh (requires ample memory, e.g. ESP32 with PSRAM)
💡 Tip: Store and Forward works best on nodes with ample memory (ESP32 with PSRAM). Router nodes are ideal candidates since they’re typically always-on.
Range Test Module
Automated range testing tool for evaluating link quality between nodes. When enabled, the node periodically transmits test messages with incrementing counters. A receiver node logs these messages, allowing you to walk or drive away and later analyze at what distance messages stopped arriving.
Setting
الوصف
Enabled
Activate range testing
Sender Interval (s)
Time between test transmissions
Save CSV
Log received test data to SD card
Telemetry Module
Controls what telemetry data your node shares with the mesh. Telemetry includes device health (battery, uptime) and environmental sensor data (temperature, humidity, pressure).
Setting
الوصف
Device Metrics Interval
How often to report device metrics
Environment Metrics Interval
How often to report environment sensors
Air Quality Enabled
Report particulate sensor data
Power Metrics Enabled
Report power usage
See Telemetry & Sensors for supported sensors and configuration recommendations.
Canned Message Module
Pre-configured messages accessible from the device’s physical buttons (for radios with rotary encoders, keypads, or similar input hardware). Define a list of quick-send messages that can be transmitted without a phone connected — ideal for field use.
Setting
الوصف
Enabled
⚠️ Deprecated — current firmware may ignore this toggle
الرسائل
Newline-separated list of messages
Send Bell
Play bell sound on send
Rotary Encoder
Enable rotary encoder input
Up/Down/Press Pins
GPIO pin assignments for input
Audio Module
Codec2 audio support for low-bandwidth voice communication over the mesh. This is an experimental feature that encodes voice into very small data packets using the Codec2 codec.
Setting
الوصف
Enabled
Activate audio module
Codec2 Rate
Audio quality/bandwidth tradeoff
I2S Word Select
GPIO pin for I2S WS
I2S Data In
GPIO pin for I2S DIN
I2S Data Out
GPIO pin for I2S DOUT
⚠️ Note: Audio requires specific hardware (I2S microphone and speaker). Voice quality is very low-bandwidth — think “understandable radio voice,” not phone-call quality.
Remote Hardware Module
GPIO control over the mesh network. Allows a remote node to read or write GPIO pins on another node — useful for activating relays, reading switches, or controlling external hardware from a distance.
Setting
الوصف
Enabled
Activate remote GPIO access
Allow Undefined Pins
Allow access to any GPIO pin (security risk)
Available Pins
Up to 4 GPIO pins this node exposes for remote read/write
⚠️ Warning: Enabling “Allow Undefined Pins” gives remote nodes access to all GPIO pins, which could interfere with the radio’s own hardware. Only enable on dedicated GPIO nodes.
Neighbor Info Module
Broadcasts information about directly heard neighbors, enabling mesh topology mapping. Each enabled node periodically shares a list of the other nodes it can hear and their signal quality.
Setting
الوصف
Enabled
Activate neighbor broadcasting
Update Interval (s)
How often to broadcast neighbor list
Transmit Over LoRa
Also broadcast neighbor info over LoRa, not just MQTT/phone. Unavailable on a channel using the default key and name
See Discovery for how to use neighbor data for mesh topology exploration.
Ambient Lighting Module
Controls onboard NeoPixel or other addressable RGB LEDs on supported hardware. Can be used for visual status indicators, notification lights, or decorative effects.
Setting
الوصف
LED State
Turn the LED on or off
الحالي
LED current limit (0–31)
Red / Green / Blue
Individual color channel values (0–255)
Detection Sensor Module
Turns your node into a motion or door sensor alert system. When a GPIO pin detects a state change (motion detected, door opened), the node broadcasts an alert message over the mesh.
Setting
الوصف
Enabled
Activate detection sensor
Monitor Pin
GPIO pin connected to sensor
Detection Trigger Type
How the pin’s state maps to a detection event (e.g. active high/low, edge-triggered)
Use Input Pullup Mode
Enable the pin’s internal pull-up resistor
Minimum Broadcast (s)
Minimum time between alert broadcasts
State Broadcast (s)
Periodic state broadcast interval
Send Bell
Include bell character in alerts
Friendly Name
Custom name for this sensor
Paxcounter Module
People counter using WiFi and BLE probe requests. Counts nearby devices by passively listening for probe requests that phones and laptops emit when scanning for networks. Available only on ESP32 devices.
Setting
الوصف
Enabled
Activate people counting
Update Interval (s)
How often to report counts
💡 Tip: Paxcounter is useful for estimating foot traffic at trailheads, event venues, or other locations. Counts are approximate — one person may carry multiple devices.
TAK Module
Team Awareness Kit integration for interoperability with ATAK and WinTAK. See TAK Integration for detailed setup and usage.
الإدارة
Remote Administration
Remotely configure nodes that share your admin key:
Select the target node in the node list.
Navigate to Settings for that node.
Modify configuration.
Tap Save — changes are sent over the mesh.
⚠️ Requires: Admin key configured on both your node and the target node.
Clean Node Database
Removes stale nodes from your local database that haven’t been heard in a configurable time window.
Factory Reset
Resets all settings to factory defaults. This cannot be undone.
إعادة التشغيل
Remotely reboot a connected or administered node.
Debug Panel
Opens the Packets and App logs tabs for viewing, filtering, and exporting diagnostic output. See Debug Logs for the full walkthrough.
Troubleshooting Remote Admin
“No response from target node” — the target may be out of range, offline, or have a mismatched admin key. Verify the admin key matches on both nodes.
Changes not applying — some settings require a reboot to take effect. Try the Reboot action after saving.
Can’t see remote settings — ensure your node has the admin key for the target node. The admin channel is configured automatically when an admin key is set.
Configure your radio hardware and user identity parameters.
User Settings
User Profile
Setting
الوصف
Long Name
Your display name (up to 39 characters)
Short Name
4-character abbreviated name
Licensed Operator
Enable if you hold an amateur radio license (enables higher power)
Applying Changes
After modifying settings, tap Save to write the configuration to your radio. The device may reboot to apply changes.
Configuration
Device Config
Setting
الوصف
Default
Role
Node behavior (Client, Router, etc.)
Client
Rebroadcast Mode
How the node retransmits messages
All
Node Info Broadcast (s)
Interval for broadcasting node info
10800
Double-tap Button
Action for double-tap button press
Disabled
LoRa Config
Setting
الوصف
Default
الجهة
Regulatory region for frequency bands
Unset (must configure)
Modem Preset
Speed/range tradeoff
LongFast
Hop Limit
Maximum retransmit hops
3
TX Power
Transmission power (dBm); 0 = max allowed for region
0 (region max)
Frequency Offset
Fine-tune frequency (MHz)
0
Channel Bandwidth
Bandwidth setting
Default for preset
⚠️ Important: You must set your region before transmitting. Operating without the correct region may violate local radio regulations. See the region configuration guide on meshtastic.org for details.
Modem Presets
💡 Tip: The SNR Limit values are negative on purpose. LoRa can decode signals below the noise floor, so a more-negative limit means the preset tolerates a weaker, noisier signal (more range). See How the Signal Meter Works for the full explanation.
Preset
Range
Speed
SNR Limit
Best For
Short Turbo
~1 km
21.9 kbps
−7.5 dB
Dense urban with line-of-sight; data-heavy applications
Short Fast
~3 km
10.9 kbps
−7.5 dB
Urban neighborhoods; buildings within a few blocks
Short Slow
~5 km
5.5 kbps
−10 dB
Suburban short-range; moderate building density
Medium Fast
~5 km
5.5 kbps
−12.5 dB
Suburban areas; moderate building density
Medium Slow
~8 km
1.1 kbps
−15 dB
Suburban/rural; moderate range with slower speed
Long Turbo
~10 km
4.4 kbps
−12.5 dB
Similar range to Long Fast but with 500 kHz bandwidth; faster throughput
Long Fast
~10 km
1.1 kbps
−17.5 dB
General use (default) — balanced range and speed
Long Moderate
~20 km
0.34 kbps
−17.5 dB
Rural with some terrain; occasional use
Lite Fast
~5 km
5.5 kbps
−12.5 dB
EU 866 MHz SRD band (125 kHz BW); comparable to Medium Fast
Lite Slow
~10 km
1.1 kbps
−15 dB
EU 866 MHz SRD band (125 kHz BW); comparable to Long Fast
Narrow Fast
~5 km
2.7 kbps
−10 dB
EU 868 MHz band (62.5 kHz BW); avoids interference with other devices
Narrow Slow
~10 km
1.1 kbps
−12.5 dB
EU 868 MHz band (62.5 kHz BW); comparable to Long Fast
Long Slow
~30 km
0.18 kbps
−20 dB
⚠️ Deprecated — still selectable but may be removed in a future firmware release
Very Long Slow
~40+ km
0.09 kbps
−20 dB
⚠️ Deprecated — still selectable but may be removed in a future firmware release
ℹ️ Note: This table uses the common short names. In the app’s preset dropdown they read as Short Range - Fast, Long Range - Fast, Lite - Fast, Narrow - Fast, and so on.
Choosing a Modem Preset
The modem preset controls the fundamental tradeoff between range and data rate:
Slower presets use more spreading, making signals decodable at weaker signal levels (lower SNR limit). This means longer range but fewer bytes per second.
Faster presets pack more data per transmission but require a stronger signal to decode.
Practical guidance:
Urban mesh (many nodes, short distances): Use Long Fast (default) or Short Fast. Higher speed means less airtime congestion when many nodes share the channel.
Rural/sparse mesh (few nodes, long distances): Use Long Moderate. Range matters more than speed when nodes are far apart.
EU 866/868 MHz regulatory compliance: Use Lite Fast, Lite Slow, Narrow Fast, or Narrow Slow — these are optimized for the EU SRD/868 MHz bands with narrower bandwidths.
Fixed infrastructure links: Use Short Turbo or Long Turbo for dedicated point-to-point links with good antennas and line-of-sight.
Mixed environments: Stick with Long Fast — it’s the community default and ensures compatibility with others in your area.
⚠️ Important: All nodes on the same channel must use the same modem preset. Nodes with mismatched presets cannot communicate even if they share the same frequency and encryption key.
💡 Tip: The range estimates above assume flat terrain and modest antennas. Elevation advantage (hilltop, rooftop) dramatically increases effective range. A well-placed Router with Long Fast can often outperform a ground-level node with Long Slow.
Display Config
Setting
الوصف
Screen Timeout
Time before display sleeps
Display Units
Metric or Imperial
OLED Type
Auto, SSD1306, SH1106, SH1107
Compass Orientation
Rotation offset for compass display (0°, 90°, 180°, 270°)
Compass North
⚠️ Deprecated — replaced by Compass Orientation; still visible in older firmware
Position Config
Setting
الوصف
GPS Enabled
Enable/disable GPS
GPS Update Interval
How often to acquire GPS fix
Position Broadcast (s)
How often to share position
Smart Position
Enable movement-based broadcasting
Fixed Position
Use a manually set position
Power Config
Setting
الوصف
Power Saving
Enable low-power sleep mode
Shutdown After (s)
Auto-shutdown idle timer
ADC Multiplier
Battery voltage calibration factor
Wait Bluetooth (s)
Time to wait for BLE connection at boot
Mesh SDS Timeout (s)
Super-deep-sleep timeout
Network Config
Setting
الوصف
WiFi Enabled
Enable WiFi radio (ESP32 devices)
WiFi SSID
Network name to connect to
WiFi PSK
Network password
NTP Server
Time synchronization server
Syslog Server
Remote logging server
Bluetooth Config
Setting
الوصف
Bluetooth Enabled
Enable/disable BLE radio
Pairing Mode
Fixed PIN, Random PIN, or No PIN
Fixed PIN
PIN code for pairing (default: 123456)
Security Config
Setting
الوصف
Public Key
Your node’s public key (read-only)
Admin Key
Key for remote administration
Private Key
Your node’s private key (handle securely)
Admin Channel Enabled
⚠️ Removed — now configured automatically when an admin key is set
Debug Log
Output live debug logging over serial/bluetooth
Serial Enabled
Enable serial console access (moved from Device Config)
Managed Mode
Restrict non-admin channel changes
Backup Keys
Save an encrypted backup of the node’s keys on this device (Android only)
Restore Keys
Write the backed-up keys back to the node (available once a backup exists)
Delete Key Backup
Remove the stored key backup from this device
Protection Level
Packet authenticity — how unsigned or relayed packets are treated: Strict, Balanced, or Compatible (requires supporting firmware; Strict asks for confirmation)
Settings use standard preference controls — dropdowns, toggles, and sliders:
diff --git a/v2.8.0/ar-rSA/user/signal-meter.html b/v2.8.0/ar-rSA/user/signal-meter.html
deleted file mode 100644
index 2cb44cae21..0000000000
--- a/v2.8.0/ar-rSA/user/signal-meter.html
+++ /dev/null
@@ -1 +0,0 @@
- How the Meshtastic Signal Meter Works | Meshtastic AndroidSkip to main contentLinkMenuExpand(external link)DocumentSearchCopyCopied
The Meshtastic signal meter — the familiar bars or status color in the app — is calculated very differently than the “bars” on a traditional cell phone or WiFi router.
Most consumer devices simply measure how “loud” a signal is. However, because Meshtastic uses LoRa (Long Range) technology, its signal meter measures how clear the signal is, relative to the specific settings your mesh is using.
1. The Two Metrics: “Loudness” vs. “Clarity”
Every time the LoRa radio chip receives a message, it reports two measurements:
RSSI (Received Signal Strength Indicator): The loudness of the raw power hitting your antenna.
SNR (Signal-to-Noise Ratio): The clarity of the signal compared to the background static.
💡 Tip: Here’s an analogy — imagine you are trying to hear a friend talking to you.
RSSI is how loud their voice is.
The Noise Floor is the background noise in the room (air conditioning, other people talking, traffic).
SNR is how easily you can distinguish your friend’s voice from the background noise.
If your friend shouts at you at a deafening rock concert, the signal is incredibly loud (High RSSI), but you still can’t understand them because the background noise is louder (Bad SNR). Conversely, if your friend whispers to you in a dead-silent library, the signal is very weak (Low RSSI), but you can understand them perfectly (Great SNR).
2. The Magic of LoRa: Hearing “Below the Noise Floor”
For standard radios (like FM or WiFi), if the background noise is louder than the signal (a negative SNR), the receiver just hears static.
LoRa is special. It uses “Spread Spectrum” modulation, which allows the radio to mathematically pull a signal out of the air even when it is buried deep underneath the background noise. This is why you will frequently see negative SNR numbers in Meshtastic (e.g., -10 dB, which means the signal is 10 decibels weaker than the background static).
Depending on which Meshtastic preset you are using (e.g., LongFast vs. ShortFast), the radio has a specific SNR Limit — the absolute maximum amount of noise it can tolerate before the message is completely lost to the static.
3. How the Signal Meter Calculates Quality
The app rates your signal quality (None, Bad, Fair, or Good) from SNR alone, measured relative to the preset’s SNR Limit — the demodulation floor described above. It deliberately does not factor RSSI into the rating: without the local noise floor, RSSI cannot tell you whether a signal is actually decodable, so SNR-versus-the-preset-limit is the meaningful measure. (RSSI is still displayed to you elsewhere.)
Because the rating is relative to the preset limit, the same SNR can rate differently on different presets — -15 dB is healthy on LongSlow but unusable on ShortFast. Letting limit be the active preset’s SNR Limit, here is how the app picks the bars (or color):
Level
Bars
Criteria
Meaning
جيد
3
SNR above the preset’s limit
Signal is comfortably above the demodulation floor — healthy connection.
مناسب
2
less than 5.5 dB below the limit
Decodable, but getting close to the floor.
سيئ
1
5.5 dB to 7.5 dB below the limit
At the very edge of what the preset can recover.
لا يوجد
0
more than 7.5 dB below the limit
Below the floor — transmission lost to noise.
Note: The fixed SNR thresholds you may have seen elsewhere (-7 dB / -15 dB) are now only used for coloring individual hops in traceroute results — not for the per-node signal meter described here.
4. What This Means for You
Because Meshtastic’s meter acts as a “Clarity Meter”, it behaves differently than what most people expect:
💡 Tip: Don’t panic over low RSSI. You might see a seemingly terrible RSSI value like -118 dBm. On a cell phone, you would have zero bars. But if you have an SNR of +2 dB, Meshtastic will still show a strong signal! The library is quiet, so the whisper is heard perfectly.
⚠️ Warning: Watch out for local noise. If you hook up a massive antenna and see a great RSSI (e.g., -90 dBm) but your signal meter is only showing 1 Bar (Bad), you have a problem. It means you have local interference — perhaps a cheap power supply, a noisy computer, or a nearby radio tower — creating so much static that it is drowning out your mesh.
Where Signal Information Appears
In the app, signal data is shown in several places:
Node list — signal bars icon next to each node
Node detail — SNR, RSSI, and signal quality in the device metrics section
Traceroute — per-hop signal quality for each relay node
Signal metrics — historical SNR and RSSI data in the metrics charts
Meshtastic integrates with the Team Awareness Kit (TAK) ecosystem, enabling interoperability between Meshtastic mesh devices and TAK applications like ATAK and WinTAK.
Overview
The TAK module allows Meshtastic nodes to:
Share position data in TAK-compatible CoT (Cursor on Target) format
Appear as team members on TAK map displays
Receive TAK PLI (Position Location Information) messages
Setup
Prerequisites
ATAK (Android Team Awareness Kit) or WinTAK installed
Meshtastic ATAK Plugin installed
TAK module enabled on your Meshtastic radio
Configuration
Navigate to Settings → Module Config → TAK.
Enable the TAK module.
Configure the TAK team/group settings:
Setting
الوصف
Enabled
Activate TAK interop
Mode
TAK-compatible output mode
ATAK Plugin Setup
Install the Meshtastic ATAK Plugin from the plugin repository.
Open ATAK and enable the Meshtastic plugin.
The plugin bridges messages between ATAK and your mesh network.
Local TAK Server
The app can also run a local TAK server so ATAK/iTAK on the same device can connect directly, without a remote TAK server. The server binds to localhost only (127.0.0.1:8089) and uses TLS with mutual certificate authentication (mTLS), so it is not reachable from other devices on the network. Open Settings → Module Config → TAK → TAK Server:
Enable Local TAK Server — starts the loopback-only mTLS server on port 8089 for ATAK/iTAK connections from the same device.
Export TAK Data Package — generates a .zip data package that ATAK/iTAK can import to connect to this server.
TAK Roles
Nodes configured with TAK-related roles behave differently from standard clients:
Role
الوصف
TAK
Full TAK interoperability — sends and receives CoT data, chat messages, and PLI updates. Functions as a standard client plus TAK bridge.
TAK Tracker
Position-only TAK output — automatically broadcasts PLI at regular intervals without user interaction. Optimized for unattended position beacons (vehicles, equipment, waypoints). Does not relay chat messages.
💡 Tip: Use TAK Tracker for devices that only need to report position (e.g., a radio mounted in a vehicle). Use TAK for devices where users actively participate in TAK operations.
CoT (Cursor on Target) Format
TAK messages use the Cursor on Target XML format — a military standard for sharing situational awareness data. Meshtastic converts its internal protobuf messages to CoT format when bridging to TAK systems, so no manual format conversion is needed.
TAK Identity
When using TAK roles, your node broadcasts identity information that appears on TAK maps:
Setting
الوصف
Team Color
Your team color on the TAK map (e.g., Blue, Red, Cyan, Green)
Member Role
Your operational role (Team Member, Team Lead, HQ, Medic, RTO, etc.)
These settings appear in Settings → Module Config → TAK when the TAK module is enabled. Your TAK callsign isn’t a separate setting — it’s derived automatically from your Meshtastic node name.
💡 Tip: Team/role colors are the standard TAK affiliation colors. Coordinate with your TAK team to use consistent team assignments.
Wire Format (V1 / V2)
Meshtastic supports two TAK wire formats, chosen automatically based on the connected radio’s firmware — no manual configuration needed:
Format
Compatibility
Features
V1 (Legacy)
Firmware 2.7.x and older
Bare protobuf encoding on port 72. Supports position sharing (PLI) and chat (GeoChat) only — shapes, markers, routes, and other typed CoT events are dropped
V2 (Current)
Firmware 2.8.0+
Compact, zstd-compressed encoding on port 78. Adds shapes, markers, routes, aircraft, casevac, emergency, and task CoT types on top of everything V1 supports
A node still relays legacy V1 packets from older nodes even while running V2 itself, so mixed-firmware meshes keep working.
Usage with ATAK
Once configured:
Meshtastic nodes appear as markers on the ATAK map with callsign labels
Chat messages can bridge between mesh and TAK networks
Position updates flow bidirectionally between Meshtastic and TAK
TAK Tracker nodes broadcast PLI automatically — their positions appear on ATAK maps without any ATAK-side configuration
⚠️ Note: TAK integration requires specific node roles and module configuration. Standard client nodes don’t automatically participate in TAK operations.
Troubleshooting
Problem
Cause
Solution
Node doesn’t appear on ATAK map
TAK module disabled or wrong role
Verify TAK module is enabled and node role is TAK or TAK Tracker
Position updates are stale
GPS fix lost or interval too long
Check GPS status; reduce position broadcast interval in Position Config
ATAK plugin shows “disconnected”
BLE connection lost or plugin crashed
Reconnect Bluetooth in Meshtastic app, then restart ATAK plugin
Shapes, markers, or routes not bridging
Sending node is on legacy V1 (firmware 2.7.x or older)
Update the sending node’s firmware to 2.8.0+ for V2 wire format
CoT data not flowing
Channel mismatch
All TAK nodes must be on the same channel with matching encryption
Security Considerations
TAK data shares your position and callsign information
Ensure your channel encryption is configured when using TAK in sensitive environments
The TAK module respects the same channel encryption as other Meshtastic messages
Meshtastic nodes can collect and share sensor data across the mesh network.
Overview
Telemetry allows nodes equipped with sensors to broadcast environmental, power, and device health information. This data is visible on the node detail screen and can be logged over time.
Device Telemetry
All Meshtastic nodes report basic device telemetry:
Metric
الوصف
Typical Range
Battery Level
Charge percentage
0–100%
شدة التيار
Battery voltage
3.0–4.2V (LiPo)
استخدام القناة
% of airtime used locally
0–100%
Air Utilization TX
% of airtime used by this node
0–100%
Uptime
Seconds since last boot
Varies
Environment Sensors
Supported environmental sensors:
Temperature & Humidity
Sensor
الحرارة
الرطوبة
Pressure
Notes
BME280
✓
✓
✓
Recommended all-in-one
BME680
✓
✓
✓
Adds gas resistance/IAQ
SHT31
✓
✓
—
High accuracy
MCP9808
✓
—
—
Precision temperature
LPS22
—
—
✓
Pressure only
Air Quality
Sensor
Metric
Notes
BME680
Gas Resistance / IAQ
Volatile organic compounds
PMSA003I
PM1.0, PM2.5, PM10
Particulate matter
SEN55
PM, NOx, VOC, Temp, Humidity
Multi-sensor
Light & UV
Sensor
Metric
OPT3001
Ambient light (lux)
VEML7700
Ambient light (lux)
LTR390
UV index
Power Metrics
Nodes with INA-series power sensors can report:
Metric
الوصف
Bus Voltage
Supply rail voltage
الحالي
Power consumption (mA)
Power
Calculated power (mW)
Useful for monitoring solar charging or battery health on remote nodes.
Configuring Telemetry
Navigate to Settings → Module Config → Telemetry.
Set reporting intervals:
Device Metrics Interval — how often to broadcast device metrics
Environment Metrics Interval — how often to broadcast sensor data
Enable specific sensor types as needed.
Recommended Intervals
Use Case
Device (s)
Environment (s)
Urban mesh (many nodes)
3600
3600
Rural mesh (few nodes)
900
900
Weather station
900
300
Battery conservation
7200
7200
⚠️ Note: Shorter intervals increase airtime usage and battery drain across the mesh.
Air Quality Metrics
Nodes with particulate matter or CO₂ sensors report air quality data:
Metric
Unit
الوصف
PM1.0
µg/m³
Ultrafine particulate matter
PM2.5
µg/m³
Fine particulate matter
PM10
µg/m³
Coarse particulate matter
CO₂
ppm
Carbon dioxide concentration
CO₂ sensors such as the SCD4x also report their own temperature and humidity, which appear alongside the readings above. From PM2.5 history the app additionally derives an EPA NowCast AQI value.
The CO₂ reading is color-coded by severity (Good → Stuffy → Poor → Unsafe → Evacuate). See Node Metrics — Air Quality for the exact ppm bands, colors, and AQI detail.
Air quality data can be viewed as info cards on the node detail screen, charted over time, and exported to CSV.
Viewing Telemetry
Navigate to Nodes and select a node.
Telemetry sections show on the detail screen:
Device Metrics (always available)
Environment Metrics (if sensors present)
Power Metrics (if INA sensor present)
Air Quality Metrics (if PM/CO₂ sensor present)
Historical graphs show trends over time.
Troubleshooting
No environment data showing? The remote node needs a physical sensor connected (e.g., BME280 on I2C). Device telemetry (battery, uptime) is always available, but environment metrics require hardware.
Stale readings? Check the reporting interval — very long intervals (7200s+) mean data updates infrequently. Also verify the remote node is still online.
Sensor conflict on I2C bus? Some sensors share I2C addresses. If you have multiple sensors on the same bus, check for address collisions in the radio’s serial debug output.
Related Topics
Node Metrics — view telemetry data on the node detail screen
Contributing translations helps make Meshtastic accessible to a wider audience. The app uses Crowdin to manage community translations for both the user interface and in-app documentation.
Choose your language. Select an existing language or request a new one by opening a GitHub issue.
Translate strings. Crowdin shows the English source on the left and your translation on the right. Translate each string and save.
Review context. Many strings include screenshots or context comments — check these to understand where the text appears in the app.
Submit. Approved translations are automatically merged into the next release.
💡 Tip: Keep translations short. UI strings often appear in buttons, chips, or narrow columns. If a translation is significantly longer than the English original, consider abbreviating where the meaning stays clear.
Adding a New Language
If your language is not yet listed on Crowdin:
Open an issue on GitHub requesting the new locale.
A maintainer will add the language to Crowdin and configure crowdin.yml.
Once added, you can begin translating immediately.
How Translations Are Organized
The Android app uses Compose Multiplatform resources for all user-visible strings:
core/resources/src/commonMain/composeResources/
-├── values/ ← English (default)
-│ └── strings.xml
-├── values-de/ ← German
-│ └── strings.xml
-├── values-fr/ ← French
-│ └── strings.xml
-└── ...
-
In-app documentation follows a similar pattern under docs/:
Locale folders use the Android resource convention {lang}-r{REGION} (e.g. fr-rFR, de-rDE, ja-rJP), matching the values-* directories used for app strings.
The app automatically selects the correct locale based on your device’s Language & Region settings.
Translation Guidelines
Do not translate technical terms like “LoRa”, “MQTT”, “BLE”, “TAK”, “SNR”, or “RSSI” — these are universal.
Keep placeholders intact. Strings like %1$s or %d are filled in at runtime. Do not remove or reorder them unless the grammar of your language requires it.
Match tone. The app uses a friendly, direct voice. Avoid overly formal language.
Test if possible. Switch your device language and open the app to see how translations look in context.
Questions?
If you have questions about a specific string’s context or need help getting started, open a discussion on the Meshtastic GitHub Discussions page.
Thank you for helping expand the reach of Meshtastic!
diff --git a/v2.8.0/ar-rSA/user/units-and-locale.html b/v2.8.0/ar-rSA/user/units-and-locale.html
deleted file mode 100644
index 1fc5bf21ab..0000000000
--- a/v2.8.0/ar-rSA/user/units-and-locale.html
+++ /dev/null
@@ -1 +0,0 @@
- Units, Measurement & Locale | Meshtastic AndroidSkip to main contentLinkMenuExpand(external link)DocumentSearchCopyCopied
The Meshtastic app automatically displays temperatures, distances, speeds, and times in the units your device is configured to use — no settings to change inside the app.
How It Works
Meshtastic radios always transmit data in metric units (meters, °C, m/s, hPa, etc.). When the app receives this data, it converts and displays values in whatever unit system your device’s locale specifies.
On Android, your measurement preferences are determined by your system Language & Region settings. On Desktop (JVM), the app uses the JVM’s default Locale.
💡 Tip: You never need to toggle units inside the app. Change your system measurement preferences and every screen in Meshtastic updates automatically — node details, telemetry charts, weather, altitude, and more.
الحرارة
Temperature values from environment sensors are transmitted as °C and displayed based on your device’s temperature unit preference.
Your Setting
You See
Celsius
22°C
Fahrenheit
72°F
This affects all temperature displays throughout the app: node environment telemetry, soil temperature, dew point, and telemetry chart axes.
Distance & Altitude
Distances between nodes and GPS altitudes are transmitted as meters and automatically scaled and converted.
Your Setting
Small Distance
Large Distance
Altitude
Metric
350 m
2.5 km
1,200 m
Imperial (US)
1,148 ft
1.6 mi
3,937 ft
The app uses natural scaling — short distances stay in meters or feet, while longer distances switch to kilometres or miles automatically.
Where these appear
Node list — distance and bearing to each node
Node detail — altitude, distance from your position
Map — waypoint distances, traceroute hop distances
Compass — distance to selected node
Speed
GPS ground speed is displayed in your locale’s preferred speed unit.
Your Setting
You See
Metric
12 km/h
Imperial (US)
7 mph
Wind
Wind speed and gust data from environment sensors are transmitted as m/s and converted for display.
Your Setting
You See
Metric
5 m/s
Imperial (US)
11 mph
Wind readings appear in the Node Detail environment section and the Environment Telemetry charts.
Rainfall
Rainfall measurements (1-hour and 24-hour totals) are transmitted as mm and converted for display.
Your Setting
You See
Metric
12 mm
Imperial (US)
0.5 in
Units That Never Change
Some units are international standards and are displayed the same way regardless of your locale:
Measurement
Unit
Why
Barometric pressure
hPa
International meteorological standard
Heading / bearing
° (degrees)
Universal navigation convention
Radiation
μR/hr
Standard dosimetry unit
GPS coordinates
decimal degrees
Universal geographic standard
Humidity, battery, soil moisture
%
Universal
Date & Time
All timestamps throughout the app — last heard, message times, telemetry logs, chart axes — follow your device’s date and time preferences.
Setting
What It Controls
Example
24-Hour Time
Clock format
14:30 vs 2:30 PM
Date Format
Date ordering
09/05/2026 vs 05/09/2026
The app also uses relative time where it makes sense — for example, “5 min ago” or “2 hours ago” in the node list — which is automatically localised into your device language.
Changing Your Measurement System (Android)
On Android, your measurement system (metric vs imperial) is tied to your region setting:
Open Android Settings → System → Language & Region
Change your Region or Measurement units preference
Return to Meshtastic — values update immediately
💡 Tip: All measurement formatting is handled centrally and respects your platform’s locale, so units stay consistent everywhere in the app.
Related Topics
Node Metrics — where temperature, distance, and sensor values are displayed
On Android, Meshtastic provides a home screen widget that shows live local statistics from your connected radio at a glance — no need to open the app.
What It Shows
The widget displays the connected radio’s current local stats:
Battery — the radio’s battery level, or Powered when running on external power
ChUtil — channel utilization (how busy the LoRa channel is, as a percentage)
AirUtil — airtime utilization (how much of the duty cycle your radio is transmitting)
Traffic — packets transmitted / received, and duplicates seen
Relays — packets relayed and relay cancellations (shown when the radio is relaying)
Tap the widget to open the app, or use its refresh control to request fresh stats.
💡 Tip: The values reflect the radio you are currently connected to. If the app isn’t connected to a radio, the widget shows the last known stats until it reconnects.
Adding the Widget
Long-press an empty area of your Android home screen.
Tap Widgets.
Find Meshtastic in the list and drag the Local Stats widget to your home screen.
Resize it as needed — the layout adapts to the available space.
⚠️ Note: The widget is Android-only. It is not available on the Desktop or iOS builds.
Related Topics
Node Metrics — the full Signal Quality and Local Stats history inside the app
Connections — connect to a radio so the widget has stats to show
Discovery — channel and airtime utilization across the mesh