chore: Scheduled updates (Firmware, Hardware, Translations) (#6152)

This commit is contained in:
James Rich
2026-07-08 05:01:08 -05:00
committed by GitHub
parent 6eb23c3a05
commit 0d99794ccd
511 changed files with 3643 additions and 2597 deletions

View File

@@ -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"
}
]
}

View File

@@ -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>

View File

@@ -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>

View File

@@ -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.

View File

@@ -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.

View File

@@ -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)
---

View File

@@ -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.

View File

@@ -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:
![Firmware disclaimer](../../assets/screenshots/firmware_disclaimer.png)
### 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
![Firmware update success](../../assets/screenshots/firmware_success.png)

View File

@@ -116,12 +116,16 @@ You can search the full history of any conversation directly from the chat scree
![Message search bar with result counter and previous/next arrows](../../assets/screenshots/messages_search_bar.png)
> 💡 **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

View File

@@ -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

View File

@@ -55,12 +55,15 @@ The BME680 **IAQ (Indoor Air Quality)** index is a single 0500+ 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.

View File

@@ -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**:

View File

@@ -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.

View File

@@ -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.

View File

@@ -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.

View File

@@ -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
---

View File

@@ -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.

View File

@@ -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.

View File

@@ -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)
---

View File

@@ -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.

View File

@@ -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:
![Firmware disclaimer](../../assets/screenshots/firmware_disclaimer.png)
### 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
![Firmware update success](../../assets/screenshots/firmware_success.png)

View File

@@ -116,12 +116,16 @@ You can search the full history of any conversation directly from the chat scree
![Message search bar with result counter and previous/next arrows](../../assets/screenshots/messages_search_bar.png)
> 💡 **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

View File

@@ -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

View File

@@ -55,12 +55,15 @@ The BME680 **IAQ (Indoor Air Quality)** index is a single 0500+ 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.

View File

@@ -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**:

View File

@@ -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.

View File

@@ -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.

View File

@@ -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.

View File

@@ -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
---

View File

@@ -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.

View File

@@ -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 сдвояване, ако се покаже.

View File

@@ -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)
---

View File

@@ -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.

View File

@@ -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:
![Firmware disclaimer](../../assets/screenshots/firmware_disclaimer.png)
### 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
![Актуализацията на фърмуера е успешна](../../assets/screenshots/firmware_success.png)

View File

@@ -116,12 +116,16 @@ You can search the full history of any conversation directly from the chat scree
![Message search bar with result counter and previous/next arrows](../../assets/screenshots/messages_search_bar.png)
> 💡 **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

View File

@@ -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

View File

@@ -55,12 +55,15 @@ The BME680 **IAQ (Indoor Air Quality)** index is a single 0500+ 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.

View File

@@ -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**:

View File

@@ -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.

View File

@@ -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.

View File

@@ -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.

View File

@@ -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
---

View File

@@ -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.

View File

@@ -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.

View File

@@ -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)
---

View File

@@ -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.

View File

@@ -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:
![Firmware disclaimer](../../assets/screenshots/firmware_disclaimer.png)
### 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
![Firmware update success](../../assets/screenshots/firmware_success.png)

View File

@@ -116,12 +116,16 @@ You can search the full history of any conversation directly from the chat scree
![Message search bar with result counter and previous/next arrows](../../assets/screenshots/messages_search_bar.png)
> 💡 **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

View File

@@ -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

View File

@@ -55,12 +55,15 @@ The BME680 **IAQ (Indoor Air Quality)** index is a single 0500+ 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.

View File

@@ -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**:

View File

@@ -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.

View File

@@ -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.

View File

@@ -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.

View File

@@ -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
---

View File

@@ -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.

View File

@@ -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.

View File

@@ -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)
---

View File

@@ -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.

View File

@@ -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:
![Firmware disclaimer](../../assets/screenshots/firmware_disclaimer.png)
### 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
![Firmware update success](../../assets/screenshots/firmware_success.png)

View File

@@ -116,12 +116,16 @@ You can search the full history of any conversation directly from the chat scree
![Message search bar with result counter and previous/next arrows](../../assets/screenshots/messages_search_bar.png)
> 💡 **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

View File

@@ -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

View File

@@ -55,12 +55,15 @@ The BME680 **IAQ (Indoor Air Quality)** index is a single 0500+ 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.

View File

@@ -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**:

View File

@@ -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.

View File

@@ -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.

View File

@@ -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.

View File

@@ -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
---

View File

@@ -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.

View File

@@ -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.

View File

@@ -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)
---

View File

@@ -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.

View File

@@ -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:
![Firmware disclaimer](../../assets/screenshots/firmware_disclaimer.png)
### 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
![Firmware update success](../../assets/screenshots/firmware_success.png)

View File

@@ -116,12 +116,16 @@ You can search the full history of any conversation directly from the chat scree
![Message search bar with result counter and previous/next arrows](../../assets/screenshots/messages_search_bar.png)
> 💡 **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

View File

@@ -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

View File

@@ -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.

View File

@@ -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**:

View File

@@ -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.

View File

@@ -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.

View File

@@ -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.

View File

@@ -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
---

View File

@@ -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.

View File

@@ -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.

View File

@@ -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)
---

View File

@@ -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.

View File

@@ -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:
![Firmware disclaimer](../../assets/screenshots/firmware_disclaimer.png)
### 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
![Firmware update success](../../assets/screenshots/firmware_success.png)

View File

@@ -116,12 +116,16 @@ You can search the full history of any conversation directly from the chat scree
![Message search bar with result counter and previous/next arrows](../../assets/screenshots/messages_search_bar.png)
> 💡 **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

View File

@@ -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

View File

@@ -55,12 +55,15 @@ The BME680 **IAQ (Indoor Air Quality)** index is a single 0500+ 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.

View File

@@ -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**:

View File

@@ -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.

View File

@@ -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.

View File

@@ -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.

View File

@@ -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
---

View File

@@ -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.

View File

@@ -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.

View File

@@ -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)
---

View File

@@ -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.

View File

@@ -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:
![Firmware disclaimer](../../assets/screenshots/firmware_disclaimer.png)
### 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
![Firmware update success](../../assets/screenshots/firmware_success.png)

View File

@@ -116,12 +116,16 @@ You can search the full history of any conversation directly from the chat scree
![Message search bar with result counter and previous/next arrows](../../assets/screenshots/messages_search_bar.png)
> 💡 **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