docs: document repeater politeness knobs and Diagnostics screen

- settings_screen: full Radio section (Preset/Freq/SF/BW/CR/Repeater were
  undocumented), plus the five flood-only politeness sub-items.
- tools_screen: new Diagnostics section (per-type counters, heap/stack, radio,
  pool/queue, Forwarded, reset popup).
- README + FEATURES: mention diagnostics; FEATURES gets a full repeater entry.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Jakub
2026-06-19 08:40:53 +02:00
parent d790f7e5cd
commit 22ad46257f
4 changed files with 94 additions and 5 deletions

View File

@@ -65,9 +65,28 @@ Lists all available home screen pages. For each entry:
| Setting | Options | Notes |
| --------- | ---------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| TX power | 222 dBm | LEFT/RIGHT. With **Auto pwr** on this is the *ceiling* — the radio may transmit lower. |
| TX Pwr | 222 dBm | LEFT/RIGHT. With **Auto pwr** on this is the *ceiling* — the radio may transmit lower. |
| Preset | named presets | LEFT/RIGHT cycles community RF presets (region frequency + bandwidth/SF/CR). **Enter** opens a popup to pick one, save the current settings as a named preset, or delete a saved one. Applies frequency, bandwidth, SF and CR together. |
| Freq | chip range | **Enter** opens a digit-by-digit editor: LEFT/RIGHT moves between decimal places, UP/DOWN steps that digit. Bounds come from the radio chip's own validated range, so a value the radio would reject can't be entered. |
| SF | 512 | LEFT/RIGHT. Spreading factor. |
| BW | 7.8500 kHz | LEFT/RIGHT cycles the standard LoRa bandwidths. |
| CR | 58 | LEFT/RIGHT. Coding rate (4/54/8). |
| Repeater | ON / OFF | When ON the companion also relays mesh traffic on its **current** frequency (no dedicated band needed), while still working as a normal companion. Loop-detection and flood-depth limits are always applied. Forwarding activity is visible in **Tools Diagnostics**. |
When **Repeater** is ON, five optional "politeness" sub-items appear below it (all default OFF, so a plain repeater is unaffected). They only filter **flood** traffic — on a direct route this node is the named next hop, so it never drops those.
| Setting | Options | Notes |
| -------------- | ------------- | -------------------------------------------------------------------------------------------------------------- |
| Skip advert | ON / OFF | Don't re-flood **advert** packets (the highest-volume flood traffic); messages and acks still relay. |
| Max hops | Off / 18 | Drop a flood packet once it has already travelled this many hops. |
| Yield | Off / x2x9 | Scales the retransmit delay for **forwarded** floods only (own sends are unaffected), so a mobile companion defers to better-sited fixed repeaters. Widens the window for **Suppress dup**. |
| Min SNR | Off / 20…10 dB | Drop a flood copy received below this signal-to-noise threshold, so marginal fringe traffic isn't re-flooded. |
| Suppress dup | ON / OFF | If the same flood packet is overheard from another node while still queued to retransmit, cancel our copy — a peer already relayed it. Cuts redundant airtime in dense meshes; pairs with **Yield**. |
| Setting | Options | Notes |
| --------- | ---------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| Pwr save | ON / OFF | **Battery saver.** Hardware duty-cycle receive: the SX126x cycles RX↔sleep on its own and wakes on a preamble, cutting average RX current. Trades a little receive latency; leave OFF for lowest-latency reception. Requires an SX126x radio (otherwise stays on continuous RX). |
| Auto pwr | ON / OFF | **Adaptive Power Control.** Lowers actual TX power on strong links to save energy, ramping back up — to the **TX power** ceiling — on weak or lost links. Link quality comes from direct-message ACK SNR and, for channel messages (no ACK), from hearing a repeater rebroadcast your packet. The radio page / name bar shows the live power. Default OFF (fixed TX power). |
| Auto pwr | ON / OFF | **Adaptive Power Control.** Lowers actual TX power on strong links to save energy, ramping back up — to the **TX Pwr** ceiling — on weak or lost links. Link quality comes from direct-message ACK SNR and, for channel messages (no ACK), from hearing a repeater rebroadcast your packet. The radio page / name bar shows the live power. Default OFF (fixed TX power). |
---

View File

@@ -8,7 +8,7 @@
| :-----------------------: | :-----------------------: |
| ![](./tls_scr_1_oled.png) | ![](./tls_scr_1_eink.png) |
The Tools screen is a hub for GPS trail recording, nearby node browsing, ringtone editing, auto-reply bot, and auto-advert. Navigate the tool list with **UP/DOWN** and press **Enter** to open a tool.
The Tools screen is a hub for GPS trail recording, nearby node browsing, ringtone editing, auto-reply bot, auto-advert, compass, and device diagnostics. Navigate the tool list with **UP/DOWN** and press **Enter** to open a tool.
---
@@ -287,3 +287,29 @@ With **Commands** ON, a DM beginning with `!` is answered with live node data, i
Several commands can be combined in one message — `!batt !time !hops` is answered with a single `4.10V | 14:30 | 3 hops` reply (one transmission). A message with no recognised command falls through to the trigger bot.
Commands also work on the **monitored channel** (the one selected for channel mode) — anyone there can query the node. Channel replies are broadcast to everyone, so unlike DM commands they respect quiet hours and use the shared per-channel cooldown. DM commands use the per-contact throttle.
---
## Diagnostics
A single read-only screen of live device and mesh stats, refreshed once a second. On a small OLED the rows scroll with **UP/DOWN**; on a larger e-ink display they all fit at once.
| Row | Shows |
| ------------ | -------------------------------------------------------------------------------------------------- |
| Uptime | Time since boot (`d hh:mm:ss`) |
| Total rx/tx | All received / transmitted packets, summed across the categories below |
| Msg | Text and group-text packets, `rx/tx` |
| Advert | Advert packets, `rx/tx` |
| Ack/Path | Ack, path-return and trace packets, `rx/tx` |
| Other | Everything else (requests, responses, control, raw, …), `rx/tx` |
| Forwarded | Packets this node actually re-transmitted as a repeater (reflects overhear suppression, if on) |
| Heap free | Free / total heap |
| Stack free | Current task's minimum-ever stack headroom |
| Noise floor | Live radio noise floor (dBm) |
| RSSI/SNR | Signal strength / signal-to-noise of the last received packet |
| Pool free | Free entries in the packet pool |
| Queue | Packets waiting in the outbound queue |
The packet counters and **Forwarded** are cumulative since boot. Press **Enter** to open a confirm popup that resets them (defaults to *Cancel*); the live readings (noise, RSSI/SNR, pool, queue, uptime) are not affected. **Cancel/Back** returns to the Tools list.
The counters make the repeater behaviour observable: **Forwarded** confirms the node is actually relaying (not just configured to), and **Pool free** / **Queue** show whether forwarding is exhausting the packet pool. See **Settings Radio Repeater** for the relaying options.