mirror of
https://github.com/zjs81/meshcore-open.git
synced 2026-06-15 07:04:26 +10:00
ea657a964a
- Replaced sqflite with shared_preferences for local key-value storage in README.md - Updated gradle.properties to include builtInKotlin and newDsl flags - Enhanced translation feature documentation in additional-features.md - Modified BLE protocol documentation to include new command and response codes in ble-protocol.md - Clarified channel management details in channels.md - Improved chat and messaging documentation, including message path viewing and translation options in chat-and-messaging.md - Updated contacts management details in contacts.md - Revised map and location documentation for inferred locations and user interface changes in map-and-location.md - Adjusted navigation flow in navigation.md to reflect changes in screen transitions - Updated notification system details in notifications.md - Enhanced repeater management documentation in repeater-management.md - Clarified scanner and connection process in scanner-and-connection.md - Reorganized settings documentation for better clarity and added new node and location settings in settings.md
198 lines
8.1 KiB
Markdown
198 lines
8.1 KiB
Markdown
# Settings
|
||
|
||
## How to Access
|
||
|
||
- From the Device Screen: tap the tune/sliders icon in the app bar
|
||
- From Contacts or Channels: overflow menu (three-dot) → Settings
|
||
|
||
Settings are only accessible while a device is connected.
|
||
|
||
## Settings Screen Layout
|
||
|
||
The settings screen is a scrollable list of cards:
|
||
|
||
1. [Device Info](#device-info)
|
||
2. [Node Settings](#node-settings)
|
||
3. [Location](#location)
|
||
4. [App Settings](#app-settings) (link to sub-screen)
|
||
5. [Actions](#actions)
|
||
6. [Export](#export)
|
||
7. [Debug](#debug)
|
||
8. [About](#about)
|
||
|
||
---
|
||
|
||
## Device Info
|
||
|
||
A collapsible card showing read-only device information. **Collapsed by default** — tap the header to expand with an animated chevron indicator:
|
||
|
||
| Field | Description |
|
||
|---|---|
|
||
| Name | Connected device's display name |
|
||
| ID | Device identifier |
|
||
| Status | Connected / Disconnected |
|
||
| Battery | Percentage or voltage (tap to toggle) |
|
||
| Node Name | The node's mesh identity name |
|
||
| Public Key | First 16 hex characters + "..." |
|
||
| Contacts Count | Number of known contacts |
|
||
| Channel Count | Number of configured channels |
|
||
|
||
Battery shows an alert icon and orange text when at 15% or below. The toggle only works when millivolt data is available from the firmware.
|
||
|
||
---
|
||
|
||
## Node Settings
|
||
|
||
These settings are sent directly to the connected device firmware.
|
||
|
||
### Node Name
|
||
- Opens a dialog with a text field (max 31 characters)
|
||
- Sends the new name to the device
|
||
- Confirmed via snackbar
|
||
|
||
### Radio Settings
|
||
Opens a dialog pre-populated with the device's current radio settings. Contains:
|
||
- **Preset dropdown**: Regional presets — selecting a preset immediately fills all fields below. Includes presets for Australia, Australia (Narrow), Australia SA WA QLD, Czech Republic, EU 433MHz, EU/UK (Long Range), EU/UK (Medium Range), EU/UK (Narrow), New Zealand, New Zealand (Narrow), Portugal 433, Portugal 869, numerous Russia city presets, Switzerland, USA Arizona, USA/Canada, and Vietnam
|
||
- **Frequency** (MHz): Free text, validated 300–2500 MHz
|
||
- **Bandwidth**: Dropdown (7.8 / 10.4 / 15.6 / 20.8 / 31.25 / 41.7 / 62.5 / 125 / 250 / 500 kHz)
|
||
- **Spreading Factor**: SF5–SF12
|
||
- **Coding Rate**: 4/5, 4/6, 4/7, 4/8
|
||
- **TX Power** (dBm): Validated 0 to device max (typically 22 dBm)
|
||
- **Client Repeat** toggle: Only shown on firmware v9+; requires frequency to be exactly 433.000, 869.000, or 918.000 MHz (the Off-Grid presets). Save is blocked with a warning if enabled on other frequencies
|
||
|
||
### Companion Radio Stats
|
||
Opens the RF statistics screen (RSSI, SNR, packet counts) for the paired radio. Only enabled when connected to a device that supports companion radio stats.
|
||
|
||
---
|
||
|
||
## Location
|
||
|
||
### Location
|
||
Opens a dialog pre-populated with the device's current coordinates (if known):
|
||
- Latitude and longitude fields (decimal, 6 decimal places). If only one field is provided, the other uses the device's current value
|
||
- If GPS-capable hardware (detected via `gps` custom variable):
|
||
- GPS Update Interval (seconds, 60–86399, default 900 = 15 minutes). Validated and sent separately before lat/lon
|
||
- Enable GPS toggle (takes effect immediately, not deferred to Save)
|
||
- Validation: lat ±90, lon ±180
|
||
|
||
### Contact Settings
|
||
Five toggles controlling which node types are auto-added when heard:
|
||
- Auto-add Chat Users
|
||
- Auto-add Repeaters
|
||
- Auto-add Room Servers
|
||
- Auto-add Sensors
|
||
- Overwrite Oldest (when contact list is full)
|
||
|
||
### Privacy
|
||
Opens a dialog with controls for how the node shares telemetry and location data:
|
||
- **Advert Location**: Toggle whether the node broadcasts its location in advertisements
|
||
- **Multi-Ack**: Toggle multi-ack delivery confirmations
|
||
- **Telemetry Base Mode**: Deny All / Allow by Contact / Allow All
|
||
- **Telemetry Location Mode**: Deny All / Allow by Contact / Allow All
|
||
- **Telemetry Environment Mode**: Deny All / Allow by Contact / Allow All
|
||
|
||
Settings take effect when saved. A snackbar confirms the update.
|
||
|
||
---
|
||
|
||
## App Settings
|
||
|
||
A dedicated sub-screen for app-level preferences (nothing here is sent to the device). All settings persist locally via SharedPreferences.
|
||
|
||
### Appearance
|
||
- **Theme**: System / Light / Dark
|
||
- **Language**: System default or one of 18 languages (English, French, Spanish, German, Polish, Slovenian, Portuguese, Italian, Chinese, Swedish, Dutch, Slovak, Bulgarian, Russian, Ukrainian, Hungarian, Japanese, Korean)
|
||
|
||
### Notifications
|
||
- **Master enable/disable**: Requests OS permission when enabling
|
||
- **Message notifications**: New direct message alerts
|
||
- **Channel message notifications**: New channel message alerts
|
||
- **Advertisement notifications**: New node discovery alerts
|
||
|
||
### Messaging
|
||
- **Clear Path on Max Retry**: Erases the stored routing path after all retries fail
|
||
- **Jump to Oldest Unread**: When opening a chat, scrolls to the oldest unread message instead of the newest
|
||
- **Auto Route Rotation**: Enables weighted routing algorithm. When enabled, expands to show five slider sub-settings (hidden when off):
|
||
- Max Route Weight (1–10, default 5, integer steps)
|
||
- Initial Route Weight (0.5–5.0, default 3.0)
|
||
- Success Increment (0.1–2.0, default 0.5, 0.1 steps)
|
||
- Failure Decrement (0.1–2.0, default 0.2, 0.1 steps)
|
||
- Max Message Retries (2–10, default 5)
|
||
- **Enable Message Tracing**: Shows path trace overlays and extra metadata on messages
|
||
|
||
### Battery
|
||
- **Battery Chemistry**: NMC / LiFePO4 / LiPo (per device, used to calibrate percentage from voltage)
|
||
|
||
### Map Display
|
||
- **Show Repeaters**: Toggle repeater markers on map
|
||
- **Show Chat Nodes**: Toggle chat node markers
|
||
- **Show Other Nodes**: Toggle room/sensor markers
|
||
- **Time Filter**: All time / Last 1h / Last 6h / Last 24h / Last week
|
||
- **Units**: Metric / Imperial
|
||
- **Offline Map Cache**: Navigate to tile download screen
|
||
|
||
### Translation
|
||
Not shown on web. Controls on-device message translation powered by a locally-downloaded ML model:
|
||
- **Enable Translation**: Translates incoming messages into the selected target language
|
||
- **Translate Composer**: Translates outgoing messages from the target language back before sending
|
||
- **Target Language**: Language to translate into (searchable list; defaults to the app language)
|
||
- **Downloaded Model**: Dropdown to select among already-downloaded translation models
|
||
- **Preset Model**: Download a curated preset model with one tap
|
||
- **Custom Model URL**: Enter a URL to download a custom GGUF-format model; shows download progress and a cancel button
|
||
|
||
### Cyrillic-to-Latin (Cyr2Lat)
|
||
Controls character substitution profiles used to render Cyrillic text in Latin characters. A dropdown selects the active profile; Add, Edit, and Delete buttons manage the profile list (the last remaining profile cannot be deleted). Each profile stores a JSON character map.
|
||
|
||
### Debug
|
||
- **App Debug Logging**: Enable the in-app debug log
|
||
|
||
---
|
||
|
||
## Actions
|
||
|
||
One-tap device operations:
|
||
|
||
| Action | Description |
|
||
|---|---|
|
||
| Sync Time | Sends current Unix timestamp to the device |
|
||
| Refresh Contacts | Re-requests the full contact list |
|
||
| Reboot Device | Confirmation dialog → reboots the device (shown in warning color) |
|
||
| Delete All Paths | Confirmation dialog → clears all stored routing paths (shown in alert color) |
|
||
|
||
---
|
||
|
||
## Export
|
||
|
||
Three GPX export options (not available on web):
|
||
|
||
| Option | Exports |
|
||
|---|---|
|
||
| Export Repeaters | Repeaters and Rooms with GPS coordinates |
|
||
| Export Contacts | Chat contacts with GPS coordinates |
|
||
| Export All | All contacts with GPS coordinates |
|
||
|
||
Each creates a `.gpx` file and opens the OS share sheet. Feedback via snackbar for four outcomes: success, no contacts with coordinates, feature not available (web), or error.
|
||
|
||
---
|
||
|
||
## Debug
|
||
|
||
Two log viewers accessible via list tiles:
|
||
|
||
### BLE Debug Log
|
||
Two views (togglable via segmented button):
|
||
- **Frames view**: Direction icon, description, hex preview, timestamp per frame. Long-press to copy hex.
|
||
- **Raw Log RX view**: Decoded LoRa packets with route type, payload type, path, and summary.
|
||
- Copy-all and Clear buttons in the app bar.
|
||
|
||
### App Debug Log
|
||
Structured log entries (Info / Warning / Error), with tag, message, and timestamp.
|
||
- Must be enabled first in App Settings → Debug
|
||
- Copy-all and Clear buttons
|
||
|
||
---
|
||
|
||
## About
|
||
|
||
Shows the standard Flutter about dialog with app name, version, and legal notice.
|