mirror of
https://github.com/MarekZegare4/MeshCore-Solo.git
synced 2026-11-01 10:21:59 +00:00
feat: per-contact actions, device settings, a companion CLI and your contact's QR code
- Nodes: telemetry permissions per contact, reset path, share nearby (L1 options menu; L2 node card with "Can ask for" switches) - Settings > Privacy: fixed position (typed in, from a waypoint, cleared) and the Bluetooth PIN; Settings > System: factory reset, asked twice - Companion CLI (CMD_RUN_CLI_COMMAND 66 / RESP_CODE_CLI_REPLY 29, as upstream; FIRMWARE_VER_CODE 14): upstream's command names plus a key for every schema setting (get / set / keys) - Screenshots move to 0x7E; tools/screenshot.py falls back to 66 / 29 - Your contact as a QR code (meshcore://contact/add): Status > System on ui-new, Settings > About on the L2; Nayuki's qrcodegen made header-only Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
+11
-1
@@ -18,6 +18,9 @@ for what you can do with it:
|
||||
| Ping | Sends a ping and shows the round trip time and SNR |
|
||||
| Save waypoint, Set as target | Its position as a waypoint, or as the [Locator](./navigation.md#locator) target |
|
||||
| Fav, Pin to dial | Favourite, or a place on the Favourites page |
|
||||
| Telem | What this contact may ask for: None, Status, Stat+loc, Stat+sens, All. Shown when a [Privacy](./settings.md#privacy) setting is **Allowed** |
|
||||
| Reset path | Forgets the learned route; the next message floods and finds a new one. Shown when there is a route |
|
||||
| Share nearby | Sends the contact's last advert to the nodes in direct range, so they can add it |
|
||||
| Admin | Remote admin, for a repeater or room (below) |
|
||||
| Discover scan | Asks the repeaters, rooms and sensors in direct range to answer, with their signal |
|
||||
|
||||
@@ -32,7 +35,14 @@ back out, **Enter** opens its details and **Hold Enter** its options.
|
||||
> **Wio Tracker L2:** the **Nodes** app. Filter chips at the top, the sort in
|
||||
> the header, and a map button that shows every node with a position. A
|
||||
> node's card has buttons for the same actions, plus **Add** for a node that
|
||||
> isn't a contact yet and **Delete**.
|
||||
> isn't a contact yet and **Delete**. The telemetry permissions are three
|
||||
> switches under **Can ask for**.
|
||||
|
||||
## Your own contact
|
||||
|
||||
**Status › System**, **Enter** shows your contact as a QR code: the phone
|
||||
app's scanner adds you from it, with your name and key. On the Wio Tracker L2
|
||||
it is in **Settings › About**.
|
||||
|
||||
## Favourites
|
||||
|
||||
|
||||
@@ -63,6 +63,10 @@ build flag it needs.
|
||||
| Remote admin | yes | yes | yes | yes | yes |
|
||||
| Adding contacts (auto-add by type, hops, replace oldest) | Settings › Contacts | same | same | same | Messages & contacts |
|
||||
| Privacy (position in adverts, telemetry requests) | Settings › Privacy | same | same | same | Settings › Privacy |
|
||||
| Per-contact actions (telemetry permissions, reset path, share nearby) | Nodes › options | same | same | same | Node card |
|
||||
| Fixed position, Bluetooth PIN | Settings › Privacy | same | same | same | Settings › Privacy |
|
||||
| Factory reset | Settings › System | same | same | same | Settings, at the bottom |
|
||||
| Console (companion CLI, upstream commands plus settings keys) | app / USB tools | same | same | same | same |
|
||||
|
||||
### Navigation (`ENV_INCLUDE_GPS`)
|
||||
|
||||
@@ -89,6 +93,7 @@ build flag it needs.
|
||||
| Advanced radio (hash size, double ACK, CAD, interference, RX boost, RX delay, airtime) | end of Settings › Radio | same | same | same | Radio › Advanced |
|
||||
| Battery curve | Settings | same | same | same | Settings › Power, draggable chart |
|
||||
| QR code of the manual | Status › System, Enter | same | same | same | Settings › About |
|
||||
| QR code of your contact | Status › System, Enter | same | same | same | Settings › About |
|
||||
|
||||
### Device
|
||||
|
||||
|
||||
+55
-5
@@ -11,10 +11,10 @@ board supports are shown.
|
||||
| **Sound** | Buzzer on / off / auto (quiet while the app is connected), volume, quiet hours, the melody for messages, channels and adverts |
|
||||
| **Home Pages** | Order of the home pages, and which are shown |
|
||||
| **Radio** | TX power, preset, frequency, SF / BW / CR, saved presets, Auto pwr, the scope list, then the advanced options (below) |
|
||||
| **System** | Device name, low-battery shutdown, GPS power saving, units, the battery curve, reboot |
|
||||
| **System** | Device name, low-battery shutdown, GPS power saving, units, the battery curve, reboot, factory reset |
|
||||
| **Keyboard** | ABC or T9 layout, the two scripts, CardKB mode |
|
||||
| **Contacts** | Show all or favourites only (DMs, channels, rooms), favourites on top, contact expiry and prune, which heard nodes are added |
|
||||
| **Privacy** | Whether your adverts carry your position, and who may ask for your status, location and sensor readings |
|
||||
| **Privacy** | Whether your adverts carry your position and which position, who may ask for your status, location and sensor readings, the Bluetooth PIN |
|
||||
| **Messages** | Automatic resend of direct messages, the ten quick messages |
|
||||
|
||||
A few notes:
|
||||
@@ -32,6 +32,9 @@ A few notes:
|
||||
doesn't follow the usual LiPo curve: **Left / Right** move a point by
|
||||
10 mV, **Reset** goes back to LiPo. The current voltage is shown, so a point
|
||||
can be set against what the battery reads.
|
||||
- **Factory reset** erases contacts, channels, messages, settings and the
|
||||
node's keys, then restarts as a new node. It asks twice. On the Wio Tracker
|
||||
L2 the SD card is left as it is.
|
||||
|
||||
### Adding contacts
|
||||
|
||||
@@ -53,10 +56,18 @@ nodes aren't added until you make room.
|
||||
including the automatic ones. Off, nodes see your name but not where you
|
||||
are. Live sharing and `{loc}` in a message still send it, because you send
|
||||
those on purpose.
|
||||
- **Position**: where your adverts say you are while the GPS is off. **Enter**
|
||||
to type it in (`50.06143, 19.93658`), take it from a waypoint, or clear it.
|
||||
With the GPS on, the row shows **GPS** and each fix replaces it; turning the
|
||||
GPS off keeps the last fix. The phone app sets the same position.
|
||||
- **Ask status / loc / sens**: who may request your telemetry: **Nobody**,
|
||||
**Allowed** (the contacts you gave that permission, for now in the phone
|
||||
app) or **Everyone**. Status is the battery; a request for location or
|
||||
**Allowed** (the contacts you gave that permission: **Telem** in a node's
|
||||
options in [Nodes](./contacts.md#nearby-nodes), or the phone app) or
|
||||
**Everyone**. Status is the battery; a request for location or
|
||||
sensors is answered only where status is allowed too.
|
||||
- **BT PIN**: the six-digit Bluetooth pairing PIN. Leave it empty for a new
|
||||
random one at each start, shown on screen. A new PIN is used from the next
|
||||
start; the phone pairs again after that.
|
||||
|
||||
### Advanced radio
|
||||
|
||||
@@ -84,4 +95,43 @@ if your mesh agrees on it.
|
||||
> Bluetooth, WiFi, GPS. Adding contacts is in Messages & contacts.
|
||||
> - **Map & data**: Map (trail, live sharing and arrival alert options),
|
||||
> Storage.
|
||||
> - **System**: Name, Time, Units, Firmware update, About; Reboot and Power off.
|
||||
> - **System**: Name, Time, Units, Firmware update, About; Reboot, Power off
|
||||
> and Factory reset. Privacy holds **Fixed position** and, under
|
||||
> Bluetooth, the **Pairing PIN**.
|
||||
|
||||
## Console
|
||||
|
||||
The phone app's console and the console in the site's
|
||||
[USB tools](https://solo.marekzegarek.com/#pc-tools) change settings by
|
||||
text. The commands are the ones upstream MeshCore's companion firmware has,
|
||||
so its documentation applies:
|
||||
|
||||
| Command | Does |
|
||||
| --- | --- |
|
||||
| `get radio`, `set radio 869.525,250,11,5` | Frequency, bandwidth, SF and CR, applied at once |
|
||||
| `get tx`, `set tx 14` | TX power in dBm |
|
||||
| `get af` / `set af`, `get dutycycle` / `set dutycycle` | Airtime factor, or the same as a duty cycle in % |
|
||||
| `rxdelay`, `int.thresh`, `cad`, `radio.rxgain`, `path.hash.mode`, `multi.acks` | The advanced radio options, with `get` / `set` |
|
||||
| `get name`, `set name …` | The device name |
|
||||
| `get pin`, `set pin 123456` | The Bluetooth PIN, `0` for a random one; used from the next start |
|
||||
| `get tz.offset`, `set tz.offset 2` | Time zone, in hours from UTC |
|
||||
| `get lat`, `set lat …`, `get lon`, `set lon …` | The fixed position |
|
||||
| `ver`, `board` | Firmware version, hardware |
|
||||
| `reboot`, `poweroff` | Restart or turn off |
|
||||
|
||||
Every other setting has a key: `keys` lists them a page at a time (`keys 2`,
|
||||
`keys 3` …). `get` shows a value as the Settings screen does, and `set`
|
||||
takes it the same way, case ignored:
|
||||
|
||||
```
|
||||
get telemetry.base > Nobody
|
||||
set telemetry.base Allowed
|
||||
set display.off 30 s
|
||||
set advert.loc on
|
||||
set autoadd.room off
|
||||
```
|
||||
|
||||
A number works too: the position in the list (`set telemetry.base 2`), or a
|
||||
stored value such as seconds or millivolts (`set display.off 60`,
|
||||
`set batt.shutdown 3300`). A wrong value answers with the ones that fit.
|
||||
Factory reset and the node's keys are not in the console.
|
||||
|
||||
+2
-2
@@ -103,7 +103,7 @@ Right** between them, **Up / Down** scrolls):
|
||||
| **Sky** | The satellites on a sky plot, or each one's signal as bars (**Enter** swaps them); Wio Tracker L1 |
|
||||
| **Power** | Battery level, voltage, source and trend, then the readings of any sensors |
|
||||
| **Mesh** | Packets received and sent with a traffic line, forwarded, nodes heard, contacts; **hold Enter** resets the counters |
|
||||
| **System** | Uptime, firmware, device, memory, the send queue, errors, and a sample of every script the font covers; **Enter** shows a QR code that opens this manual on a phone |
|
||||
| **System** | Uptime, firmware, device, memory, the send queue, errors, and a sample of every script the font covers; **Enter** shows your contact as a QR code, which the phone app scans to add you, and **Enter** again a QR code that opens this manual; any other key closes it |
|
||||
|
||||
**GPS pwr** in Settings › System turns the GPS off between fixes to save
|
||||
battery; anything that needs your position (the trail, live share, the
|
||||
@@ -116,7 +116,7 @@ locator) keeps it on.
|
||||
> of the satellites and the fix), **Signal** (a bar per satellite with its
|
||||
> strength, and the constellations) and **Details** (position, precision,
|
||||
> time to first fix and what the receiver reports).
|
||||
> The manual's QR code is in Settings › About.
|
||||
> Your contact's QR code and the manual's are in Settings › About.
|
||||
|
||||
## GPIO
|
||||
|
||||
|
||||
Reference in New Issue
Block a user