mirror of
https://github.com/meshtastic/Meshtastic-Android.git
synced 2026-07-10 05:15:46 -04:00
chore: Scheduled updates (Firmware, Hardware, Translations) (#6152)
This commit is contained in:
@@ -188,6 +188,12 @@
|
||||
]
|
||||
},
|
||||
"pullRequests": [
|
||||
{
|
||||
"id": "10937",
|
||||
"title": "Update meshtastic/device-ui digest to effbb92",
|
||||
"page_url": "https://github.com/meshtastic/firmware/pull/10937",
|
||||
"zip_url": "https://img.shields.io/badge/Flash_this_PR_in_the_Web_Flasher-2C2D3C?style=for-the-badge"
|
||||
},
|
||||
{
|
||||
"id": "10936",
|
||||
"title": "Snake!",
|
||||
@@ -319,12 +325,6 @@
|
||||
"title": "Add helpful checks of channel names and PSK",
|
||||
"page_url": "https://github.com/meshtastic/firmware/pull/10792",
|
||||
"zip_url": "https://img.shields.io/badge/Flash_this_PR_in_the_Web_Flasher-2C2D3C?style=for-the-badge"
|
||||
},
|
||||
{
|
||||
"id": "10791",
|
||||
"title": "T5S3 ePaper build fix ",
|
||||
"page_url": "https://github.com/meshtastic/firmware/pull/10791",
|
||||
"zip_url": "https://img.shields.io/badge/Flash_this_PR_in_the_Web_Flasher-2C2D3C?style=for-the-badge"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -28,6 +28,7 @@
|
||||
<string name="a11y_node_online">ühenduses</string>
|
||||
<string name="a11y_node_role">roll %1$s</string>
|
||||
<string name="a11y_node_signal">signaal %1$s</string>
|
||||
<string name="a11y_nodes_at_hop">Hüpet %1$d: %2$d seadmeni</string>
|
||||
<string name="accept">Nõustu</string>
|
||||
<string name="acknowledgements">Tänusõnad</string>
|
||||
<!-- ACTION -->
|
||||
@@ -691,6 +692,8 @@
|
||||
<string name="hide_password">Peida parool</string>
|
||||
<string name="history_return_max">Ajalookirjete maksimaalne arv</string>
|
||||
<string name="history_return_window">Ajalookirjete aken</string>
|
||||
<string name="hop_histogram_empty">Selles akna sõlmedest pole ühtegi kuulda</string>
|
||||
<string name="hop_histogram_title">Sõlme hüppe kohta</string>
|
||||
<string name="hop_limit">Hüpete arv</string>
|
||||
<string name="hops_away">Hüppe kaugusel</string>
|
||||
<string name="host">Host</string>
|
||||
|
||||
@@ -28,6 +28,7 @@
|
||||
<string name="a11y_node_online">online-tilassa</string>
|
||||
<string name="a11y_node_role">rooli %1$s</string>
|
||||
<string name="a11y_node_signal">signaali %1$s</string>
|
||||
<string name="a11y_nodes_at_hop">Hyppy %1$d: %2$d radiota</string>
|
||||
<string name="accept">Hyväksy</string>
|
||||
<string name="acknowledgements">Kiitokset</string>
|
||||
<!-- ACTION -->
|
||||
@@ -215,6 +216,8 @@
|
||||
<string name="close">Sulje</string>
|
||||
<string name="close_selection">Sulje valinta</string>
|
||||
<string name="co2">CO₂</string>
|
||||
<string name="co2_humidity">CO₂ kosteus</string>
|
||||
<string name="co2_temperature">CO₂ lämpötila</string>
|
||||
<string name="codec_2_enabled">CODEC 2 käytössä</string>
|
||||
<string name="codec2_sample_rate">CODEC2 näytteenottotaajuus</string>
|
||||
<string name="coding_rate">Koodausnopeus</string>
|
||||
@@ -731,6 +734,8 @@
|
||||
<string name="hide_password">Piilota salasana</string>
|
||||
<string name="history_return_max">Historian maksimimäärä</string>
|
||||
<string name="history_return_window">Historian aikamäärä</string>
|
||||
<string name="hop_histogram_empty">Tässä näkymässä ei kuultu yhtään radiota</string>
|
||||
<string name="hop_histogram_title">Radiot hyppymäärän mukaan</string>
|
||||
<string name="hop_limit">Hyppyjen määrä</string>
|
||||
<string name="hops_away">Hyppyjä</string>
|
||||
<string name="host">Isäntälaite</string>
|
||||
@@ -1484,7 +1489,31 @@
|
||||
<string name="signal">Signaali </string>
|
||||
<string name="signal_quality">Signaalin laatu</string>
|
||||
<!-- SITE -->
|
||||
<string name="site_planner">Site Planner</string>
|
||||
<string name="site_planner_antenna_gain_dbi">Antennin vahvistus (dBi)</string>
|
||||
<string name="site_planner_antenna_height_meters">Antennin korkeus (m)</string>
|
||||
<string name="site_planner_color_scale">Väripaletti</string>
|
||||
<string name="site_planner_estimate">Arvio peittoalueesta</string>
|
||||
<string name="site_planner_estimating">Arvioidaan peittoaluetta…</string>
|
||||
<string name="site_planner_failed">Peittoalueen arviointi epäonnistui</string>
|
||||
<string name="site_planner_frequency_mhz">Taajuus (MHz)</string>
|
||||
<string name="site_planner_high_resolution">Korkearesoluutioinen maasto</string>
|
||||
<string name="site_planner_invalid_latitude">Anna arvo väliltä −90...90</string>
|
||||
<string name="site_planner_invalid_longitude">Anna arvo väliltä −180...180</string>
|
||||
<string name="site_planner_invalid_positive">Arvon on oltava suurempi kuin 0</string>
|
||||
<string name="site_planner_invalid_rx_sensitivity">Anna arvo väliltä −150...−30 dBm</string>
|
||||
<string name="site_planner_max_range_km">Enimmäisetäisyys (km)</string>
|
||||
<string name="site_planner_rx_height_meters">Vastaanottimen korkeus (m)</string>
|
||||
<string name="site_planner_rx_sensitivity_dbm">Vastaanottimen herkkyys (dBm)</string>
|
||||
<string name="site_planner_section_display">Näyttö</string>
|
||||
<string name="site_planner_section_receiver">Vastaanotin</string>
|
||||
<string name="site_planner_section_simulation">Simulaation asetukset</string>
|
||||
<string name="site_planner_section_transmitter">Sivusto / lähetin</string>
|
||||
<string name="site_planner_subtitle">Arvio lähettimen kuuluvuusalueesta</string>
|
||||
<string name="site_planner_tx_power_watts">TX-lähetysteho (W)</string>
|
||||
<string name="site_planner_use_current_location">Käytä nykyistä sijaintia</string>
|
||||
<string name="site_planner_use_map_center">Käytä kartan keskikohtaa</string>
|
||||
<string name="site_planner_use_node_location">Käytä nykyistä radion sijaintia</string>
|
||||
<string name="skip">Ohita</string>
|
||||
<string name="slot">Paikka</string>
|
||||
<string name="smart_position">Älykäs sijainti</string>
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
title: Android Auto
|
||||
parent: User Guide
|
||||
nav_order: 18
|
||||
last_updated: 2026-06-11
|
||||
last_updated: 2026-07-07
|
||||
description: Use Meshtastic hands-free on an Android Auto head unit — read messages aloud, reply by voice, and check nodes and mesh status while driving.
|
||||
aliases:
|
||||
- android-auto
|
||||
@@ -17,9 +17,11 @@ Meshtastic integrates with Android Auto so you can stay in touch with your mesh
|
||||
|
||||
> ⚠️ **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), Meshtastic appears as a messaging app built with the Android Car App Library. The car interface presents a tabbed Home screen optimized for driving-safe, glanceable use:
|
||||
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.
|
||||
|
||||
@@ -23,7 +23,7 @@ Bluetooth Low Energy is the default and most common connection method on Android
|
||||
|
||||
1. Ensure your Meshtastic radio is powered on and in pairing mode.
|
||||
2. Open the app and navigate to the **Connect** tab.
|
||||
3. Tap **Scan for Devices** — nearby Meshtastic radios will appear.
|
||||
3. Tap **Scan for Bluetooth devices** — nearby Meshtastic radios will appear.
|
||||
4. Select your device from the list.
|
||||
5. Accept the Bluetooth pairing prompt if shown.
|
||||
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
title: Desktop App
|
||||
parent: User Guide
|
||||
nav_order: 14
|
||||
last_updated: 2026-06-11
|
||||
last_updated: 2026-07-07
|
||||
description: Install and use the Meshtastic Desktop app on Linux, macOS, and Windows — connections, feature parity, and keyboard shortcuts.
|
||||
aliases:
|
||||
- desktop
|
||||
@@ -60,19 +60,19 @@ Bluetooth Low Energy is supported on Desktop via the [Kable](https://github.com/
|
||||
|
||||
## Feature Parity
|
||||
|
||||
| Feature | Android | Desktop | Notes |
|
||||
| -------------------------------------------- | ------- | ------- | ---------------------------------------------- |
|
||||
| Messaging | ✓ | ✓ | Full parity |
|
||||
| Node List | ✓ | ✓ | Full parity |
|
||||
| الخريطة | ✓ | ✓ | Full parity |
|
||||
| الإعدادات | ✓ | ✓ | Full parity |
|
||||
| Bluetooth (BLE) | ✓ | ✓ | Via Kable on desktop |
|
||||
| Firmware Update OTA | ✓ | ✗ | Use web flasher |
|
||||
| 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 |
|
||||
| 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 | ✓ | ◐ | Desktop supports in-app USB firmware update; BLE/Wi-Fi OTA is Android-only |
|
||||
| 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.
|
||||
|
||||
@@ -84,14 +84,17 @@ The Desktop app uses the same Compose Multiplatform UI with adaptations for larg
|
||||
|
||||
### Keyboard Shortcuts
|
||||
|
||||
| Shortcut | Action |
|
||||
| ------------------- | ---------------------- |
|
||||
| **⌘Q** / **Ctrl+Q** | Quit the application |
|
||||
| **⌘,** / **Ctrl+,** | Open Settings |
|
||||
| **⌘1** / **Ctrl+1** | Switch to Messages tab |
|
||||
| **⌘2** / **Ctrl+2** | Switch to Nodes tab |
|
||||
| **⌘3** / **Ctrl+3** | Switch to Map tab |
|
||||
| **⌘4** / **Ctrl+4** | Switch to Connect tab |
|
||||
All shortcuts use the **Meta** key — that's ⌘ (Command) on macOS and the Super / Windows key on Linux and Windows. (`Ctrl` is not bound.)
|
||||
|
||||
| Shortcut | Action |
|
||||
| ---------- | ---------------------- |
|
||||
| **Meta+Q** | Quit the application |
|
||||
| **Meta+,** | Open Settings |
|
||||
| **Meta+1** | Switch to Messages tab |
|
||||
| **Meta+2** | Switch to Nodes tab |
|
||||
| **Meta+3** | Switch to Map tab |
|
||||
| **Meta+4** | Switch to Connect tab |
|
||||
| **Meta+/** | Open About |
|
||||
|
||||
### Window & System Tray
|
||||
|
||||
@@ -123,7 +126,6 @@ Individual doc pages render with full formatting:
|
||||
```bash
|
||||
git clone https://github.com/meshtastic/Meshtastic-Android.git
|
||||
cd Meshtastic-Android
|
||||
git submodule update --init
|
||||
./gradlew :desktopApp:run
|
||||
```
|
||||
|
||||
@@ -134,7 +136,8 @@ Requirements:
|
||||
|
||||
## Known Limitations
|
||||
|
||||
- No OTA firmware updates (use web flasher)
|
||||
- Firmware updates over the air (BLE/Wi-Fi) are Android-only; on desktop, use the in-app USB update or the [Web Flasher](https://flasher.meshtastic.org)
|
||||
- The interactive map view is Android-only — the Map tab is present but does not render a map on desktop
|
||||
- Some Android-specific features (widgets, specific notification channels) are unavailable
|
||||
- Performance may vary on low-spec hardware running Compose Desktop
|
||||
- BLE bonding is not yet supported on desktop (pairing works without bonding)
|
||||
@@ -142,7 +145,7 @@ Requirements:
|
||||
## Related Topics
|
||||
|
||||
- [Connections](connections) — connection methods overview
|
||||
- [Firmware Updates](firmware) — use the [Web Flasher](https://flasher.meshtastic.org) for desktop firmware updates
|
||||
- [Firmware Updates](firmware) — in-app USB update on desktop, or the [Web Flasher](https://flasher.meshtastic.org)
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -44,7 +44,6 @@ Before starting, configure these controls:
|
||||
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**.
|
||||
- The current channel is using the **default channel key** (use a unique key first — see [Messages & Channels](messages-and-channels)).
|
||||
- **No presets** have been selected to scan.
|
||||
- The selected preset uses **2.4 GHz**, which your hardware doesn't support.
|
||||
|
||||
|
||||
@@ -2,8 +2,8 @@
|
||||
title: Firmware Updates
|
||||
parent: User Guide
|
||||
nav_order: 13
|
||||
last_updated: 2026-05-13
|
||||
description: Update your radio firmware over Bluetooth — OTA process, version channels, pre-flight checks, and recovery.
|
||||
last_updated: 2026-07-07
|
||||
description: Update your radio firmware over Bluetooth or USB — OTA process, version channels, pre-flight checks, and recovery.
|
||||
aliases:
|
||||
- firmware
|
||||
- update
|
||||
@@ -17,7 +17,7 @@ Keep your Meshtastic radio up to date with the latest firmware for new features,
|
||||
|
||||
## Checking for Updates
|
||||
|
||||
1. Navigate to **Settings → Firmware Update** or tap the firmware notification if shown.
|
||||
1. Open the connected radio's configuration and, under **Advanced**, tap **Firmware Update** — or tap the firmware notification if one is shown. The entry appears only for OTA-capable devices.
|
||||
2. The app checks for available firmware versions.
|
||||
3. Available updates show the version number and changelog summary.
|
||||
|
||||
@@ -39,19 +39,26 @@ The most common update method for Android users:
|
||||
|
||||

|
||||
|
||||
### USB Flashing
|
||||
### In-App USB Update
|
||||
|
||||
For recovery or when OTA is unavailable:
|
||||
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:
|
||||
|
||||
- Use the [Meshtastic Web Flasher](https://flasher.meshtastic.org)
|
||||
- Or the [Meshtastic CLI tool](https://meshtastic.org/docs/getting-started/flashing-firmware) on desktop
|
||||
|
||||
## Version Channels
|
||||
|
||||
| عربي | الوصف |
|
||||
| ------ | ------------------------------------------- |
|
||||
| Stable | Recommended for most users; tested releases |
|
||||
| Alpha | Preview releases; may contain bugs |
|
||||
| عربي | الوصف |
|
||||
| ---------- | -------------------------------------------------------------------------- |
|
||||
| Stable | Recommended for most users; tested releases |
|
||||
| Alpha | Preview releases; may contain bugs |
|
||||
| Local File | Flash a firmware file you select yourself, instead of a downloaded release |
|
||||
|
||||
## Pre-Update Checklist
|
||||
|
||||
@@ -73,7 +80,7 @@ Once the update succeeds:
|
||||
- The radio will reboot automatically
|
||||
- Bluetooth connection will re-establish
|
||||
- Verify your settings are intact
|
||||
- Check the firmware version in **Settings → About**
|
||||
- Confirm the new version under **Currently Installed** on the Firmware Update screen — it's also shown on the node's detail page and the Connections screen
|
||||
|
||||

|
||||
|
||||
|
||||
@@ -116,12 +116,16 @@ You can search the full history of any conversation directly from the chat scree
|
||||
|
||||

|
||||
|
||||
> 💡 **Tip:** Search is full-text and stays within the conversation you opened it from — it doesn't search across other channels or contacts. Matching is fast even on long histories because messages are indexed locally.
|
||||
> 💡 **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.
|
||||
|
||||
### 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:
|
||||
@@ -143,6 +147,7 @@ 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
|
||||
|
||||
@@ -56,6 +56,8 @@ A gateway node with internet access (WiFi or Ethernet) publishes mesh messages t
|
||||
|
||||
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
|
||||
|
||||
@@ -55,12 +55,15 @@ The BME680 **IAQ (Indoor Air Quality)** index is a single 0–500+ value derived
|
||||
|
||||
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 |
|
||||
| CO₂ | ppm | Carbon dioxide concentration |
|
||||
| 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:
|
||||
|
||||
@@ -98,12 +101,12 @@ Radio signal quality information:
|
||||
|
||||
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:
|
||||
|
||||
| Quality | Criteria |
|
||||
| ------- | ------------------------------------------------ |
|
||||
| جيد | SNR above the preset's limit |
|
||||
| مناسب | within 5.5 dB below the limit |
|
||||
| سيئ | within 7.5 dB below the limit |
|
||||
| لا يوجد | more than 7.5 dB below the limit |
|
||||
| Quality | Criteria |
|
||||
| ------- | ------------------------------------------------------------------------- |
|
||||
| جيد | SNR above the preset's limit |
|
||||
| مناسب | up to 5.5 dB below the limit |
|
||||
| سيئ | between 5.5 dB and 7.5 dB below the limit |
|
||||
| لا يوجد | more than 7.5 dB below the limit |
|
||||
|
||||
See [Understanding the Signal Meter](signal-meter) for the full explanation.
|
||||
|
||||
|
||||
@@ -74,6 +74,8 @@ After modifying settings, tap **Save** to write the configuration to your radio.
|
||||
| ~~Long Slow~~ | ~30 km | 0.18 kbps | −17.5 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**:
|
||||
|
||||
@@ -52,12 +52,12 @@ The app rates your signal quality (None, Bad, Fair, or Good) from **SNR alone, m
|
||||
|
||||
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 | within `5.5 dB` below the `limit` | Decodable, but getting close to the floor. |
|
||||
| سيئ | 1 | within `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. |
|
||||
| Level | Bars | Criteria | Meaning |
|
||||
| ------- | ---- | ----------------------------------------------- | ---------------------------------------------------------------------------------------- |
|
||||
| جيد | 3 | SNR **above** the preset's `limit` | Signal is comfortably above the demodulation floor — healthy connection. |
|
||||
| مناسب | 2 | up to `5.5 dB` below the `limit` | Decodable, but getting close to the floor. |
|
||||
| سيئ | 1 | between `5.5 dB` and `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.
|
||||
|
||||
|
||||
@@ -103,7 +103,9 @@ Nodes with particulate matter or CO₂ sensors report air quality data:
|
||||
| PM10 | µg/m³ | Coarse particulate matter |
|
||||
| CO₂ | ppm | Carbon dioxide concentration |
|
||||
|
||||
The CO₂ reading is color-coded by severity (Good → Stuffy → Poor → Unsafe → Evacuate). See [Node Metrics — Air Quality](node-metrics#air-quality-metrics) for the exact ppm bands and colors.
|
||||
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](node-metrics#air-quality-metrics) 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.
|
||||
|
||||
|
||||
@@ -18,11 +18,11 @@ Contributing translations helps make Meshtastic accessible to a wider audience.
|
||||
|
||||
## What Gets Translated
|
||||
|
||||
| Resource | Source Location | Notes |
|
||||
| ----------------- | ------------------------------------- | ---------------------------------------------------------------------- |
|
||||
| UI strings | `composeResources/values/strings.xml` | Buttons, labels, messages, and all user-visible text |
|
||||
| User Guide pages | `docs/user/*.md` | In-app documentation shown in Help & Documentation |
|
||||
| Fastlane metadata | `fastlane/metadata/android/en-US/` | App Store listing title, description, and changelogs |
|
||||
| Resource | Source Location | Notes |
|
||||
| ----------------- | ------------------------------------------------------------------- | ---------------------------------------------------------------------- |
|
||||
| UI strings | `core/resources/src/commonMain/composeResources/values/strings.xml` | Buttons, labels, messages, and all user-visible text |
|
||||
| User Guide pages | `docs/en/user/*.md` | In-app documentation shown in Help & Documentation |
|
||||
| Fastlane metadata | `fastlane/metadata/android/en-US/` | App Store listing title, description, and changelogs |
|
||||
|
||||
> ⚠️ **Note:** Developer Guide pages are English-only. Code-focused documentation targeting contributors is not translated.
|
||||
|
||||
|
||||
@@ -14,7 +14,7 @@ The Meshtastic app automatically displays temperatures, distances, speeds, and t
|
||||
|
||||
## How It Works
|
||||
|
||||
Meshtastic radios always transmit data in **metric units** (meters, °C, km/h, hPa, etc.). When the app receives this data, it uses the `MetricFormatter` utility to convert and display values in whatever unit system your device's locale specifies.
|
||||
Meshtastic radios always transmit data in **metric units** (meters, °C, km/h, 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`.
|
||||
|
||||
@@ -115,12 +115,13 @@ On Android, your measurement system (metric vs imperial) is tied to your region
|
||||
2. Change your **Region** or **Measurement units** preference
|
||||
3. Return to Meshtastic — values update immediately
|
||||
|
||||
> 💡 **Tip:** The app uses `MetricFormatter` from `core:common`. All measurement formatting is handled by a shared KMP utility that respects your platform's locale. Developers adding new measurement displays should use `MetricFormatter` rather than hard-coding unit conversions.
|
||||
> 💡 **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](node-metrics) — where temperature, distance, and sensor values are displayed
|
||||
- [Telemetry & Sensors](telemetry-and-sensors) — the sensors that produce these measurements
|
||||
- [Measurement & Formatting](../developer/measurement) — developer reference for the formatting utilities
|
||||
- [Settings — Radio & User](settings-radio-user) — region setting that drives unit selection
|
||||
|
||||
---
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
title: Android Auto
|
||||
parent: User Guide
|
||||
nav_order: 18
|
||||
last_updated: 2026-06-11
|
||||
last_updated: 2026-07-07
|
||||
description: Use Meshtastic hands-free on an Android Auto head unit — read messages aloud, reply by voice, and check nodes and mesh status while driving.
|
||||
aliases:
|
||||
- android-auto
|
||||
@@ -17,9 +17,11 @@ Meshtastic integrates with Android Auto so you can stay in touch with your mesh
|
||||
|
||||
> ⚠️ **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.
|
||||
|
||||
## Абзор
|
||||
|
||||
When your phone is connected to an Android Auto head unit (or the Desktop Head Unit emulator used for development), Meshtastic appears as a messaging app built with the Android Car App Library. The car interface presents a tabbed Home screen optimized for driving-safe, glanceable use:
|
||||
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.
|
||||
|
||||
@@ -23,7 +23,7 @@ Bluetooth Low Energy is the default and most common connection method on Android
|
||||
|
||||
1. Ensure your Meshtastic radio is powered on and in pairing mode.
|
||||
2. Open the app and navigate to the **Connect** tab.
|
||||
3. Tap **Scan for Devices** — nearby Meshtastic radios will appear.
|
||||
3. Tap **Scan for Bluetooth devices** — nearby Meshtastic radios will appear.
|
||||
4. Select your device from the list.
|
||||
5. Accept the Bluetooth pairing prompt if shown.
|
||||
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
title: Desktop App
|
||||
parent: User Guide
|
||||
nav_order: 14
|
||||
last_updated: 2026-06-11
|
||||
last_updated: 2026-07-07
|
||||
description: Install and use the Meshtastic Desktop app on Linux, macOS, and Windows — connections, feature parity, and keyboard shortcuts.
|
||||
aliases:
|
||||
- desktop
|
||||
@@ -60,19 +60,19 @@ Bluetooth Low Energy is supported on Desktop via the [Kable](https://github.com/
|
||||
|
||||
## Feature Parity
|
||||
|
||||
| Feature | Android | Desktop | Notes |
|
||||
| -------------------------------------------- | ------- | ------- | ---------------------------------------------- |
|
||||
| Messaging | ✓ | ✓ | Full parity |
|
||||
| Node List | ✓ | ✓ | Full parity |
|
||||
| Map | ✓ | ✓ | Full parity |
|
||||
| Налады | ✓ | ✓ | Full parity |
|
||||
| Bluetooth (BLE) | ✓ | ✓ | Via Kable on desktop |
|
||||
| Firmware Update OTA | ✓ | ✗ | Use web flasher |
|
||||
| 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 |
|
||||
| Feature | Android | Desktop | Notes |
|
||||
| -------------------------------------------- | ------- | ------- | -------------------------------------------------------------------------- |
|
||||
| Messaging | ✓ | ✓ | Full parity |
|
||||
| Node List | ✓ | ✓ | Full parity |
|
||||
| Map | ✓ | ◐ | Map tab exists on desktop, but the interactive map view is Android-only |
|
||||
| Налады | ✓ | ✓ | Full parity |
|
||||
| Bluetooth (BLE) | ✓ | ✓ | Via Kable on desktop |
|
||||
| Firmware Update | ✓ | ◐ | Desktop supports in-app USB firmware update; BLE/Wi-Fi OTA is Android-only |
|
||||
| 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.
|
||||
|
||||
@@ -84,14 +84,17 @@ The Desktop app uses the same Compose Multiplatform UI with adaptations for larg
|
||||
|
||||
### Keyboard Shortcuts
|
||||
|
||||
| Shortcut | Action |
|
||||
| ------------------- | ---------------------- |
|
||||
| **⌘Q** / **Ctrl+Q** | Quit the application |
|
||||
| **⌘,** / **Ctrl+,** | Open Settings |
|
||||
| **⌘1** / **Ctrl+1** | Switch to Messages tab |
|
||||
| **⌘2** / **Ctrl+2** | Switch to Nodes tab |
|
||||
| **⌘3** / **Ctrl+3** | Switch to Map tab |
|
||||
| **⌘4** / **Ctrl+4** | Switch to Connect tab |
|
||||
All shortcuts use the **Meta** key — that's ⌘ (Command) on macOS and the Super / Windows key on Linux and Windows. (`Ctrl` is not bound.)
|
||||
|
||||
| Shortcut | Action |
|
||||
| ---------- | ---------------------- |
|
||||
| **Meta+Q** | Quit the application |
|
||||
| **Meta+,** | Open Settings |
|
||||
| **Meta+1** | Switch to Messages tab |
|
||||
| **Meta+2** | Switch to Nodes tab |
|
||||
| **Meta+3** | Switch to Map tab |
|
||||
| **Meta+4** | Switch to Connect tab |
|
||||
| **Meta+/** | Open About |
|
||||
|
||||
### Window & System Tray
|
||||
|
||||
@@ -123,7 +126,6 @@ Individual doc pages render with full formatting:
|
||||
```bash
|
||||
git clone https://github.com/meshtastic/Meshtastic-Android.git
|
||||
cd Meshtastic-Android
|
||||
git submodule update --init
|
||||
./gradlew :desktopApp:run
|
||||
```
|
||||
|
||||
@@ -134,7 +136,8 @@ Requirements:
|
||||
|
||||
## Known Limitations
|
||||
|
||||
- No OTA firmware updates (use web flasher)
|
||||
- Firmware updates over the air (BLE/Wi-Fi) are Android-only; on desktop, use the in-app USB update or the [Web Flasher](https://flasher.meshtastic.org)
|
||||
- The interactive map view is Android-only — the Map tab is present but does not render a map on desktop
|
||||
- Some Android-specific features (widgets, specific notification channels) are unavailable
|
||||
- Performance may vary on low-spec hardware running Compose Desktop
|
||||
- BLE bonding is not yet supported on desktop (pairing works without bonding)
|
||||
@@ -142,7 +145,7 @@ Requirements:
|
||||
## Related Topics
|
||||
|
||||
- [Connections](connections) — connection methods overview
|
||||
- [Firmware Updates](firmware) — use the [Web Flasher](https://flasher.meshtastic.org) for desktop firmware updates
|
||||
- [Firmware Updates](firmware) — in-app USB update on desktop, or the [Web Flasher](https://flasher.meshtastic.org)
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -44,7 +44,6 @@ Before starting, configure these controls:
|
||||
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**.
|
||||
- The current channel is using the **default channel key** (use a unique key first — see [Messages & Channels](messages-and-channels)).
|
||||
- **No presets** have been selected to scan.
|
||||
- The selected preset uses **2.4 GHz**, which your hardware doesn't support.
|
||||
|
||||
|
||||
@@ -2,8 +2,8 @@
|
||||
title: Firmware Updates
|
||||
parent: User Guide
|
||||
nav_order: 13
|
||||
last_updated: 2026-05-13
|
||||
description: Update your radio firmware over Bluetooth — OTA process, version channels, pre-flight checks, and recovery.
|
||||
last_updated: 2026-07-07
|
||||
description: Update your radio firmware over Bluetooth or USB — OTA process, version channels, pre-flight checks, and recovery.
|
||||
aliases:
|
||||
- firmware
|
||||
- update
|
||||
@@ -17,7 +17,7 @@ Keep your Meshtastic radio up to date with the latest firmware for new features,
|
||||
|
||||
## Checking for Updates
|
||||
|
||||
1. Navigate to **Settings → Firmware Update** or tap the firmware notification if shown.
|
||||
1. Open the connected radio's configuration and, under **Advanced**, tap **Firmware Update** — or tap the firmware notification if one is shown. The entry appears only for OTA-capable devices.
|
||||
2. The app checks for available firmware versions.
|
||||
3. Available updates show the version number and changelog summary.
|
||||
|
||||
@@ -39,19 +39,26 @@ The most common update method for Android users:
|
||||
|
||||

|
||||
|
||||
### USB Flashing
|
||||
### In-App USB Update
|
||||
|
||||
For recovery or when OTA is unavailable:
|
||||
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:
|
||||
|
||||
- Use the [Meshtastic Web Flasher](https://flasher.meshtastic.org)
|
||||
- Or the [Meshtastic CLI tool](https://meshtastic.org/docs/getting-started/flashing-firmware) on desktop
|
||||
|
||||
## Version Channels
|
||||
|
||||
| Канал | Апісанне |
|
||||
| ------ | ------------------------------------------- |
|
||||
| Stable | Recommended for most users; tested releases |
|
||||
| Alpha | Preview releases; may contain bugs |
|
||||
| Канал | Апісанне |
|
||||
| ---------- | -------------------------------------------------------------------------- |
|
||||
| Stable | Recommended for most users; tested releases |
|
||||
| Alpha | Preview releases; may contain bugs |
|
||||
| Local File | Flash a firmware file you select yourself, instead of a downloaded release |
|
||||
|
||||
## Pre-Update Checklist
|
||||
|
||||
@@ -73,7 +80,7 @@ Once the update succeeds:
|
||||
- The radio will reboot automatically
|
||||
- Bluetooth connection will re-establish
|
||||
- Verify your settings are intact
|
||||
- Check the firmware version in **Settings → About**
|
||||
- Confirm the new version under **Currently Installed** on the Firmware Update screen — it's also shown on the node's detail page and the Connections screen
|
||||
|
||||

|
||||
|
||||
|
||||
@@ -116,12 +116,16 @@ You can search the full history of any conversation directly from the chat scree
|
||||
|
||||

|
||||
|
||||
> 💡 **Tip:** Search is full-text and stays within the conversation you opened it from — it doesn't search across other channels or contacts. Matching is fast even on long histories because messages are indexed locally.
|
||||
> 💡 **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.
|
||||
|
||||
### 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:
|
||||
@@ -143,6 +147,7 @@ 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
|
||||
|
||||
@@ -56,6 +56,8 @@ A gateway node with internet access (WiFi or Ethernet) publishes mesh messages t
|
||||
|
||||
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
|
||||
|
||||
@@ -55,12 +55,15 @@ The BME680 **IAQ (Indoor Air Quality)** index is a single 0–500+ value derived
|
||||
|
||||
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 |
|
||||
| CO₂ | ppm | Carbon dioxide concentration |
|
||||
| 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:
|
||||
|
||||
@@ -98,12 +101,12 @@ Radio signal quality information:
|
||||
|
||||
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:
|
||||
|
||||
| Quality | Criteria |
|
||||
| ------- | ------------------------------------------------ |
|
||||
| Good | SNR above the preset's limit |
|
||||
| Fair | within 5.5 dB below the limit |
|
||||
| Bad | within 7.5 dB below the limit |
|
||||
| Нічога | more than 7.5 dB below the limit |
|
||||
| Quality | Criteria |
|
||||
| ------- | ------------------------------------------------------------------------- |
|
||||
| Good | SNR above the preset's limit |
|
||||
| Fair | up to 5.5 dB below the limit |
|
||||
| Bad | between 5.5 dB and 7.5 dB below the limit |
|
||||
| Нічога | more than 7.5 dB below the limit |
|
||||
|
||||
See [Understanding the Signal Meter](signal-meter) for the full explanation.
|
||||
|
||||
|
||||
@@ -74,6 +74,8 @@ After modifying settings, tap **Save** to write the configuration to your radio.
|
||||
| ~~Long Slow~~ | ~30 km | 0.18 kbps | −17.5 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**:
|
||||
|
||||
@@ -52,12 +52,12 @@ The app rates your signal quality (None, Bad, Fair, or Good) from **SNR alone, m
|
||||
|
||||
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 |
|
||||
| ------ | ---- | ------------------------------------ | ---------------------------------------------------------------------------------------- |
|
||||
| Good | 3 | SNR **above** the preset's `limit` | Signal is comfortably above the demodulation floor — healthy connection. |
|
||||
| Fair | 2 | within `5.5 dB` below the `limit` | Decodable, but getting close to the floor. |
|
||||
| Bad | 1 | within `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. |
|
||||
| Level | Bars | Criteria | Meaning |
|
||||
| ------ | ---- | ----------------------------------------------- | ---------------------------------------------------------------------------------------- |
|
||||
| Good | 3 | SNR **above** the preset's `limit` | Signal is comfortably above the demodulation floor — healthy connection. |
|
||||
| Fair | 2 | up to `5.5 dB` below the `limit` | Decodable, but getting close to the floor. |
|
||||
| Bad | 1 | between `5.5 dB` and `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.
|
||||
|
||||
|
||||
@@ -103,7 +103,9 @@ Nodes with particulate matter or CO₂ sensors report air quality data:
|
||||
| PM10 | µg/m³ | Coarse particulate matter |
|
||||
| CO₂ | ppm | Carbon dioxide concentration |
|
||||
|
||||
The CO₂ reading is color-coded by severity (Good → Stuffy → Poor → Unsafe → Evacuate). See [Node Metrics — Air Quality](node-metrics#air-quality-metrics) for the exact ppm bands and colors.
|
||||
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](node-metrics#air-quality-metrics) 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.
|
||||
|
||||
|
||||
@@ -18,11 +18,11 @@ Contributing translations helps make Meshtastic accessible to a wider audience.
|
||||
|
||||
## What Gets Translated
|
||||
|
||||
| Resource | Source Location | Notes |
|
||||
| ----------------- | ------------------------------------- | ---------------------------------------------------------------------- |
|
||||
| UI strings | `composeResources/values/strings.xml` | Buttons, labels, messages, and all user-visible text |
|
||||
| User Guide pages | `docs/user/*.md` | In-app documentation shown in Help & Documentation |
|
||||
| Fastlane metadata | `fastlane/metadata/android/en-US/` | App Store listing title, description, and changelogs |
|
||||
| Resource | Source Location | Notes |
|
||||
| ----------------- | ------------------------------------------------------------------- | ---------------------------------------------------------------------- |
|
||||
| UI strings | `core/resources/src/commonMain/composeResources/values/strings.xml` | Buttons, labels, messages, and all user-visible text |
|
||||
| User Guide pages | `docs/en/user/*.md` | In-app documentation shown in Help & Documentation |
|
||||
| Fastlane metadata | `fastlane/metadata/android/en-US/` | App Store listing title, description, and changelogs |
|
||||
|
||||
> ⚠️ **Note:** Developer Guide pages are English-only. Code-focused documentation targeting contributors is not translated.
|
||||
|
||||
|
||||
@@ -14,7 +14,7 @@ The Meshtastic app automatically displays temperatures, distances, speeds, and t
|
||||
|
||||
## How It Works
|
||||
|
||||
Meshtastic radios always transmit data in **metric units** (meters, °C, km/h, hPa, etc.). When the app receives this data, it uses the `MetricFormatter` utility to convert and display values in whatever unit system your device's locale specifies.
|
||||
Meshtastic radios always transmit data in **metric units** (meters, °C, km/h, 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`.
|
||||
|
||||
@@ -115,12 +115,13 @@ On Android, your measurement system (metric vs imperial) is tied to your region
|
||||
2. Change your **Region** or **Measurement units** preference
|
||||
3. Return to Meshtastic — values update immediately
|
||||
|
||||
> 💡 **Tip:** The app uses `MetricFormatter` from `core:common`. All measurement formatting is handled by a shared KMP utility that respects your platform's locale. Developers adding new measurement displays should use `MetricFormatter` rather than hard-coding unit conversions.
|
||||
> 💡 **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](node-metrics) — where temperature, distance, and sensor values are displayed
|
||||
- [Telemetry & Sensors](telemetry-and-sensors) — the sensors that produce these measurements
|
||||
- [Measurement & Formatting](../developer/measurement) — developer reference for the formatting utilities
|
||||
- [Settings — Radio & User](settings-radio-user) — region setting that drives unit selection
|
||||
|
||||
---
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
title: Android Auto
|
||||
parent: Ръководство за потребители
|
||||
nav_order: 18
|
||||
last_updated: 2026-06-11
|
||||
last_updated: 2026-07-07
|
||||
description: Use Meshtastic hands-free on an Android Auto head unit — read messages aloud, reply by voice, and check nodes and mesh status while driving.
|
||||
aliases:
|
||||
- android-auto
|
||||
@@ -17,9 +17,11 @@ Meshtastic integrates with Android Auto so you can stay in touch with your mesh
|
||||
|
||||
> ⚠️ **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.
|
||||
|
||||
## Общ преглед
|
||||
|
||||
When your phone is connected to an Android Auto head unit (or the Desktop Head Unit emulator used for development), Meshtastic appears as a messaging app built with the Android Car App Library. The car interface presents a tabbed Home screen optimized for driving-safe, glanceable use:
|
||||
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.
|
||||
|
||||
@@ -23,7 +23,7 @@ Bluetooth Low Energy е методът за свързване по подраз
|
||||
|
||||
1. Уверете се, че вашето радио Meshtastic е включено и е в режим на сдвояване.
|
||||
2. Отворете приложението и отидете в раздела **Свързване**.
|
||||
3. Натиснете **Сканиране за устройства** — ще се появят близките радиа Meshtastic.
|
||||
3. Tap **Scan for Bluetooth devices** — nearby Meshtastic radios will appear.
|
||||
4. Изберете вашето устройство от списъка.
|
||||
5. Приемете подканата за Bluetooth сдвояване, ако се покаже.
|
||||
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
title: Настолно приложение
|
||||
parent: Ръководство за потребители
|
||||
nav_order: 14
|
||||
last_updated: 2026-06-11
|
||||
last_updated: 2026-07-07
|
||||
description: Install and use the Meshtastic Desktop app on Linux, macOS, and Windows — connections, feature parity, and keyboard shortcuts.
|
||||
aliases:
|
||||
- desktop
|
||||
@@ -60,19 +60,19 @@ Bluetooth Low Energy is supported on Desktop via the [Kable](https://github.com/
|
||||
|
||||
## Feature Parity
|
||||
|
||||
| Feature | Android | Desktop | Бележки |
|
||||
| -------------------------------------------- | ------- | ------- | ---------------------------------------------- |
|
||||
| Messaging | ✓ | ✓ | Full parity |
|
||||
| Node List | ✓ | ✓ | Full parity |
|
||||
| Карта | ✓ | ✓ | Full parity |
|
||||
| Настройки | ✓ | ✓ | Full parity |
|
||||
| Bluetooth (BLE) | ✓ | ✓ | Via Kable on desktop |
|
||||
| Firmware Update OTA | ✓ | ✗ | Use web flasher |
|
||||
| Известия | ✓ | ✓ | 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 |
|
||||
| Feature | Android | Desktop | Бележки |
|
||||
| -------------------------------------------- | ------- | ------- | -------------------------------------------------------------------------- |
|
||||
| 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 |
|
||||
| Актуализация на фърмуера | ✓ | ◐ | Desktop supports in-app USB firmware update; BLE/Wi-Fi OTA is Android-only |
|
||||
| Известия | ✓ | ✓ | 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.
|
||||
|
||||
@@ -84,14 +84,17 @@ The Desktop app uses the same Compose Multiplatform UI with adaptations for larg
|
||||
|
||||
### Keyboard Shortcuts
|
||||
|
||||
| Shortcut | Action |
|
||||
| ------------------- | ---------------------- |
|
||||
| **⌘Q** / **Ctrl+Q** | Quit the application |
|
||||
| **⌘,** / **Ctrl+,** | Open Settings |
|
||||
| **⌘1** / **Ctrl+1** | Switch to Messages tab |
|
||||
| **⌘2** / **Ctrl+2** | Switch to Nodes tab |
|
||||
| **⌘3** / **Ctrl+3** | Switch to Map tab |
|
||||
| **⌘4** / **Ctrl+4** | Switch to Connect tab |
|
||||
All shortcuts use the **Meta** key — that's ⌘ (Command) on macOS and the Super / Windows key on Linux and Windows. (`Ctrl` is not bound.)
|
||||
|
||||
| Shortcut | Action |
|
||||
| ---------- | ---------------------- |
|
||||
| **Meta+Q** | Quit the application |
|
||||
| **Meta+,** | Open Settings |
|
||||
| **Meta+1** | Switch to Messages tab |
|
||||
| **Meta+2** | Switch to Nodes tab |
|
||||
| **Meta+3** | Switch to Map tab |
|
||||
| **Meta+4** | Switch to Connect tab |
|
||||
| **Meta+/** | Open About |
|
||||
|
||||
### Window & System Tray
|
||||
|
||||
@@ -123,7 +126,6 @@ Individual doc pages render with full formatting:
|
||||
```bash
|
||||
git clone https://github.com/meshtastic/Meshtastic-Android.git
|
||||
cd Meshtastic-Android
|
||||
git submodule update --init
|
||||
./gradlew :desktopApp:run
|
||||
```
|
||||
|
||||
@@ -134,7 +136,8 @@ Requirements:
|
||||
|
||||
## Known Limitations
|
||||
|
||||
- No OTA firmware updates (use web flasher)
|
||||
- Firmware updates over the air (BLE/Wi-Fi) are Android-only; on desktop, use the in-app USB update or the [Web Flasher](https://flasher.meshtastic.org)
|
||||
- The interactive map view is Android-only — the Map tab is present but does not render a map on desktop
|
||||
- Some Android-specific features (widgets, specific notification channels) are unavailable
|
||||
- Performance may vary on low-spec hardware running Compose Desktop
|
||||
- BLE bonding is not yet supported on desktop (pairing works without bonding)
|
||||
@@ -142,7 +145,7 @@ Requirements:
|
||||
## Related Topics
|
||||
|
||||
- [Connections](connections) — connection methods overview
|
||||
- [Firmware Updates](firmware) — use the [Web Flasher](https://flasher.meshtastic.org) for desktop firmware updates
|
||||
- [Firmware Updates](firmware) — in-app USB update on desktop, or the [Web Flasher](https://flasher.meshtastic.org)
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -44,7 +44,6 @@ Open it from **Settings → Local Mesh Discovery**.
|
||||
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**.
|
||||
- The current channel is using the **default channel key** (use a unique key first — see [Messages & Channels](messages-and-channels)).
|
||||
- **No presets** have been selected to scan.
|
||||
- The selected preset uses **2.4 GHz**, which your hardware doesn't support.
|
||||
|
||||
|
||||
@@ -2,8 +2,8 @@
|
||||
title: Актуализации на фърмуера
|
||||
parent: Ръководство за потребители
|
||||
nav_order: 13
|
||||
last_updated: 2026-05-13
|
||||
description: Update your radio firmware over Bluetooth — OTA process, version channels, pre-flight checks, and recovery.
|
||||
last_updated: 2026-07-07
|
||||
description: Update your radio firmware over Bluetooth or USB — OTA process, version channels, pre-flight checks, and recovery.
|
||||
aliases:
|
||||
- firmware
|
||||
- update
|
||||
@@ -17,7 +17,7 @@ aliases:
|
||||
|
||||
## Проверка за актуализации
|
||||
|
||||
1. Отидете до **Настройки → Актуализация на фърмуера** или докоснете известието за фърмуера, ако е показано.
|
||||
1. Open the connected radio's configuration and, under **Advanced**, tap **Firmware Update** — or tap the firmware notification if one is shown. The entry appears only for OTA-capable devices.
|
||||
2. Приложението проверява за налични версии на фърмуера.
|
||||
3. Available updates show the version number and changelog summary.
|
||||
|
||||
@@ -39,19 +39,26 @@ aliases:
|
||||
|
||||

|
||||
|
||||
### USB Flashing
|
||||
### In-App USB Update
|
||||
|
||||
For recovery or when OTA is unavailable:
|
||||
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:
|
||||
|
||||
- Use the [Meshtastic Web Flasher](https://flasher.meshtastic.org)
|
||||
- Or the [Meshtastic CLI tool](https://meshtastic.org/docs/getting-started/flashing-firmware) on desktop
|
||||
|
||||
## Канали на версиите
|
||||
|
||||
| Канал | Описание |
|
||||
| -------- | ------------------------------------------------------ |
|
||||
| Стабилен | Препоръчва се за повечето потребители; тествани версии |
|
||||
| Алфа | Предварителни издания; може да съдържат грешки |
|
||||
| Канал | Описание |
|
||||
| ------------ | -------------------------------------------------------------------------- |
|
||||
| Стабилен | Препоръчва се за повечето потребители; тествани версии |
|
||||
| Алфа | Предварителни издания; може да съдържат грешки |
|
||||
| Локален файл | Flash a firmware file you select yourself, instead of a downloaded release |
|
||||
|
||||
## Контролен списък преди актуализация
|
||||
|
||||
@@ -73,7 +80,7 @@ Once the update succeeds:
|
||||
- Радиото ще се рестартира автоматично
|
||||
- Bluetooth връзката ще се възстанови
|
||||
- Проверете дали настройките ви са непокътнати
|
||||
- Проверете версията на фърмуера в **Настройки → Относно**
|
||||
- Confirm the new version under **Currently Installed** on the Firmware Update screen — it's also shown on the node's detail page and the Connections screen
|
||||
|
||||

|
||||
|
||||
|
||||
@@ -116,12 +116,16 @@ You can search the full history of any conversation directly from the chat scree
|
||||
|
||||

|
||||
|
||||
> 💡 **Tip:** Search is full-text and stays within the conversation you opened it from — it doesn't search across other channels or contacts. Matching is fast even on long histories because messages are indexed locally.
|
||||
> 💡 **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.
|
||||
|
||||
### 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:
|
||||
@@ -143,6 +147,7 @@ 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
|
||||
|
||||
@@ -56,6 +56,8 @@ A gateway node with internet access (WiFi or Ethernet) publishes mesh messages t
|
||||
|
||||
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
|
||||
|
||||
@@ -55,12 +55,15 @@ The BME680 **IAQ (Indoor Air Quality)** index is a single 0–500+ value derived
|
||||
|
||||
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.
|
||||
|
||||
| Метрични | 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 |
|
||||
| CO₂ | ppm | Carbon dioxide concentration |
|
||||
| Метрични | 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:
|
||||
|
||||
@@ -98,12 +101,12 @@ Radio signal quality information:
|
||||
|
||||
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:
|
||||
|
||||
| Quality | Criteria |
|
||||
| ------------- | ------------------------------------------------ |
|
||||
| Добър | SNR above the preset's limit |
|
||||
| Задоволителен | within 5.5 dB below the limit |
|
||||
| Лош | within 7.5 dB below the limit |
|
||||
| Няма | more than 7.5 dB below the limit |
|
||||
| Quality | Criteria |
|
||||
| ------------- | ------------------------------------------------------------------------- |
|
||||
| Добър | SNR above the preset's limit |
|
||||
| Задоволителен | up to 5.5 dB below the limit |
|
||||
| Лош | between 5.5 dB and 7.5 dB below the limit |
|
||||
| Няма | more than 7.5 dB below the limit |
|
||||
|
||||
See [Understanding the Signal Meter](signal-meter) for the full explanation.
|
||||
|
||||
|
||||
@@ -74,6 +74,8 @@ After modifying settings, tap **Save** to write the configuration to your radio.
|
||||
| ~~Long Slow~~ | ~30 km | 0.18 kbps | −17.5 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**:
|
||||
|
||||
@@ -52,12 +52,12 @@ The app rates your signal quality (None, Bad, Fair, or Good) from **SNR alone, m
|
||||
|
||||
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 | within `5.5 dB` below the `limit` | Decodable, but getting close to the floor. |
|
||||
| Лош | 1 | within `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. |
|
||||
| Level | Bars | Criteria | Meaning |
|
||||
| ------------- | ---- | ----------------------------------------------- | ---------------------------------------------------------------------------------------- |
|
||||
| Добър | 3 | SNR **above** the preset's `limit` | Signal is comfortably above the demodulation floor — healthy connection. |
|
||||
| Задоволителен | 2 | up to `5.5 dB` below the `limit` | Decodable, but getting close to the floor. |
|
||||
| Лош | 1 | between `5.5 dB` and `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.
|
||||
|
||||
|
||||
@@ -103,7 +103,9 @@ Nodes with particulate matter or CO₂ sensors report air quality data:
|
||||
| PM10 | µg/m³ | Coarse particulate matter |
|
||||
| CO₂ | ppm | Carbon dioxide concentration |
|
||||
|
||||
The CO₂ reading is color-coded by severity (Good → Stuffy → Poor → Unsafe → Evacuate). See [Node Metrics — Air Quality](node-metrics#air-quality-metrics) for the exact ppm bands and colors.
|
||||
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](node-metrics#air-quality-metrics) 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.
|
||||
|
||||
|
||||
@@ -18,11 +18,11 @@ Contributing translations helps make Meshtastic accessible to a wider audience.
|
||||
|
||||
## What Gets Translated
|
||||
|
||||
| Resource | Source Location | Бележки |
|
||||
| ----------------- | ------------------------------------- | ---------------------------------------------------------------------- |
|
||||
| UI strings | `composeResources/values/strings.xml` | Buttons, labels, messages, and all user-visible text |
|
||||
| User Guide pages | `docs/user/*.md` | In-app documentation shown in Help & Documentation |
|
||||
| Fastlane metadata | `fastlane/metadata/android/en-US/` | App Store listing title, description, and changelogs |
|
||||
| Resource | Source Location | Бележки |
|
||||
| ----------------- | ------------------------------------------------------------------- | ---------------------------------------------------------------------- |
|
||||
| UI strings | `core/resources/src/commonMain/composeResources/values/strings.xml` | Buttons, labels, messages, and all user-visible text |
|
||||
| User Guide pages | `docs/en/user/*.md` | In-app documentation shown in Help & Documentation |
|
||||
| Fastlane metadata | `fastlane/metadata/android/en-US/` | App Store listing title, description, and changelogs |
|
||||
|
||||
> ⚠️ **Note:** Developer Guide pages are English-only. Code-focused documentation targeting contributors is not translated.
|
||||
|
||||
|
||||
@@ -14,7 +14,7 @@ The Meshtastic app automatically displays temperatures, distances, speeds, and t
|
||||
|
||||
## Как работи
|
||||
|
||||
Meshtastic radios always transmit data in **metric units** (meters, °C, km/h, hPa, etc.). When the app receives this data, it uses the `MetricFormatter` utility to convert and display values in whatever unit system your device's locale specifies.
|
||||
Meshtastic radios always transmit data in **metric units** (meters, °C, km/h, 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`.
|
||||
|
||||
@@ -115,12 +115,13 @@ On Android, your measurement system (metric vs imperial) is tied to your region
|
||||
2. Change your **Region** or **Measurement units** preference
|
||||
3. Return to Meshtastic — values update immediately
|
||||
|
||||
> 💡 **Tip:** The app uses `MetricFormatter` from `core:common`. All measurement formatting is handled by a shared KMP utility that respects your platform's locale. Developers adding new measurement displays should use `MetricFormatter` rather than hard-coding unit conversions.
|
||||
> 💡 **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](node-metrics) — where temperature, distance, and sensor values are displayed
|
||||
- [Telemetry & Sensors](telemetry-and-sensors) — the sensors that produce these measurements
|
||||
- [Measurement & Formatting](../developer/measurement) — developer reference for the formatting utilities
|
||||
- [Settings — Radio & User](settings-radio-user) — region setting that drives unit selection
|
||||
|
||||
---
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
title: Android Auto
|
||||
parent: User Guide
|
||||
nav_order: 18
|
||||
last_updated: 2026-06-11
|
||||
last_updated: 2026-07-07
|
||||
description: Use Meshtastic hands-free on an Android Auto head unit — read messages aloud, reply by voice, and check nodes and mesh status while driving.
|
||||
aliases:
|
||||
- android-auto
|
||||
@@ -17,9 +17,11 @@ Meshtastic integrates with Android Auto so you can stay in touch with your mesh
|
||||
|
||||
> ⚠️ **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), Meshtastic appears as a messaging app built with the Android Car App Library. The car interface presents a tabbed Home screen optimized for driving-safe, glanceable use:
|
||||
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.
|
||||
|
||||
@@ -23,7 +23,7 @@ Bluetooth Low Energy is the default and most common connection method on Android
|
||||
|
||||
1. Ensure your Meshtastic radio is powered on and in pairing mode.
|
||||
2. Open the app and navigate to the **Connect** tab.
|
||||
3. Tap **Scan for Devices** — nearby Meshtastic radios will appear.
|
||||
3. Tap **Scan for Bluetooth devices** — nearby Meshtastic radios will appear.
|
||||
4. Select your device from the list.
|
||||
5. Accept the Bluetooth pairing prompt if shown.
|
||||
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
title: Desktop App
|
||||
parent: User Guide
|
||||
nav_order: 14
|
||||
last_updated: 2026-06-11
|
||||
last_updated: 2026-07-07
|
||||
description: Install and use the Meshtastic Desktop app on Linux, macOS, and Windows — connections, feature parity, and keyboard shortcuts.
|
||||
aliases:
|
||||
- desktop
|
||||
@@ -60,19 +60,19 @@ Bluetooth Low Energy is supported on Desktop via the [Kable](https://github.com/
|
||||
|
||||
## Feature Parity
|
||||
|
||||
| Feature | Android | Desktop | Notes |
|
||||
| -------------------------------------------- | ------- | ------- | ---------------------------------------------- |
|
||||
| Messaging | ✓ | ✓ | Full parity |
|
||||
| Node List | ✓ | ✓ | Full parity |
|
||||
| Map | ✓ | ✓ | Full parity |
|
||||
| Settings | ✓ | ✓ | Full parity |
|
||||
| Bluetooth (BLE) | ✓ | ✓ | Via Kable on desktop |
|
||||
| Firmware Update OTA | ✓ | ✗ | Use web flasher |
|
||||
| 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 |
|
||||
| Feature | Android | Desktop | Notes |
|
||||
| -------------------------------------------- | ------- | ------- | -------------------------------------------------------------------------- |
|
||||
| Messaging | ✓ | ✓ | Full parity |
|
||||
| Node List | ✓ | ✓ | Full parity |
|
||||
| Map | ✓ | ◐ | Map tab exists on desktop, but the interactive map view is Android-only |
|
||||
| Settings | ✓ | ✓ | Full parity |
|
||||
| Bluetooth (BLE) | ✓ | ✓ | Via Kable on desktop |
|
||||
| Firmware Update | ✓ | ◐ | Desktop supports in-app USB firmware update; BLE/Wi-Fi OTA is Android-only |
|
||||
| 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.
|
||||
|
||||
@@ -84,14 +84,17 @@ The Desktop app uses the same Compose Multiplatform UI with adaptations for larg
|
||||
|
||||
### Keyboard Shortcuts
|
||||
|
||||
| Shortcut | Action |
|
||||
| ------------------- | ---------------------- |
|
||||
| **⌘Q** / **Ctrl+Q** | Quit the application |
|
||||
| **⌘,** / **Ctrl+,** | Open Settings |
|
||||
| **⌘1** / **Ctrl+1** | Switch to Messages tab |
|
||||
| **⌘2** / **Ctrl+2** | Switch to Nodes tab |
|
||||
| **⌘3** / **Ctrl+3** | Switch to Map tab |
|
||||
| **⌘4** / **Ctrl+4** | Switch to Connect tab |
|
||||
All shortcuts use the **Meta** key — that's ⌘ (Command) on macOS and the Super / Windows key on Linux and Windows. (`Ctrl` is not bound.)
|
||||
|
||||
| Shortcut | Action |
|
||||
| ---------- | ---------------------- |
|
||||
| **Meta+Q** | Quit the application |
|
||||
| **Meta+,** | Open Settings |
|
||||
| **Meta+1** | Switch to Messages tab |
|
||||
| **Meta+2** | Switch to Nodes tab |
|
||||
| **Meta+3** | Switch to Map tab |
|
||||
| **Meta+4** | Switch to Connect tab |
|
||||
| **Meta+/** | Open About |
|
||||
|
||||
### Window & System Tray
|
||||
|
||||
@@ -123,7 +126,6 @@ Individual doc pages render with full formatting:
|
||||
```bash
|
||||
git clone https://github.com/meshtastic/Meshtastic-Android.git
|
||||
cd Meshtastic-Android
|
||||
git submodule update --init
|
||||
./gradlew :desktopApp:run
|
||||
```
|
||||
|
||||
@@ -134,7 +136,8 @@ Requirements:
|
||||
|
||||
## Known Limitations
|
||||
|
||||
- No OTA firmware updates (use web flasher)
|
||||
- Firmware updates over the air (BLE/Wi-Fi) are Android-only; on desktop, use the in-app USB update or the [Web Flasher](https://flasher.meshtastic.org)
|
||||
- The interactive map view is Android-only — the Map tab is present but does not render a map on desktop
|
||||
- Some Android-specific features (widgets, specific notification channels) are unavailable
|
||||
- Performance may vary on low-spec hardware running Compose Desktop
|
||||
- BLE bonding is not yet supported on desktop (pairing works without bonding)
|
||||
@@ -142,7 +145,7 @@ Requirements:
|
||||
## Related Topics
|
||||
|
||||
- [Connections](connections) — connection methods overview
|
||||
- [Firmware Updates](firmware) — use the [Web Flasher](https://flasher.meshtastic.org) for desktop firmware updates
|
||||
- [Firmware Updates](firmware) — in-app USB update on desktop, or the [Web Flasher](https://flasher.meshtastic.org)
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -44,7 +44,6 @@ Before starting, configure these controls:
|
||||
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**.
|
||||
- The current channel is using the **default channel key** (use a unique key first — see [Messages & Channels](messages-and-channels)).
|
||||
- **No presets** have been selected to scan.
|
||||
- The selected preset uses **2.4 GHz**, which your hardware doesn't support.
|
||||
|
||||
|
||||
@@ -2,8 +2,8 @@
|
||||
title: Firmware Updates
|
||||
parent: User Guide
|
||||
nav_order: 13
|
||||
last_updated: 2026-05-13
|
||||
description: Update your radio firmware over Bluetooth — OTA process, version channels, pre-flight checks, and recovery.
|
||||
last_updated: 2026-07-07
|
||||
description: Update your radio firmware over Bluetooth or USB — OTA process, version channels, pre-flight checks, and recovery.
|
||||
aliases:
|
||||
- firmware
|
||||
- update
|
||||
@@ -17,7 +17,7 @@ Keep your Meshtastic radio up to date with the latest firmware for new features,
|
||||
|
||||
## Checking for Updates
|
||||
|
||||
1. Navigate to **Settings → Firmware Update** or tap the firmware notification if shown.
|
||||
1. Open the connected radio's configuration and, under **Advanced**, tap **Firmware Update** — or tap the firmware notification if one is shown. The entry appears only for OTA-capable devices.
|
||||
2. The app checks for available firmware versions.
|
||||
3. Available updates show the version number and changelog summary.
|
||||
|
||||
@@ -39,19 +39,26 @@ The most common update method for Android users:
|
||||
|
||||

|
||||
|
||||
### USB Flashing
|
||||
### In-App USB Update
|
||||
|
||||
For recovery or when OTA is unavailable:
|
||||
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:
|
||||
|
||||
- Use the [Meshtastic Web Flasher](https://flasher.meshtastic.org)
|
||||
- Or the [Meshtastic CLI tool](https://meshtastic.org/docs/getting-started/flashing-firmware) on desktop
|
||||
|
||||
## Version Channels
|
||||
|
||||
| Canal | Descripció |
|
||||
| ------ | ------------------------------------------- |
|
||||
| Stable | Recommended for most users; tested releases |
|
||||
| Alpha | Preview releases; may contain bugs |
|
||||
| Canal | Descripció |
|
||||
| ---------- | -------------------------------------------------------------------------- |
|
||||
| Stable | Recommended for most users; tested releases |
|
||||
| Alpha | Preview releases; may contain bugs |
|
||||
| Local File | Flash a firmware file you select yourself, instead of a downloaded release |
|
||||
|
||||
## Pre-Update Checklist
|
||||
|
||||
@@ -73,7 +80,7 @@ Once the update succeeds:
|
||||
- The radio will reboot automatically
|
||||
- Bluetooth connection will re-establish
|
||||
- Verify your settings are intact
|
||||
- Check the firmware version in **Settings → About**
|
||||
- Confirm the new version under **Currently Installed** on the Firmware Update screen — it's also shown on the node's detail page and the Connections screen
|
||||
|
||||

|
||||
|
||||
|
||||
@@ -116,12 +116,16 @@ You can search the full history of any conversation directly from the chat scree
|
||||
|
||||

|
||||
|
||||
> 💡 **Tip:** Search is full-text and stays within the conversation you opened it from — it doesn't search across other channels or contacts. Matching is fast even on long histories because messages are indexed locally.
|
||||
> 💡 **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.
|
||||
|
||||
### 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:
|
||||
@@ -143,6 +147,7 @@ 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
|
||||
|
||||
@@ -56,6 +56,8 @@ A gateway node with internet access (WiFi or Ethernet) publishes mesh messages t
|
||||
|
||||
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
|
||||
|
||||
@@ -55,12 +55,15 @@ The BME680 **IAQ (Indoor Air Quality)** index is a single 0–500+ value derived
|
||||
|
||||
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 | Descripció |
|
||||
| --------------------- | ----- | ---------------------------------------------------- |
|
||||
| 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 |
|
||||
| CO₂ | ppm | Carbon dioxide concentration |
|
||||
| Metric | Unit | Descripció |
|
||||
| --------------------- | --------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| 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:
|
||||
|
||||
@@ -98,12 +101,12 @@ Radio signal quality information:
|
||||
|
||||
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:
|
||||
|
||||
| Quality | Criteria |
|
||||
| ------- | ------------------------------------------------ |
|
||||
| Good | SNR above the preset's limit |
|
||||
| Fair | within 5.5 dB below the limit |
|
||||
| Bad | within 7.5 dB below the limit |
|
||||
| None | more than 7.5 dB below the limit |
|
||||
| Quality | Criteria |
|
||||
| ------- | ------------------------------------------------------------------------- |
|
||||
| Good | SNR above the preset's limit |
|
||||
| Fair | up to 5.5 dB below the limit |
|
||||
| Bad | between 5.5 dB and 7.5 dB below the limit |
|
||||
| None | more than 7.5 dB below the limit |
|
||||
|
||||
See [Understanding the Signal Meter](signal-meter) for the full explanation.
|
||||
|
||||
|
||||
@@ -74,6 +74,8 @@ After modifying settings, tap **Save** to write the configuration to your radio.
|
||||
| ~~Long Slow~~ | ~30 km | 0.18 kbps | −17.5 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**:
|
||||
|
||||
@@ -52,12 +52,12 @@ The app rates your signal quality (None, Bad, Fair, or Good) from **SNR alone, m
|
||||
|
||||
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 |
|
||||
| ----- | ---- | ------------------------------------ | ---------------------------------------------------------------------------------------- |
|
||||
| Good | 3 | SNR **above** the preset's `limit` | Signal is comfortably above the demodulation floor — healthy connection. |
|
||||
| Fair | 2 | within `5.5 dB` below the `limit` | Decodable, but getting close to the floor. |
|
||||
| Bad | 1 | within `7.5 dB` below the `limit` | At the very edge of what the preset can recover. |
|
||||
| None | 0 | more than `7.5 dB` below the `limit` | Below the floor — transmission lost to noise. |
|
||||
| Level | Bars | Criteria | Meaning |
|
||||
| ----- | ---- | ----------------------------------------------- | ---------------------------------------------------------------------------------------- |
|
||||
| Good | 3 | SNR **above** the preset's `limit` | Signal is comfortably above the demodulation floor — healthy connection. |
|
||||
| Fair | 2 | up to `5.5 dB` below the `limit` | Decodable, but getting close to the floor. |
|
||||
| Bad | 1 | between `5.5 dB` and `7.5 dB` below the `limit` | At the very edge of what the preset can recover. |
|
||||
| None | 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.
|
||||
|
||||
|
||||
@@ -103,7 +103,9 @@ Nodes with particulate matter or CO₂ sensors report air quality data:
|
||||
| PM10 | µg/m³ | Coarse particulate matter |
|
||||
| CO₂ | ppm | Carbon dioxide concentration |
|
||||
|
||||
The CO₂ reading is color-coded by severity (Good → Stuffy → Poor → Unsafe → Evacuate). See [Node Metrics — Air Quality](node-metrics#air-quality-metrics) for the exact ppm bands and colors.
|
||||
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](node-metrics#air-quality-metrics) 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.
|
||||
|
||||
|
||||
@@ -18,11 +18,11 @@ Contributing translations helps make Meshtastic accessible to a wider audience.
|
||||
|
||||
## What Gets Translated
|
||||
|
||||
| Resource | Source Location | Notes |
|
||||
| ----------------- | ------------------------------------- | ---------------------------------------------------------------------- |
|
||||
| UI strings | `composeResources/values/strings.xml` | Buttons, labels, messages, and all user-visible text |
|
||||
| User Guide pages | `docs/user/*.md` | In-app documentation shown in Help & Documentation |
|
||||
| Fastlane metadata | `fastlane/metadata/android/en-US/` | App Store listing title, description, and changelogs |
|
||||
| Resource | Source Location | Notes |
|
||||
| ----------------- | ------------------------------------------------------------------- | ---------------------------------------------------------------------- |
|
||||
| UI strings | `core/resources/src/commonMain/composeResources/values/strings.xml` | Buttons, labels, messages, and all user-visible text |
|
||||
| User Guide pages | `docs/en/user/*.md` | In-app documentation shown in Help & Documentation |
|
||||
| Fastlane metadata | `fastlane/metadata/android/en-US/` | App Store listing title, description, and changelogs |
|
||||
|
||||
> ⚠️ **Note:** Developer Guide pages are English-only. Code-focused documentation targeting contributors is not translated.
|
||||
|
||||
|
||||
@@ -14,7 +14,7 @@ The Meshtastic app automatically displays temperatures, distances, speeds, and t
|
||||
|
||||
## How It Works
|
||||
|
||||
Meshtastic radios always transmit data in **metric units** (meters, °C, km/h, hPa, etc.). When the app receives this data, it uses the `MetricFormatter` utility to convert and display values in whatever unit system your device's locale specifies.
|
||||
Meshtastic radios always transmit data in **metric units** (meters, °C, km/h, 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`.
|
||||
|
||||
@@ -115,12 +115,13 @@ On Android, your measurement system (metric vs imperial) is tied to your region
|
||||
2. Change your **Region** or **Measurement units** preference
|
||||
3. Return to Meshtastic — values update immediately
|
||||
|
||||
> 💡 **Tip:** The app uses `MetricFormatter` from `core:common`. All measurement formatting is handled by a shared KMP utility that respects your platform's locale. Developers adding new measurement displays should use `MetricFormatter` rather than hard-coding unit conversions.
|
||||
> 💡 **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](node-metrics) — where temperature, distance, and sensor values are displayed
|
||||
- [Telemetry & Sensors](telemetry-and-sensors) — the sensors that produce these measurements
|
||||
- [Measurement & Formatting](../developer/measurement) — developer reference for the formatting utilities
|
||||
- [Settings — Radio & User](settings-radio-user) — region setting that drives unit selection
|
||||
|
||||
---
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
title: Android Auto
|
||||
parent: Uživatelská příručka
|
||||
nav_order: 18
|
||||
last_updated: 2026-06-11
|
||||
last_updated: 2026-07-07
|
||||
description: Use Meshtastic hands-free on an Android Auto head unit — read messages aloud, reply by voice, and check nodes and mesh status while driving.
|
||||
aliases:
|
||||
- android-auto
|
||||
@@ -17,9 +17,11 @@ Meshtastic integrates with Android Auto so you can stay in touch with your mesh
|
||||
|
||||
> ⚠️ **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), Meshtastic appears as a messaging app built with the Android Car App Library. The car interface presents a tabbed Home screen optimized for driving-safe, glanceable use:
|
||||
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.
|
||||
|
||||
@@ -23,7 +23,7 @@ Bluetooth Low Energy is the default and most common connection method on Android
|
||||
|
||||
1. Ensure your Meshtastic radio is powered on and in pairing mode.
|
||||
2. Open the app and navigate to the **Connect** tab.
|
||||
3. Tap **Scan for Devices** — nearby Meshtastic radios will appear.
|
||||
3. Tap **Scan for Bluetooth devices** — nearby Meshtastic radios will appear.
|
||||
4. Select your device from the list.
|
||||
5. Accept the Bluetooth pairing prompt if shown.
|
||||
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
title: Desktop App
|
||||
parent: User Guide
|
||||
nav_order: 14
|
||||
last_updated: 2026-06-11
|
||||
last_updated: 2026-07-07
|
||||
description: Install and use the Meshtastic Desktop app on Linux, macOS, and Windows — connections, feature parity, and keyboard shortcuts.
|
||||
aliases:
|
||||
- desktop
|
||||
@@ -60,19 +60,19 @@ Bluetooth Low Energy is supported on Desktop via the [Kable](https://github.com/
|
||||
|
||||
## Feature Parity
|
||||
|
||||
| Feature | Android | Desktop | Poznámka |
|
||||
| -------------------------------------------- | ------- | ------- | ---------------------------------------------- |
|
||||
| Messaging | ✓ | ✓ | Full parity |
|
||||
| Node List | ✓ | ✓ | Full parity |
|
||||
| Mapa | ✓ | ✓ | Full parity |
|
||||
| Nastavení | ✓ | ✓ | Full parity |
|
||||
| Bluetooth (BLE) | ✓ | ✓ | Via Kable on desktop |
|
||||
| Firmware Update OTA | ✓ | ✗ | Use web flasher |
|
||||
| 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 |
|
||||
| Feature | Android | Desktop | Poznámka |
|
||||
| -------------------------------------------- | ------- | ------- | -------------------------------------------------------------------------- |
|
||||
| Messaging | ✓ | ✓ | Full parity |
|
||||
| Node List | ✓ | ✓ | Full parity |
|
||||
| Mapa | ✓ | ◐ | Map tab exists on desktop, but the interactive map view is Android-only |
|
||||
| Nastavení | ✓ | ✓ | Full parity |
|
||||
| Bluetooth (BLE) | ✓ | ✓ | Via Kable on desktop |
|
||||
| Aktualizace firmware | ✓ | ◐ | Desktop supports in-app USB firmware update; BLE/Wi-Fi OTA is Android-only |
|
||||
| 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.
|
||||
|
||||
@@ -84,14 +84,17 @@ The Desktop app uses the same Compose Multiplatform UI with adaptations for larg
|
||||
|
||||
### Keyboard Shortcuts
|
||||
|
||||
| Shortcut | Action |
|
||||
| ------------------- | ---------------------- |
|
||||
| **⌘Q** / **Ctrl+Q** | Quit the application |
|
||||
| **⌘,** / **Ctrl+,** | Open Settings |
|
||||
| **⌘1** / **Ctrl+1** | Switch to Messages tab |
|
||||
| **⌘2** / **Ctrl+2** | Switch to Nodes tab |
|
||||
| **⌘3** / **Ctrl+3** | Switch to Map tab |
|
||||
| **⌘4** / **Ctrl+4** | Switch to Connect tab |
|
||||
All shortcuts use the **Meta** key — that's ⌘ (Command) on macOS and the Super / Windows key on Linux and Windows. (`Ctrl` is not bound.)
|
||||
|
||||
| Shortcut | Action |
|
||||
| ---------- | ---------------------- |
|
||||
| **Meta+Q** | Quit the application |
|
||||
| **Meta+,** | Open Settings |
|
||||
| **Meta+1** | Switch to Messages tab |
|
||||
| **Meta+2** | Switch to Nodes tab |
|
||||
| **Meta+3** | Switch to Map tab |
|
||||
| **Meta+4** | Switch to Connect tab |
|
||||
| **Meta+/** | Open About |
|
||||
|
||||
### Window & System Tray
|
||||
|
||||
@@ -123,7 +126,6 @@ Individual doc pages render with full formatting:
|
||||
```bash
|
||||
git clone https://github.com/meshtastic/Meshtastic-Android.git
|
||||
cd Meshtastic-Android
|
||||
git submodule update --init
|
||||
./gradlew :desktopApp:run
|
||||
```
|
||||
|
||||
@@ -134,7 +136,8 @@ Požadavky:
|
||||
|
||||
## Known Limitations
|
||||
|
||||
- No OTA firmware updates (use web flasher)
|
||||
- Firmware updates over the air (BLE/Wi-Fi) are Android-only; on desktop, use the in-app USB update or the [Web Flasher](https://flasher.meshtastic.org)
|
||||
- The interactive map view is Android-only — the Map tab is present but does not render a map on desktop
|
||||
- Some Android-specific features (widgets, specific notification channels) are unavailable
|
||||
- Performance may vary on low-spec hardware running Compose Desktop
|
||||
- BLE bonding is not yet supported on desktop (pairing works without bonding)
|
||||
@@ -142,7 +145,7 @@ Požadavky:
|
||||
## Related Topics
|
||||
|
||||
- [Connections](connections) — connection methods overview
|
||||
- [Firmware Updates](firmware) — use the [Web Flasher](https://flasher.meshtastic.org) for desktop firmware updates
|
||||
- [Firmware Updates](firmware) — in-app USB update on desktop, or the [Web Flasher](https://flasher.meshtastic.org)
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -44,7 +44,6 @@ Before starting, configure these controls:
|
||||
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**.
|
||||
- The current channel is using the **default channel key** (use a unique key first — see [Messages & Channels](messages-and-channels)).
|
||||
- **No presets** have been selected to scan.
|
||||
- The selected preset uses **2.4 GHz**, which your hardware doesn't support.
|
||||
|
||||
|
||||
@@ -2,8 +2,8 @@
|
||||
title: Firmware Updates
|
||||
parent: User Guide
|
||||
nav_order: 13
|
||||
last_updated: 2026-05-13
|
||||
description: Update your radio firmware over Bluetooth — OTA process, version channels, pre-flight checks, and recovery.
|
||||
last_updated: 2026-07-07
|
||||
description: Update your radio firmware over Bluetooth or USB — OTA process, version channels, pre-flight checks, and recovery.
|
||||
aliases:
|
||||
- firmware
|
||||
- update
|
||||
@@ -17,7 +17,7 @@ Keep your Meshtastic radio up to date with the latest firmware for new features,
|
||||
|
||||
## Checking for Updates
|
||||
|
||||
1. Navigate to **Settings → Firmware Update** or tap the firmware notification if shown.
|
||||
1. Open the connected radio's configuration and, under **Advanced**, tap **Firmware Update** — or tap the firmware notification if one is shown. The entry appears only for OTA-capable devices.
|
||||
2. The app checks for available firmware versions.
|
||||
3. Available updates show the version number and changelog summary.
|
||||
|
||||
@@ -39,19 +39,26 @@ The most common update method for Android users:
|
||||
|
||||

|
||||
|
||||
### USB Flashing
|
||||
### In-App USB Update
|
||||
|
||||
For recovery or when OTA is unavailable:
|
||||
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:
|
||||
|
||||
- Use the [Meshtastic Web Flasher](https://flasher.meshtastic.org)
|
||||
- Or the [Meshtastic CLI tool](https://meshtastic.org/docs/getting-started/flashing-firmware) on desktop
|
||||
|
||||
## Version Channels
|
||||
|
||||
| Kanál | Popis |
|
||||
| -------- | ------------------------------------------- |
|
||||
| Stabilní | Recommended for most users; tested releases |
|
||||
| Alfa | Preview releases; may contain bugs |
|
||||
| Kanál | Popis |
|
||||
| -------------- | -------------------------------------------------------------------------- |
|
||||
| Stabilní | Recommended for most users; tested releases |
|
||||
| Alfa | Preview releases; may contain bugs |
|
||||
| Lokální soubor | Flash a firmware file you select yourself, instead of a downloaded release |
|
||||
|
||||
## Pre-Update Checklist
|
||||
|
||||
@@ -73,7 +80,7 @@ Once the update succeeds:
|
||||
- The radio will reboot automatically
|
||||
- Bluetooth connection will re-establish
|
||||
- Verify your settings are intact
|
||||
- Check the firmware version in **Settings → About**
|
||||
- Confirm the new version under **Currently Installed** on the Firmware Update screen — it's also shown on the node's detail page and the Connections screen
|
||||
|
||||

|
||||
|
||||
|
||||
@@ -116,12 +116,16 @@ You can search the full history of any conversation directly from the chat scree
|
||||
|
||||

|
||||
|
||||
> 💡 **Tip:** Search is full-text and stays within the conversation you opened it from — it doesn't search across other channels or contacts. Matching is fast even on long histories because messages are indexed locally.
|
||||
> 💡 **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.
|
||||
|
||||
### 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:
|
||||
@@ -143,6 +147,7 @@ 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
|
||||
|
||||
@@ -56,6 +56,8 @@ A gateway node with internet access (WiFi or Ethernet) publishes mesh messages t
|
||||
|
||||
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
|
||||
|
||||
@@ -55,12 +55,15 @@ The BME680 **IAQ (Indoor Air Quality)** index is a single 0–500+ value derived
|
||||
|
||||
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.
|
||||
|
||||
| Metrický | Unit | Popis |
|
||||
| --------------------- | ----- | ---------------------------------------------------- |
|
||||
| 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 |
|
||||
| CO₂ | ppm | Carbon dioxide concentration |
|
||||
| Metrický | Unit | Popis |
|
||||
| --------------------- | --------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| 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:
|
||||
|
||||
@@ -98,12 +101,12 @@ Radio signal quality information:
|
||||
|
||||
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:
|
||||
|
||||
| Quality | Criteria |
|
||||
| ------- | ------------------------------------------------ |
|
||||
| Silný | SNR above the preset's limit |
|
||||
| Slabý | within 5.5 dB below the limit |
|
||||
| Špatný | within 7.5 dB below the limit |
|
||||
| Žádný | more than 7.5 dB below the limit |
|
||||
| Quality | Criteria |
|
||||
| ------- | ------------------------------------------------------------------------- |
|
||||
| Silný | SNR above the preset's limit |
|
||||
| Slabý | up to 5.5 dB below the limit |
|
||||
| Špatný | between 5.5 dB and 7.5 dB below the limit |
|
||||
| Žádný | more than 7.5 dB below the limit |
|
||||
|
||||
See [Understanding the Signal Meter](signal-meter) for the full explanation.
|
||||
|
||||
|
||||
@@ -74,6 +74,8 @@ After modifying settings, tap **Save** to write the configuration to your radio.
|
||||
| ~~Long Slow~~ | ~30 km | 0.18 kbps | −17.5 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**:
|
||||
|
||||
@@ -52,12 +52,12 @@ The app rates your signal quality (None, Bad, Fair, or Good) from **SNR alone, m
|
||||
|
||||
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 |
|
||||
| ------ | ---- | ------------------------------------ | ---------------------------------------------------------------------------------------- |
|
||||
| Silný | 3 | SNR **above** the preset's `limit` | Signal is comfortably above the demodulation floor — healthy connection. |
|
||||
| Slabý | 2 | within `5.5 dB` below the `limit` | Decodable, but getting close to the floor. |
|
||||
| Špatný | 1 | within `7.5 dB` below the `limit` | At the very edge of what the preset can recover. |
|
||||
| Žádný | 0 | more than `7.5 dB` below the `limit` | Below the floor — transmission lost to noise. |
|
||||
| Level | Bars | Criteria | Meaning |
|
||||
| ------ | ---- | ----------------------------------------------- | ---------------------------------------------------------------------------------------- |
|
||||
| Silný | 3 | SNR **above** the preset's `limit` | Signal is comfortably above the demodulation floor — healthy connection. |
|
||||
| Slabý | 2 | up to `5.5 dB` below the `limit` | Decodable, but getting close to the floor. |
|
||||
| Špatný | 1 | between `5.5 dB` and `7.5 dB` below the `limit` | At the very edge of what the preset can recover. |
|
||||
| Žádný | 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.
|
||||
|
||||
|
||||
@@ -103,7 +103,9 @@ Nodes with particulate matter or CO₂ sensors report air quality data:
|
||||
| PM10 | µg/m³ | Coarse particulate matter |
|
||||
| CO₂ | ppm | Carbon dioxide concentration |
|
||||
|
||||
The CO₂ reading is color-coded by severity (Good → Stuffy → Poor → Unsafe → Evacuate). See [Node Metrics — Air Quality](node-metrics#air-quality-metrics) for the exact ppm bands and colors.
|
||||
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](node-metrics#air-quality-metrics) 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.
|
||||
|
||||
|
||||
@@ -18,11 +18,11 @@ Contributing translations helps make Meshtastic accessible to a wider audience.
|
||||
|
||||
## What Gets Translated
|
||||
|
||||
| Resource | Source Location | Poznámka |
|
||||
| ----------------- | ------------------------------------- | ---------------------------------------------------------------------- |
|
||||
| UI strings | `composeResources/values/strings.xml` | Buttons, labels, messages, and all user-visible text |
|
||||
| User Guide pages | `docs/user/*.md` | In-app documentation shown in Help & Documentation |
|
||||
| Fastlane metadata | `fastlane/metadata/android/en-US/` | App Store listing title, description, and changelogs |
|
||||
| Resource | Source Location | Poznámka |
|
||||
| ----------------- | ------------------------------------------------------------------- | ---------------------------------------------------------------------- |
|
||||
| UI strings | `core/resources/src/commonMain/composeResources/values/strings.xml` | Buttons, labels, messages, and all user-visible text |
|
||||
| User Guide pages | `docs/en/user/*.md` | In-app documentation shown in Help & Documentation |
|
||||
| Fastlane metadata | `fastlane/metadata/android/en-US/` | App Store listing title, description, and changelogs |
|
||||
|
||||
> ⚠️ **Note:** Developer Guide pages are English-only. Code-focused documentation targeting contributors is not translated.
|
||||
|
||||
|
||||
@@ -14,7 +14,7 @@ The Meshtastic app automatically displays temperatures, distances, speeds, and t
|
||||
|
||||
## How It Works
|
||||
|
||||
Meshtastic radios always transmit data in **metric units** (meters, °C, km/h, hPa, etc.). When the app receives this data, it uses the `MetricFormatter` utility to convert and display values in whatever unit system your device's locale specifies.
|
||||
Meshtastic radios always transmit data in **metric units** (meters, °C, km/h, 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`.
|
||||
|
||||
@@ -115,12 +115,13 @@ On Android, your measurement system (metric vs imperial) is tied to your region
|
||||
2. Change your **Region** or **Measurement units** preference
|
||||
3. Return to Meshtastic — values update immediately
|
||||
|
||||
> 💡 **Tip:** The app uses `MetricFormatter` from `core:common`. All measurement formatting is handled by a shared KMP utility that respects your platform's locale. Developers adding new measurement displays should use `MetricFormatter` rather than hard-coding unit conversions.
|
||||
> 💡 **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](node-metrics) — where temperature, distance, and sensor values are displayed
|
||||
- [Telemetry & Sensors](telemetry-and-sensors) — the sensors that produce these measurements
|
||||
- [Measurement & Formatting](../developer/measurement) — developer reference for the formatting utilities
|
||||
- [Settings — Radio & User](settings-radio-user) — region setting that drives unit selection
|
||||
|
||||
---
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
title: Android Auto
|
||||
parent: Benutzerhandbuch
|
||||
nav_order: 18
|
||||
last_updated: 2026-06-11
|
||||
last_updated: 2026-07-07
|
||||
description: Use Meshtastic hands-free on an Android Auto head unit — read messages aloud, reply by voice, and check nodes and mesh status while driving.
|
||||
aliases:
|
||||
- android-auto
|
||||
@@ -17,9 +17,11 @@ Meshtastic integrates with Android Auto so you can stay in touch with your mesh
|
||||
|
||||
> ⚠️ **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.
|
||||
|
||||
## Übersicht
|
||||
|
||||
Wenn Ihr Telefon mit einer Android-Auto-Head-Unit (oder dem für die Entwicklung genutzten Desktop-Head-Unit-Emulator) verbunden ist, erscheint Meshtastic als Messaging-App, die auf Basis der Android Car App Bibliothek entwickelt wurde. The car interface presents a tabbed Home screen optimized for driving-safe, glanceable use:
|
||||
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.
|
||||
|
||||
@@ -23,7 +23,7 @@ Bluetooth Low Energy is the default and most common connection method on Android
|
||||
|
||||
1. Ensure your Meshtastic radio is powered on and in pairing mode.
|
||||
2. Open the app and navigate to the **Connect** tab.
|
||||
3. Tap **Scan for Devices** — nearby Meshtastic radios will appear.
|
||||
3. Tap **Scan for Bluetooth devices** — nearby Meshtastic radios will appear.
|
||||
4. Select your device from the list.
|
||||
5. Accept the Bluetooth pairing prompt if shown.
|
||||
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
title: Desktop App
|
||||
parent: User Guide
|
||||
nav_order: 14
|
||||
last_updated: 2026-06-11
|
||||
last_updated: 2026-07-07
|
||||
description: Install and use the Meshtastic Desktop app on Linux, macOS, and Windows — connections, feature parity, and keyboard shortcuts.
|
||||
aliases:
|
||||
- desktop
|
||||
@@ -60,19 +60,19 @@ Bluetooth Low Energy is supported on Desktop via the [Kable](https://github.com/
|
||||
|
||||
## Feature Parity
|
||||
|
||||
| Funktion | Android | Desktop | Knoten |
|
||||
| -------------------------------------------- | ------- | ------- | ---------------------------------------------- |
|
||||
| Messaging | ✓ | ✓ | Full parity |
|
||||
| Node List | ✓ | ✓ | Full parity |
|
||||
| Karte | ✓ | ✓ | Full parity |
|
||||
| Einstellungen | ✓ | ✓ | Full parity |
|
||||
| Bluetooth (BLE) | ✓ | ✓ | Via Kable on desktop |
|
||||
| Firmware Update OTA | ✓ | ✗ | Use web flasher |
|
||||
| Benachrichtigungen | ✓ | ✓ | 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 |
|
||||
| Funktion | Android | Desktop | Knoten |
|
||||
| -------------------------------------------- | ------- | ------- | -------------------------------------------------------------------------- |
|
||||
| Messaging | ✓ | ✓ | Full parity |
|
||||
| Node List | ✓ | ✓ | Full parity |
|
||||
| Karte | ✓ | ◐ | Map tab exists on desktop, but the interactive map view is Android-only |
|
||||
| Einstellungen | ✓ | ✓ | Full parity |
|
||||
| Bluetooth (BLE) | ✓ | ✓ | Via Kable on desktop |
|
||||
| Firmware Aktualisierung | ✓ | ◐ | Desktop supports in-app USB firmware update; BLE/Wi-Fi OTA is Android-only |
|
||||
| Benachrichtigungen | ✓ | ✓ | 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.
|
||||
|
||||
@@ -84,14 +84,17 @@ The Desktop app uses the same Compose Multiplatform UI with adaptations for larg
|
||||
|
||||
### Tastaturkürzel
|
||||
|
||||
| Tastaturkürzel | Action |
|
||||
| ------------------- | ---------------------- |
|
||||
| **⌘Q** / **Ctrl+Q** | Quit the application |
|
||||
| **⌘,** / **Ctrl+,** | Einstellungen öffnen |
|
||||
| **⌘1** / **Ctrl+1** | Switch to Messages tab |
|
||||
| **⌘2** / **Ctrl+2** | Switch to Nodes tab |
|
||||
| **⌘3** / **Ctrl+3** | Switch to Map tab |
|
||||
| **⌘4** / **Ctrl+4** | Switch to Connect tab |
|
||||
All shortcuts use the **Meta** key — that's ⌘ (Command) on macOS and the Super / Windows key on Linux and Windows. (`Ctrl` is not bound.)
|
||||
|
||||
| Tastaturkürzel | Action |
|
||||
| -------------- | ---------------------- |
|
||||
| **Meta+Q** | Quit the application |
|
||||
| **Meta+,** | Einstellungen öffnen |
|
||||
| **Meta+1** | Switch to Messages tab |
|
||||
| **Meta+2** | Switch to Nodes tab |
|
||||
| **Meta+3** | Switch to Map tab |
|
||||
| **Meta+4** | Switch to Connect tab |
|
||||
| **Meta+/** | Open About |
|
||||
|
||||
### Window & System Tray
|
||||
|
||||
@@ -123,7 +126,6 @@ Individual doc pages render with full formatting:
|
||||
```bash
|
||||
git clone https://github.com/meshtastic/Meshtastic-Android.git
|
||||
cd Meshtastic-Android
|
||||
git submodule update --init
|
||||
./gradlew :desktopApp:run
|
||||
```
|
||||
|
||||
@@ -134,7 +136,8 @@ Voraussetzungen:
|
||||
|
||||
## Bekannte Einschränkungen
|
||||
|
||||
- No OTA firmware updates (use web flasher)
|
||||
- Firmware updates over the air (BLE/Wi-Fi) are Android-only; on desktop, use the in-app USB update or the [Web Flasher](https://flasher.meshtastic.org)
|
||||
- The interactive map view is Android-only — the Map tab is present but does not render a map on desktop
|
||||
- Some Android-specific features (widgets, specific notification channels) are unavailable
|
||||
- Performance may vary on low-spec hardware running Compose Desktop
|
||||
- BLE bonding is not yet supported on desktop (pairing works without bonding)
|
||||
@@ -142,7 +145,7 @@ Voraussetzungen:
|
||||
## Related Topics
|
||||
|
||||
- [Connections](connections) — connection methods overview
|
||||
- [Firmware Updates](firmware) — use the [Web Flasher](https://flasher.meshtastic.org) for desktop firmware updates
|
||||
- [Firmware Updates](firmware) — in-app USB update on desktop, or the [Web Flasher](https://flasher.meshtastic.org)
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -44,7 +44,6 @@ Before starting, configure these controls:
|
||||
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**.
|
||||
- The current channel is using the **default channel key** (use a unique key first — see [Messages & Channels](messages-and-channels)).
|
||||
- **No presets** have been selected to scan.
|
||||
- The selected preset uses **2.4 GHz**, which your hardware doesn't support.
|
||||
|
||||
|
||||
@@ -2,8 +2,8 @@
|
||||
title: Firmwareaktualisierungen
|
||||
parent: User Guide
|
||||
nav_order: 13
|
||||
last_updated: 2026-05-13
|
||||
description: Update your radio firmware over Bluetooth — OTA process, version channels, pre-flight checks, and recovery.
|
||||
last_updated: 2026-07-07
|
||||
description: Update your radio firmware over Bluetooth or USB — OTA process, version channels, pre-flight checks, and recovery.
|
||||
aliases:
|
||||
- firmware
|
||||
- update
|
||||
@@ -17,7 +17,7 @@ Keep your Meshtastic radio up to date with the latest firmware for new features,
|
||||
|
||||
## Checking for Updates
|
||||
|
||||
1. Navigate to **Settings → Firmware Update** or tap the firmware notification if shown.
|
||||
1. Open the connected radio's configuration and, under **Advanced**, tap **Firmware Update** — or tap the firmware notification if one is shown. The entry appears only for OTA-capable devices.
|
||||
2. The app checks for available firmware versions.
|
||||
3. Available updates show the version number and changelog summary.
|
||||
|
||||
@@ -39,19 +39,26 @@ The most common update method for Android users:
|
||||
|
||||

|
||||
|
||||
### USB Flashing
|
||||
### In-App USB Update
|
||||
|
||||
For recovery or when OTA is unavailable:
|
||||
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:
|
||||
|
||||
- Use the [Meshtastic Web Flasher](https://flasher.meshtastic.org)
|
||||
- Or the [Meshtastic CLI tool](https://meshtastic.org/docs/getting-started/flashing-firmware) on desktop
|
||||
|
||||
## Version Channels
|
||||
|
||||
| Kanal | Beschreibung |
|
||||
| ------ | ------------------------------------------- |
|
||||
| Stabil | Recommended for most users; tested releases |
|
||||
| Alpha | Preview releases; may contain bugs |
|
||||
| Kanal | Beschreibung |
|
||||
| ------------ | -------------------------------------------------------------------------- |
|
||||
| Stabil | Recommended for most users; tested releases |
|
||||
| Alpha | Preview releases; may contain bugs |
|
||||
| Lokale Datei | Flash a firmware file you select yourself, instead of a downloaded release |
|
||||
|
||||
## Pre-Update Checklist
|
||||
|
||||
@@ -73,7 +80,7 @@ Once the update succeeds:
|
||||
- The radio will reboot automatically
|
||||
- Bluetooth connection will re-establish
|
||||
- Verify your settings are intact
|
||||
- Check the firmware version in **Settings → About**
|
||||
- Confirm the new version under **Currently Installed** on the Firmware Update screen — it's also shown on the node's detail page and the Connections screen
|
||||
|
||||

|
||||
|
||||
|
||||
@@ -116,12 +116,16 @@ You can search the full history of any conversation directly from the chat scree
|
||||
|
||||

|
||||
|
||||
> 💡 **Tip:** Search is full-text and stays within the conversation you opened it from — it doesn't search across other channels or contacts. Matching is fast even on long histories because messages are indexed locally.
|
||||
> 💡 **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.
|
||||
|
||||
### 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:
|
||||
@@ -143,6 +147,7 @@ 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
|
||||
|
||||
@@ -56,6 +56,8 @@ A gateway node with internet access (WiFi or Ethernet) publishes mesh messages t
|
||||
|
||||
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
|
||||
|
||||
@@ -55,12 +55,15 @@ Der **IAQ-Index (Indoor Air Quality / Raumluftqualität)** des BME680 ist ein ei
|
||||
|
||||
Air Quality is a dedicated metrics view for nodes equipped with a particulate-matter and/or CO₂ sensor. Dies ist **unabhängig vom BME680-IAQ-Messwert**, der unter „Environment Metrics“ (Umgebungsmesswerte) aufgeführt ist – IAQ ist ein einzelner, aus dem Gaswiderstand abgeleiteter Index, während die Luftqualitätsansicht die zugrundeliegenden Messwerte für Feinstaub und CO₂ grafisch darstellt.
|
||||
|
||||
| Metrisch | Einheit | Beschreibung |
|
||||
| --------------------- | ------- | ---------------------------------------------------- |
|
||||
| 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 |
|
||||
| CO₂ | ppm | Carbon dioxide concentration |
|
||||
| Metrisch | Einheit | Beschreibung |
|
||||
| --------------------- | --------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| 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:
|
||||
|
||||
@@ -98,12 +101,12 @@ Radio signal quality information:
|
||||
|
||||
Die Signalqualität wird auf der Grundlage des **Signal-Rauschabstand im Verhältnis zur Demodulationsschwelle der aktiven LoRa-Modem-Voreinstellung** bewertet, nicht anhand fester Schwellenwerte – ein bestimmter Wert des Signal-Rauschabstand hat je nach Voreinstellung unterschiedliche Bedeutungen (z. B. sind −15 dB bei „LongSlow“ in Ordnung, bei „ShortFast“ jedoch unbrauchbar). RSSI is shown but is not part of the rating. Letting `limit` be the preset's SNR limit:
|
||||
|
||||
| Quality | Criteria |
|
||||
| ------------------------ | ------------------------------------------------ |
|
||||
| Gut | SNR above the preset's limit |
|
||||
| Ordentliche Signalstärke | within 5.5 dB below the limit |
|
||||
| Schlecht | within 7.5 dB below the limit |
|
||||
| Keins | more than 7.5 dB below the limit |
|
||||
| Quality | Criteria |
|
||||
| ------------------------ | ------------------------------------------------------------------------- |
|
||||
| Gut | SNR above the preset's limit |
|
||||
| Ordentliche Signalstärke | up to 5.5 dB below the limit |
|
||||
| Schlecht | between 5.5 dB and 7.5 dB below the limit |
|
||||
| Keins | more than 7.5 dB below the limit |
|
||||
|
||||
See [Understanding the Signal Meter](signal-meter) for the full explanation.
|
||||
|
||||
|
||||
@@ -74,6 +74,8 @@ After modifying settings, tap **Save** to write the configuration to your radio.
|
||||
| ~~Long Slow~~ | ~30 km | 0,18 kbit/s | −17.5 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**:
|
||||
|
||||
@@ -52,12 +52,12 @@ The app rates your signal quality (None, Bad, Fair, or Good) from **SNR alone, m
|
||||
|
||||
Da die Bewertung relativ zum voreingestellten Grenzwert erfolgt, kann _derselbe_ Signal-Rauschabstand je nach Voreinstellung unterschiedlich bewertet werden: `-15 dB` gelten bei `LongSlow` als guter Wert, sind jedoch bei `ShortFast` unbrauchbar. Letting `limit` be the active preset's SNR Limit, here is how the app picks the bars (or color):
|
||||
|
||||
| Niveau | Balken | Criteria | Meaning |
|
||||
| ------------------------ | ------ | ------------------------------------ | ---------------------------------------------------------------------------------------- |
|
||||
| Gut | 3 | SNR **above** the preset's `limit` | Signal is comfortably above the demodulation floor — healthy connection. |
|
||||
| Ordentliche Signalstärke | 2 | within `5.5 dB` below the `limit` | Decodable, but getting close to the floor. |
|
||||
| Schlecht | 1 | within `7.5 dB` below the `limit` | At the very edge of what the preset can recover. |
|
||||
| Keins | 0 | more than `7.5 dB` below the `limit` | Below the floor — transmission lost to noise. |
|
||||
| Niveau | Balken | Criteria | Meaning |
|
||||
| ------------------------ | ------ | ----------------------------------------------- | ---------------------------------------------------------------------------------------- |
|
||||
| Gut | 3 | SNR **above** the preset's `limit` | Signal is comfortably above the demodulation floor — healthy connection. |
|
||||
| Ordentliche Signalstärke | 2 | up to `5.5 dB` below the `limit` | Decodable, but getting close to the floor. |
|
||||
| Schlecht | 1 | between `5.5 dB` and `7.5 dB` below the `limit` | At the very edge of what the preset can recover. |
|
||||
| Keins | 0 | more than `7.5 dB` below the `limit` | Below the floor — transmission lost to noise. |
|
||||
|
||||
> **Hinweis:** Die festen Schwellenwerte des Signal-Rauschabstandes, die Sie möglicherweise an anderer Stelle gesehen haben (`-7 dB` / `-15 dB`), werden mittlerweile nur noch zur farblichen Kennzeichnung einzelner Sprünge in Traceroute Ergebnissen verwendet – nicht für die hier beschriebene Signalstärkeanzeige pro Knoten.
|
||||
|
||||
|
||||
@@ -103,7 +103,9 @@ Nodes with particulate matter or CO₂ sensors report air quality data:
|
||||
| PM10 | µg/m³ | Coarse particulate matter |
|
||||
| CO₂ | ppm | Carbon dioxide concentration |
|
||||
|
||||
The CO₂ reading is color-coded by severity (Good → Stuffy → Poor → Unsafe → Evacuate). See [Node Metrics — Air Quality](node-metrics#air-quality-metrics) for the exact ppm bands and colors.
|
||||
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](node-metrics#air-quality-metrics) 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.
|
||||
|
||||
|
||||
@@ -18,11 +18,11 @@ Contributing translations helps make Meshtastic accessible to a wider audience.
|
||||
|
||||
## What Gets Translated
|
||||
|
||||
| Resource | Source Location | Knoten |
|
||||
| ----------------- | ------------------------------------- | ---------------------------------------------------------------------- |
|
||||
| UI strings | `composeResources/values/strings.xml` | Buttons, labels, messages, and all user-visible text |
|
||||
| User Guide pages | `docs/user/*.md` | In-app documentation shown in Help & Documentation |
|
||||
| Fastlane metadata | `fastlane/metadata/android/en-US/` | App Store listing title, description, and changelogs |
|
||||
| Resource | Source Location | Knoten |
|
||||
| ----------------- | ------------------------------------------------------------------- | ---------------------------------------------------------------------- |
|
||||
| UI strings | `core/resources/src/commonMain/composeResources/values/strings.xml` | Buttons, labels, messages, and all user-visible text |
|
||||
| User Guide pages | `docs/en/user/*.md` | In-app documentation shown in Help & Documentation |
|
||||
| Fastlane metadata | `fastlane/metadata/android/en-US/` | App Store listing title, description, and changelogs |
|
||||
|
||||
> ⚠️ **Note:** Developer Guide pages are English-only. Code-focused documentation targeting contributors is not translated.
|
||||
|
||||
|
||||
@@ -14,7 +14,7 @@ Die Meshtastic-App zeigt Temperaturen, Entfernungen, Geschwindigkeiten und Zeite
|
||||
|
||||
## So funktioniert's
|
||||
|
||||
Meshtastic radios always transmit data in **metric units** (meters, °C, km/h, hPa, etc.). When the app receives this data, it uses the `MetricFormatter` utility to convert and display values in whatever unit system your device's locale specifies.
|
||||
Meshtastic radios always transmit data in **metric units** (meters, °C, km/h, 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`.
|
||||
|
||||
@@ -115,12 +115,13 @@ On Android, your measurement system (metric vs imperial) is tied to your region
|
||||
2. Change your **Region** or **Measurement units** preference
|
||||
3. Return to Meshtastic — values update immediately
|
||||
|
||||
> 💡 **Tip:** The app uses `MetricFormatter` from `core:common`. All measurement formatting is handled by a shared KMP utility that respects your platform's locale. Developers adding new measurement displays should use `MetricFormatter` rather than hard-coding unit conversions.
|
||||
> 💡 **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](node-metrics) — where temperature, distance, and sensor values are displayed
|
||||
- [Telemetry & Sensors](telemetry-and-sensors) — the sensors that produce these measurements
|
||||
- [Measurement & Formatting](../developer/measurement) — developer reference for the formatting utilities
|
||||
- [Settings — Radio & User](settings-radio-user) — region setting that drives unit selection
|
||||
|
||||
---
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
title: Android Auto
|
||||
parent: User Guide
|
||||
nav_order: 18
|
||||
last_updated: 2026-06-11
|
||||
last_updated: 2026-07-07
|
||||
description: Use Meshtastic hands-free on an Android Auto head unit — read messages aloud, reply by voice, and check nodes and mesh status while driving.
|
||||
aliases:
|
||||
- android-auto
|
||||
@@ -17,9 +17,11 @@ Meshtastic integrates with Android Auto so you can stay in touch with your mesh
|
||||
|
||||
> ⚠️ **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), Meshtastic appears as a messaging app built with the Android Car App Library. The car interface presents a tabbed Home screen optimized for driving-safe, glanceable use:
|
||||
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.
|
||||
|
||||
@@ -23,7 +23,7 @@ Bluetooth Low Energy is the default and most common connection method on Android
|
||||
|
||||
1. Ensure your Meshtastic radio is powered on and in pairing mode.
|
||||
2. Open the app and navigate to the **Connect** tab.
|
||||
3. Tap **Scan for Devices** — nearby Meshtastic radios will appear.
|
||||
3. Tap **Scan for Bluetooth devices** — nearby Meshtastic radios will appear.
|
||||
4. Select your device from the list.
|
||||
5. Accept the Bluetooth pairing prompt if shown.
|
||||
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
title: Desktop App
|
||||
parent: User Guide
|
||||
nav_order: 14
|
||||
last_updated: 2026-06-11
|
||||
last_updated: 2026-07-07
|
||||
description: Install and use the Meshtastic Desktop app on Linux, macOS, and Windows — connections, feature parity, and keyboard shortcuts.
|
||||
aliases:
|
||||
- desktop
|
||||
@@ -60,19 +60,19 @@ Bluetooth Low Energy is supported on Desktop via the [Kable](https://github.com/
|
||||
|
||||
## Feature Parity
|
||||
|
||||
| Feature | Android | Desktop | Notes |
|
||||
| -------------------------------------------- | ------- | ------- | ---------------------------------------------- |
|
||||
| Messaging | ✓ | ✓ | Full parity |
|
||||
| Node List | ✓ | ✓ | Full parity |
|
||||
| Χάρτης | ✓ | ✓ | Full parity |
|
||||
| Ρυθμίσεις | ✓ | ✓ | Full parity |
|
||||
| Bluetooth (BLE) | ✓ | ✓ | Via Kable on desktop |
|
||||
| Firmware Update OTA | ✓ | ✗ | Use web flasher |
|
||||
| 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 |
|
||||
| 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 | ✓ | ◐ | Desktop supports in-app USB firmware update; BLE/Wi-Fi OTA is Android-only |
|
||||
| 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.
|
||||
|
||||
@@ -84,14 +84,17 @@ The Desktop app uses the same Compose Multiplatform UI with adaptations for larg
|
||||
|
||||
### Keyboard Shortcuts
|
||||
|
||||
| Shortcut | Action |
|
||||
| ------------------- | ---------------------- |
|
||||
| **⌘Q** / **Ctrl+Q** | Quit the application |
|
||||
| **⌘,** / **Ctrl+,** | Open Settings |
|
||||
| **⌘1** / **Ctrl+1** | Switch to Messages tab |
|
||||
| **⌘2** / **Ctrl+2** | Switch to Nodes tab |
|
||||
| **⌘3** / **Ctrl+3** | Switch to Map tab |
|
||||
| **⌘4** / **Ctrl+4** | Switch to Connect tab |
|
||||
All shortcuts use the **Meta** key — that's ⌘ (Command) on macOS and the Super / Windows key on Linux and Windows. (`Ctrl` is not bound.)
|
||||
|
||||
| Shortcut | Action |
|
||||
| ---------- | ---------------------- |
|
||||
| **Meta+Q** | Quit the application |
|
||||
| **Meta+,** | Open Settings |
|
||||
| **Meta+1** | Switch to Messages tab |
|
||||
| **Meta+2** | Switch to Nodes tab |
|
||||
| **Meta+3** | Switch to Map tab |
|
||||
| **Meta+4** | Switch to Connect tab |
|
||||
| **Meta+/** | Open About |
|
||||
|
||||
### Window & System Tray
|
||||
|
||||
@@ -123,7 +126,6 @@ Individual doc pages render with full formatting:
|
||||
```bash
|
||||
git clone https://github.com/meshtastic/Meshtastic-Android.git
|
||||
cd Meshtastic-Android
|
||||
git submodule update --init
|
||||
./gradlew :desktopApp:run
|
||||
```
|
||||
|
||||
@@ -134,7 +136,8 @@ Requirements:
|
||||
|
||||
## Known Limitations
|
||||
|
||||
- No OTA firmware updates (use web flasher)
|
||||
- Firmware updates over the air (BLE/Wi-Fi) are Android-only; on desktop, use the in-app USB update or the [Web Flasher](https://flasher.meshtastic.org)
|
||||
- The interactive map view is Android-only — the Map tab is present but does not render a map on desktop
|
||||
- Some Android-specific features (widgets, specific notification channels) are unavailable
|
||||
- Performance may vary on low-spec hardware running Compose Desktop
|
||||
- BLE bonding is not yet supported on desktop (pairing works without bonding)
|
||||
@@ -142,7 +145,7 @@ Requirements:
|
||||
## Related Topics
|
||||
|
||||
- [Connections](connections) — connection methods overview
|
||||
- [Firmware Updates](firmware) — use the [Web Flasher](https://flasher.meshtastic.org) for desktop firmware updates
|
||||
- [Firmware Updates](firmware) — in-app USB update on desktop, or the [Web Flasher](https://flasher.meshtastic.org)
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -44,7 +44,6 @@ Before starting, configure these controls:
|
||||
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**.
|
||||
- The current channel is using the **default channel key** (use a unique key first — see [Messages & Channels](messages-and-channels)).
|
||||
- **No presets** have been selected to scan.
|
||||
- The selected preset uses **2.4 GHz**, which your hardware doesn't support.
|
||||
|
||||
|
||||
@@ -2,8 +2,8 @@
|
||||
title: Firmware Updates
|
||||
parent: User Guide
|
||||
nav_order: 13
|
||||
last_updated: 2026-05-13
|
||||
description: Update your radio firmware over Bluetooth — OTA process, version channels, pre-flight checks, and recovery.
|
||||
last_updated: 2026-07-07
|
||||
description: Update your radio firmware over Bluetooth or USB — OTA process, version channels, pre-flight checks, and recovery.
|
||||
aliases:
|
||||
- firmware
|
||||
- update
|
||||
@@ -17,7 +17,7 @@ Keep your Meshtastic radio up to date with the latest firmware for new features,
|
||||
|
||||
## Checking for Updates
|
||||
|
||||
1. Navigate to **Settings → Firmware Update** or tap the firmware notification if shown.
|
||||
1. Open the connected radio's configuration and, under **Advanced**, tap **Firmware Update** — or tap the firmware notification if one is shown. The entry appears only for OTA-capable devices.
|
||||
2. The app checks for available firmware versions.
|
||||
3. Available updates show the version number and changelog summary.
|
||||
|
||||
@@ -39,19 +39,26 @@ The most common update method for Android users:
|
||||
|
||||

|
||||
|
||||
### USB Flashing
|
||||
### In-App USB Update
|
||||
|
||||
For recovery or when OTA is unavailable:
|
||||
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:
|
||||
|
||||
- Use the [Meshtastic Web Flasher](https://flasher.meshtastic.org)
|
||||
- Or the [Meshtastic CLI tool](https://meshtastic.org/docs/getting-started/flashing-firmware) on desktop
|
||||
|
||||
## Version Channels
|
||||
|
||||
| Κανάλι | Περιγραφή |
|
||||
| ------ | ------------------------------------------- |
|
||||
| Stable | Recommended for most users; tested releases |
|
||||
| Alpha | Preview releases; may contain bugs |
|
||||
| Κανάλι | Περιγραφή |
|
||||
| ---------- | -------------------------------------------------------------------------- |
|
||||
| Stable | Recommended for most users; tested releases |
|
||||
| Alpha | Preview releases; may contain bugs |
|
||||
| Local File | Flash a firmware file you select yourself, instead of a downloaded release |
|
||||
|
||||
## Pre-Update Checklist
|
||||
|
||||
@@ -73,7 +80,7 @@ Once the update succeeds:
|
||||
- The radio will reboot automatically
|
||||
- Bluetooth connection will re-establish
|
||||
- Verify your settings are intact
|
||||
- Check the firmware version in **Settings → About**
|
||||
- Confirm the new version under **Currently Installed** on the Firmware Update screen — it's also shown on the node's detail page and the Connections screen
|
||||
|
||||

|
||||
|
||||
|
||||
@@ -116,12 +116,16 @@ You can search the full history of any conversation directly from the chat scree
|
||||
|
||||

|
||||
|
||||
> 💡 **Tip:** Search is full-text and stays within the conversation you opened it from — it doesn't search across other channels or contacts. Matching is fast even on long histories because messages are indexed locally.
|
||||
> 💡 **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.
|
||||
|
||||
### 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:
|
||||
@@ -143,6 +147,7 @@ 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
|
||||
|
||||
@@ -56,6 +56,8 @@ A gateway node with internet access (WiFi or Ethernet) publishes mesh messages t
|
||||
|
||||
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
|
||||
|
||||
@@ -55,12 +55,15 @@ The BME680 **IAQ (Indoor Air Quality)** index is a single 0–500+ value derived
|
||||
|
||||
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 |
|
||||
| CO₂ | ppm | Carbon dioxide concentration |
|
||||
| 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:
|
||||
|
||||
@@ -98,12 +101,12 @@ Radio signal quality information:
|
||||
|
||||
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:
|
||||
|
||||
| Quality | Criteria |
|
||||
| ------- | ------------------------------------------------ |
|
||||
| Good | SNR above the preset's limit |
|
||||
| Fair | within 5.5 dB below the limit |
|
||||
| Bad | within 7.5 dB below the limit |
|
||||
| None | more than 7.5 dB below the limit |
|
||||
| Quality | Criteria |
|
||||
| ------- | ------------------------------------------------------------------------- |
|
||||
| Good | SNR above the preset's limit |
|
||||
| Fair | up to 5.5 dB below the limit |
|
||||
| Bad | between 5.5 dB and 7.5 dB below the limit |
|
||||
| None | more than 7.5 dB below the limit |
|
||||
|
||||
See [Understanding the Signal Meter](signal-meter) for the full explanation.
|
||||
|
||||
|
||||
@@ -74,6 +74,8 @@ After modifying settings, tap **Save** to write the configuration to your radio.
|
||||
| ~~Long Slow~~ | ~30 km | 0.18 kbps | −17.5 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**:
|
||||
|
||||
@@ -52,12 +52,12 @@ The app rates your signal quality (None, Bad, Fair, or Good) from **SNR alone, m
|
||||
|
||||
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 |
|
||||
| ----- | ---- | ------------------------------------ | ---------------------------------------------------------------------------------------- |
|
||||
| Good | 3 | SNR **above** the preset's `limit` | Signal is comfortably above the demodulation floor — healthy connection. |
|
||||
| Fair | 2 | within `5.5 dB` below the `limit` | Decodable, but getting close to the floor. |
|
||||
| Bad | 1 | within `7.5 dB` below the `limit` | At the very edge of what the preset can recover. |
|
||||
| None | 0 | more than `7.5 dB` below the `limit` | Below the floor — transmission lost to noise. |
|
||||
| Level | Bars | Criteria | Meaning |
|
||||
| ----- | ---- | ----------------------------------------------- | ---------------------------------------------------------------------------------------- |
|
||||
| Good | 3 | SNR **above** the preset's `limit` | Signal is comfortably above the demodulation floor — healthy connection. |
|
||||
| Fair | 2 | up to `5.5 dB` below the `limit` | Decodable, but getting close to the floor. |
|
||||
| Bad | 1 | between `5.5 dB` and `7.5 dB` below the `limit` | At the very edge of what the preset can recover. |
|
||||
| None | 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.
|
||||
|
||||
|
||||
@@ -103,7 +103,9 @@ Nodes with particulate matter or CO₂ sensors report air quality data:
|
||||
| PM10 | µg/m³ | Coarse particulate matter |
|
||||
| CO₂ | ppm | Carbon dioxide concentration |
|
||||
|
||||
The CO₂ reading is color-coded by severity (Good → Stuffy → Poor → Unsafe → Evacuate). See [Node Metrics — Air Quality](node-metrics#air-quality-metrics) for the exact ppm bands and colors.
|
||||
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](node-metrics#air-quality-metrics) 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.
|
||||
|
||||
|
||||
@@ -18,11 +18,11 @@ Contributing translations helps make Meshtastic accessible to a wider audience.
|
||||
|
||||
## What Gets Translated
|
||||
|
||||
| Resource | Source Location | Notes |
|
||||
| ----------------- | ------------------------------------- | ---------------------------------------------------------------------- |
|
||||
| UI strings | `composeResources/values/strings.xml` | Buttons, labels, messages, and all user-visible text |
|
||||
| User Guide pages | `docs/user/*.md` | In-app documentation shown in Help & Documentation |
|
||||
| Fastlane metadata | `fastlane/metadata/android/en-US/` | App Store listing title, description, and changelogs |
|
||||
| Resource | Source Location | Notes |
|
||||
| ----------------- | ------------------------------------------------------------------- | ---------------------------------------------------------------------- |
|
||||
| UI strings | `core/resources/src/commonMain/composeResources/values/strings.xml` | Buttons, labels, messages, and all user-visible text |
|
||||
| User Guide pages | `docs/en/user/*.md` | In-app documentation shown in Help & Documentation |
|
||||
| Fastlane metadata | `fastlane/metadata/android/en-US/` | App Store listing title, description, and changelogs |
|
||||
|
||||
> ⚠️ **Note:** Developer Guide pages are English-only. Code-focused documentation targeting contributors is not translated.
|
||||
|
||||
|
||||
@@ -14,7 +14,7 @@ The Meshtastic app automatically displays temperatures, distances, speeds, and t
|
||||
|
||||
## How It Works
|
||||
|
||||
Meshtastic radios always transmit data in **metric units** (meters, °C, km/h, hPa, etc.). When the app receives this data, it uses the `MetricFormatter` utility to convert and display values in whatever unit system your device's locale specifies.
|
||||
Meshtastic radios always transmit data in **metric units** (meters, °C, km/h, 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`.
|
||||
|
||||
@@ -115,12 +115,13 @@ On Android, your measurement system (metric vs imperial) is tied to your region
|
||||
2. Change your **Region** or **Measurement units** preference
|
||||
3. Return to Meshtastic — values update immediately
|
||||
|
||||
> 💡 **Tip:** The app uses `MetricFormatter` from `core:common`. All measurement formatting is handled by a shared KMP utility that respects your platform's locale. Developers adding new measurement displays should use `MetricFormatter` rather than hard-coding unit conversions.
|
||||
> 💡 **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](node-metrics) — where temperature, distance, and sensor values are displayed
|
||||
- [Telemetry & Sensors](telemetry-and-sensors) — the sensors that produce these measurements
|
||||
- [Measurement & Formatting](../developer/measurement) — developer reference for the formatting utilities
|
||||
- [Settings — Radio & User](settings-radio-user) — region setting that drives unit selection
|
||||
|
||||
---
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
title: Android Auto
|
||||
parent: User Guide
|
||||
nav_order: 18
|
||||
last_updated: 2026-06-11
|
||||
last_updated: 2026-07-07
|
||||
description: Use Meshtastic hands-free on an Android Auto head unit — read messages aloud, reply by voice, and check nodes and mesh status while driving.
|
||||
aliases:
|
||||
- android-auto
|
||||
@@ -17,9 +17,11 @@ Meshtastic integrates with Android Auto so you can stay in touch with your mesh
|
||||
|
||||
> ⚠️ **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.
|
||||
|
||||
## Visión general
|
||||
|
||||
When your phone is connected to an Android Auto head unit (or the Desktop Head Unit emulator used for development), Meshtastic appears as a messaging app built with the Android Car App Library. The car interface presents a tabbed Home screen optimized for driving-safe, glanceable use:
|
||||
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.
|
||||
|
||||
@@ -23,7 +23,7 @@ Bluetooth Low Energy is the default and most common connection method on Android
|
||||
|
||||
1. Ensure your Meshtastic radio is powered on and in pairing mode.
|
||||
2. Open the app and navigate to the **Connect** tab.
|
||||
3. Tap **Scan for Devices** — nearby Meshtastic radios will appear.
|
||||
3. Tap **Scan for Bluetooth devices** — nearby Meshtastic radios will appear.
|
||||
4. Select your device from the list.
|
||||
5. Accept the Bluetooth pairing prompt if shown.
|
||||
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
title: Desktop App
|
||||
parent: User Guide
|
||||
nav_order: 14
|
||||
last_updated: 2026-06-11
|
||||
last_updated: 2026-07-07
|
||||
description: Install and use the Meshtastic Desktop app on Linux, macOS, and Windows — connections, feature parity, and keyboard shortcuts.
|
||||
aliases:
|
||||
- desktop
|
||||
@@ -60,19 +60,19 @@ Bluetooth Low Energy is supported on Desktop via the [Kable](https://github.com/
|
||||
|
||||
## Feature Parity
|
||||
|
||||
| Feature | Android | Desktop | Notas |
|
||||
| -------------------------------------------- | ------- | ------- | ---------------------------------------------- |
|
||||
| Messaging | ✓ | ✓ | Full parity |
|
||||
| Node List | ✓ | ✓ | Full parity |
|
||||
| Mapa | ✓ | ✓ | Full parity |
|
||||
| Ajustes | ✓ | ✓ | Full parity |
|
||||
| Bluetooth (BLE) | ✓ | ✓ | Via Kable on desktop |
|
||||
| Firmware Update OTA | ✓ | ✗ | Use web flasher |
|
||||
| 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 |
|
||||
| Feature | Android | Desktop | Notas |
|
||||
| -------------------------------------------- | ------- | ------- | -------------------------------------------------------------------------- |
|
||||
| Messaging | ✓ | ✓ | Full parity |
|
||||
| Node List | ✓ | ✓ | Full parity |
|
||||
| Mapa | ✓ | ◐ | Map tab exists on desktop, but the interactive map view is Android-only |
|
||||
| Ajustes | ✓ | ✓ | Full parity |
|
||||
| Bluetooth (BLE) | ✓ | ✓ | Via Kable on desktop |
|
||||
| Actualización de firmware | ✓ | ◐ | Desktop supports in-app USB firmware update; BLE/Wi-Fi OTA is Android-only |
|
||||
| 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.
|
||||
|
||||
@@ -84,14 +84,17 @@ The Desktop app uses the same Compose Multiplatform UI with adaptations for larg
|
||||
|
||||
### Keyboard Shortcuts
|
||||
|
||||
| Shortcut | Action |
|
||||
| ------------------- | ---------------------- |
|
||||
| **⌘Q** / **Ctrl+Q** | Quit the application |
|
||||
| **⌘,** / **Ctrl+,** | Open Settings |
|
||||
| **⌘1** / **Ctrl+1** | Switch to Messages tab |
|
||||
| **⌘2** / **Ctrl+2** | Switch to Nodes tab |
|
||||
| **⌘3** / **Ctrl+3** | Switch to Map tab |
|
||||
| **⌘4** / **Ctrl+4** | Switch to Connect tab |
|
||||
All shortcuts use the **Meta** key — that's ⌘ (Command) on macOS and the Super / Windows key on Linux and Windows. (`Ctrl` is not bound.)
|
||||
|
||||
| Shortcut | Action |
|
||||
| ---------- | ---------------------- |
|
||||
| **Meta+Q** | Quit the application |
|
||||
| **Meta+,** | Open Settings |
|
||||
| **Meta+1** | Switch to Messages tab |
|
||||
| **Meta+2** | Switch to Nodes tab |
|
||||
| **Meta+3** | Switch to Map tab |
|
||||
| **Meta+4** | Switch to Connect tab |
|
||||
| **Meta+/** | Open About |
|
||||
|
||||
### Window & System Tray
|
||||
|
||||
@@ -123,7 +126,6 @@ Individual doc pages render with full formatting:
|
||||
```bash
|
||||
git clone https://github.com/meshtastic/Meshtastic-Android.git
|
||||
cd Meshtastic-Android
|
||||
git submodule update --init
|
||||
./gradlew :desktopApp:run
|
||||
```
|
||||
|
||||
@@ -134,7 +136,8 @@ Requirements:
|
||||
|
||||
## Known Limitations
|
||||
|
||||
- No OTA firmware updates (use web flasher)
|
||||
- Firmware updates over the air (BLE/Wi-Fi) are Android-only; on desktop, use the in-app USB update or the [Web Flasher](https://flasher.meshtastic.org)
|
||||
- The interactive map view is Android-only — the Map tab is present but does not render a map on desktop
|
||||
- Some Android-specific features (widgets, specific notification channels) are unavailable
|
||||
- Performance may vary on low-spec hardware running Compose Desktop
|
||||
- BLE bonding is not yet supported on desktop (pairing works without bonding)
|
||||
@@ -142,7 +145,7 @@ Requirements:
|
||||
## Related Topics
|
||||
|
||||
- [Connections](connections) — connection methods overview
|
||||
- [Firmware Updates](firmware) — use the [Web Flasher](https://flasher.meshtastic.org) for desktop firmware updates
|
||||
- [Firmware Updates](firmware) — in-app USB update on desktop, or the [Web Flasher](https://flasher.meshtastic.org)
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -44,7 +44,6 @@ Before starting, configure these controls:
|
||||
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**.
|
||||
- The current channel is using the **default channel key** (use a unique key first — see [Messages & Channels](messages-and-channels)).
|
||||
- **No presets** have been selected to scan.
|
||||
- The selected preset uses **2.4 GHz**, which your hardware doesn't support.
|
||||
|
||||
|
||||
@@ -2,8 +2,8 @@
|
||||
title: Firmware Updates
|
||||
parent: User Guide
|
||||
nav_order: 13
|
||||
last_updated: 2026-05-13
|
||||
description: Update your radio firmware over Bluetooth — OTA process, version channels, pre-flight checks, and recovery.
|
||||
last_updated: 2026-07-07
|
||||
description: Update your radio firmware over Bluetooth or USB — OTA process, version channels, pre-flight checks, and recovery.
|
||||
aliases:
|
||||
- firmware
|
||||
- update
|
||||
@@ -17,7 +17,7 @@ Keep your Meshtastic radio up to date with the latest firmware for new features,
|
||||
|
||||
## Checking for Updates
|
||||
|
||||
1. Navigate to **Settings → Firmware Update** or tap the firmware notification if shown.
|
||||
1. Open the connected radio's configuration and, under **Advanced**, tap **Firmware Update** — or tap the firmware notification if one is shown. The entry appears only for OTA-capable devices.
|
||||
2. The app checks for available firmware versions.
|
||||
3. Available updates show the version number and changelog summary.
|
||||
|
||||
@@ -39,19 +39,26 @@ The most common update method for Android users:
|
||||
|
||||

|
||||
|
||||
### USB Flashing
|
||||
### In-App USB Update
|
||||
|
||||
For recovery or when OTA is unavailable:
|
||||
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:
|
||||
|
||||
- Use the [Meshtastic Web Flasher](https://flasher.meshtastic.org)
|
||||
- Or the [Meshtastic CLI tool](https://meshtastic.org/docs/getting-started/flashing-firmware) on desktop
|
||||
|
||||
## Version Channels
|
||||
|
||||
| Canal | Descripción |
|
||||
| ------- | ------------------------------------------- |
|
||||
| Estable | Recommended for most users; tested releases |
|
||||
| Alpha | Preview releases; may contain bugs |
|
||||
| Canal | Descripción |
|
||||
| ---------- | -------------------------------------------------------------------------- |
|
||||
| Estable | Recommended for most users; tested releases |
|
||||
| Alpha | Preview releases; may contain bugs |
|
||||
| Local File | Flash a firmware file you select yourself, instead of a downloaded release |
|
||||
|
||||
## Pre-Update Checklist
|
||||
|
||||
@@ -73,7 +80,7 @@ Once the update succeeds:
|
||||
- The radio will reboot automatically
|
||||
- Bluetooth connection will re-establish
|
||||
- Verify your settings are intact
|
||||
- Check the firmware version in **Settings → About**
|
||||
- Confirm the new version under **Currently Installed** on the Firmware Update screen — it's also shown on the node's detail page and the Connections screen
|
||||
|
||||

|
||||
|
||||
|
||||
@@ -116,12 +116,16 @@ You can search the full history of any conversation directly from the chat scree
|
||||
|
||||

|
||||
|
||||
> 💡 **Tip:** Search is full-text and stays within the conversation you opened it from — it doesn't search across other channels or contacts. Matching is fast even on long histories because messages are indexed locally.
|
||||
> 💡 **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.
|
||||
|
||||
### 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:
|
||||
@@ -143,6 +147,7 @@ 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
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user