docs: beta_93 in the guide and the repo docs
Guide (wadamesh.com/docs.html): contact nicknames, the redesigned control panel with the Battery saver tile, keyboard tooltips and the amber cursor, automatic chat icons, the default lock wallpaper, the GPS serial speed and battery notes, the V4 built-in apps and the Lua send budget, and a new T-LoRa Pager section (hotkeys, navigation memory, Power off confirm, power saving). Three new screenshots, GPS position and IP masked. Repo docs: the Pager and M9 key guides describe tooltips, per-tab memory and Power off, and README, TLORA_PAGER_SHORTCUTS and THINKNODE_M9_SHORTCUTS no longer use em dashes. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
d68f276b06
commit
2dfe3727cd
7 files changed
+146
-101
No files matched your search
@@ -11,7 +11,7 @@ Touch-UI [MeshCore](https://github.com/meshcore-dev/MeshCore) companion-radio
|
||||
firmware for the **LilyGo T-Deck / T-Deck Plus**, **Heltec V4 + TFT** and other boards
|
||||
(ESP32-S3).
|
||||
|
||||
An LVGL touch UI — map, chat, contacts, channels, settings — split out of
|
||||
An LVGL touch UI (map, chat, contacts, channels, settings) split out of
|
||||
[meshcomod](https://github.com/ALLFATHER-BV/meshcomod). The app depends on a
|
||||
MeshCore fork via PlatformIO `lib_deps`.
|
||||
|
||||
@@ -20,22 +20,22 @@ MeshCore fork via PlatformIO `lib_deps`.
|
||||
See **[DEVICES.md](DEVICES.md)** for the full support matrix, install paths and
|
||||
per-board status.
|
||||
|
||||
- LilyGo T-Deck / T-Deck Plus — env `LilyGo_TDeck_companion_radio_touch` (stable)
|
||||
- Heltec V4 + TFT + CHSC6x touch — env `heltec_v4_tft_companion_radio_usb_tcp_touch` (stable)
|
||||
- Tanmatsu (ESP32-P4) — built from `tanmatsu/` (ESP-IDF), ships via the Tanmatsu app store — [sideload guide](TANMATSU_SIDELOAD.md) for running your own build
|
||||
- Elecrow ThinkNode M9 — env `ThinkNode_M9_companion_radio_touch` (beta) — [keyboard & d-pad guide](THINKNODE_M9_SHORTCUTS.md)
|
||||
- RAK WisMesh Tap V2 (RAK3312) — env `rak_tap_v2_companion_radio_touch` (beta)
|
||||
- LilyGo T-Lora Pager — envs `tlora_pager_lr1121_companion_radio_touch` / `tlora_pager_sx1262_companion_radio_touch` (beta) — [keyboard shortcuts](TLORA_PAGER_SHORTCUTS.md)
|
||||
- Heltec V4-R8 + Expansion Kit V2 — env `heltec_v4_r8_tft_companion_radio_usb_tcp_touch` (beta)
|
||||
- LilyGo T-Display P4 — built from `tdisplay_p4/` (ESP-IDF); AMOLED + SX1262 by default, with `WADA_P4_LCD=1` for TFT-LCD and `WADA_P4_LR2021=1` for LR2021 (beta)
|
||||
- Attaky Mesh Series — env `attaky_mesh_series_companion_radio_touch` (beta)
|
||||
- Elecrow CrowPanel Advance 3.5 — env `crowpanel_35_companion_radio_touch` (beta, hardware validation pending; requires an SX1262 in the expansion slot)
|
||||
- LilyGo T-Deck / T-Deck Plus: env `LilyGo_TDeck_companion_radio_touch` (stable)
|
||||
- Heltec V4 + TFT + CHSC6x touch: env `heltec_v4_tft_companion_radio_usb_tcp_touch` (stable)
|
||||
- Tanmatsu (ESP32-P4): built from `tanmatsu/` (ESP-IDF), ships via the Tanmatsu app store; [sideload guide](TANMATSU_SIDELOAD.md) for running your own build
|
||||
- Elecrow ThinkNode M9: env `ThinkNode_M9_companion_radio_touch` (beta); [keyboard & d-pad guide](THINKNODE_M9_SHORTCUTS.md)
|
||||
- RAK WisMesh Tap V2 (RAK3312): env `rak_tap_v2_companion_radio_touch` (beta)
|
||||
- LilyGo T-Lora Pager: envs `tlora_pager_lr1121_companion_radio_touch` / `tlora_pager_sx1262_companion_radio_touch` (beta); [keyboard shortcuts](TLORA_PAGER_SHORTCUTS.md)
|
||||
- Heltec V4-R8 + Expansion Kit V2: env `heltec_v4_r8_tft_companion_radio_usb_tcp_touch` (beta)
|
||||
- LilyGo T-Display P4: built from `tdisplay_p4/` (ESP-IDF); AMOLED + SX1262 by default, with `WADA_P4_LCD=1` for TFT-LCD and `WADA_P4_LR2021=1` for LR2021 (beta)
|
||||
- Attaky Mesh Series: env `attaky_mesh_series_companion_radio_touch` (beta)
|
||||
- Elecrow CrowPanel Advance 3.5: env `crowpanel_35_companion_radio_touch` (beta, hardware validation pending; requires an SX1262 in the expansion slot)
|
||||
|
||||
## Architecture
|
||||
|
||||
This repo holds only the **app**: the `companion_radio` glue, the `ui-touch`
|
||||
LVGL UI, each board's glue/variants, and `platformio.ini`. The **MeshCore
|
||||
core is not vendored here** — it's pulled as a library via `lib_deps` from the
|
||||
core is not vendored here**: it's pulled as a library via `lib_deps` from the
|
||||
[`ALLFATHER-BV/meshcomod`](https://github.com/ALLFATHER-BV/meshcomod) monorepo
|
||||
(the same repo as the non-touch firmware), pinned by a lean source-only `core-*`
|
||||
git tag. The touch-app files this repo owns (TouchPrefsStore, WifiRuntimeStore,
|
||||
@@ -105,23 +105,23 @@ pio run -e crowpanel_35_companion_radio_touch # CrowPanel Advance 3.
|
||||
|
||||
Flash with the NVS-preserving 4-component chain (bootloader / partitions /
|
||||
boot_app0 / firmware at `0x0 / 0x8000 / 0xe000 / 0x10000`) so saved Wi-Fi
|
||||
credentials survive — not a merged image, which 0xFF-pads and wipes NVS.
|
||||
credentials survive, not a merged image, which 0xFF-pads and wipes NVS.
|
||||
|
||||
## Contributing
|
||||
|
||||
Contributions are welcome — see [CONTRIBUTING.md](CONTRIBUTING.md). One topic per
|
||||
Contributions are welcome: see [CONTRIBUTING.md](CONTRIBUTING.md). One topic per
|
||||
PR; inbound contributions are accepted under the project's GPL-3.0 license.
|
||||
|
||||
## License
|
||||
|
||||
**GPL-3.0-or-later** — see [LICENSE](LICENSE). wadamesh is copyleft: anyone who
|
||||
**GPL-3.0-or-later**: see [LICENSE](LICENSE). wadamesh is copyleft: anyone who
|
||||
distributes a build or a fork must also make their source available under the GPL.
|
||||
This keeps the UI open and concentrates community effort instead of fragmenting it
|
||||
into closed forks.
|
||||
|
||||
wadamesh incorporates and depends on
|
||||
[MeshCore](https://github.com/meshcore-dev/MeshCore) (MIT, © Scott Powell /
|
||||
rippleradios.com) and other third-party components — see [NOTICE](NOTICE) for the
|
||||
rippleradios.com) and other third-party components; see [NOTICE](NOTICE) for the
|
||||
full list and their licenses. MeshCore-derived files keep their MIT notices; the
|
||||
combined work is distributed under the GPL (MIT is GPL-compatible). The MeshCore
|
||||
fork that wadamesh builds against stays **MIT** on purpose, so its Wi-Fi/BLE hooks
|
||||
|
||||
+32
-24
@@ -1,22 +1,22 @@
|
||||
# ThinkNode M9: Keyboard & D-pad Guide
|
||||
|
||||
The Elecrow ThinkNode M9 has **no touchscreen** — every screen, every setting,
|
||||
The Elecrow ThinkNode M9 has **no touchscreen**: every screen, every setting,
|
||||
and every chat is driven by the d-pad, the dedicated function keys, and the
|
||||
QWERTY keyboard. If you're coming from the T-Deck or Heltec V4 (touch-first),
|
||||
this page is the five-minute tour that makes the board feel native.
|
||||
|
||||
## The inputs
|
||||
|
||||
- **D-pad** — four arrows around a centre button (**OK**). Arrows move the
|
||||
- **D-pad**: four arrows around a centre button (**OK**). Arrows move the
|
||||
on-screen focus highlight; OK activates whatever is focused. **Holding OK**
|
||||
is the board's long-press: it fires the held item's long-press action (a
|
||||
chat message's context menu, the SD row's hold-to-format) and unlocks the
|
||||
lock screen.
|
||||
- **Function row** — dedicated keys for Chats, Home, Mentions, Advert, Map,
|
||||
- **Function row**: dedicated keys for Chats, Home, Mentions, Advert, Map,
|
||||
Back, Mic and Ctrl (see the table below).
|
||||
- **QWERTY keyboard** — the keyboard controller resolves Shift/symbol layers
|
||||
- **QWERTY keyboard**: the keyboard controller resolves Shift/symbol layers
|
||||
itself, so keys always deliver their final character. It latches one key at
|
||||
a time, which is why there are no chords on this board — long-press carries
|
||||
a time, which is why there are no chords on this board; long-press carries
|
||||
the second layer instead. Start typing in a chat and the composer focuses
|
||||
itself; any key wakes the screen from idle.
|
||||
|
||||
@@ -28,7 +28,7 @@ dropdown → the power menu → the Control Center → a full-screen app → a d
|
||||
else.
|
||||
|
||||
Once there is nothing left covering the screen, **Back returns you to the
|
||||
previous screen** — the tab you came from, however you got there: a function
|
||||
previous screen**, the tab you came from, however you got there: a function
|
||||
key, an app-drawer tile, "Show on map", a contact's Send-msg button. Keep
|
||||
pressing and you keep walking back through where you have been. When the trail
|
||||
runs out Back lands on Home, and on Home with nothing open it does nothing,
|
||||
@@ -42,21 +42,21 @@ the root after closing anything above it. The **Cmdr** tile still opens the
|
||||
Commander screen when you need it.
|
||||
|
||||
The only exception is deliberate: progress overlays (SD format, bulk delete)
|
||||
block all keys until the operation finishes — Back will not navigate out from
|
||||
block all keys until the operation finishes; Back will not navigate out from
|
||||
under a running operation.
|
||||
|
||||
## Function keys
|
||||
|
||||
| Key | Press | Hold |
|
||||
|---|---|---|
|
||||
| **MSG** | Jump to the Chats tab; inside a conversation, return to the chat list (closes an open app first) | — |
|
||||
| **HOME** | Peel one layer off an open app; on the Home tab, toggle the app drawer; otherwise jump Home (and clear the Back trail) | — |
|
||||
| **@ (Mentions)** | Open the Mentions screen | — |
|
||||
| **MSG** | Jump to the Chats tab; inside a conversation, return to the chat list (closes an open app first) | None |
|
||||
| **HOME** | Peel one layer off an open app; on the Home tab, toggle the app drawer; otherwise jump Home (and clear the Back trail) | None |
|
||||
| **@ (Mentions)** | Open the Mentions screen | None |
|
||||
| **ADV** | Open the Send Advert page | **Toggle GPS on/off** |
|
||||
| **MAP** | Jump to the Map tab — press again *on* the map to toggle pan mode | — |
|
||||
| **BACK** | Close the top layer (see above) | — |
|
||||
| **CTRL** | Open the Control Center (quick toggles, incl. the keyboard light: off / on / auto) | — |
|
||||
| **MIC** | Nothing yet — deliberately reserved | — |
|
||||
| **MAP** | Jump to the Map tab; press again *on* the map to toggle pan mode | None |
|
||||
| **BACK** | Close the top layer (see above) | None |
|
||||
| **CTRL** | Open the Control Center (quick toggles, incl. the keyboard light: off / on / auto) | None |
|
||||
| **MIC** | Nothing yet (deliberately reserved) | None |
|
||||
| **OK / Enter** | Activate the focused item; send a message; run a terminal command; newline in the editor | **Long-press the focused item / unlock the lock screen** |
|
||||
|
||||
The **MSG**, **HOME**, **@**, **ADV**, **MAP**, and **CTRL** shortcuts remain
|
||||
@@ -86,7 +86,7 @@ and map-provider policy requirements.
|
||||
|
||||
## Typing & editing
|
||||
|
||||
Inside a text field the left/right arrows move the caret — and when the caret
|
||||
Inside a text field the left/right arrows move the caret, and when the caret
|
||||
is already at the edge of the text, the same press steps focus *out* of the
|
||||
field, so you're never stuck. Enter sends (toggleable under Settings), Back
|
||||
leaves the field. In the Terminal, Enter runs the command; in the text editor
|
||||
@@ -110,7 +110,7 @@ After inserting a symbol, focus returns to the originating text field.
|
||||
|
||||
## Lock screen
|
||||
|
||||
**Hold OK** to unlock — the keyboard's hardware long-press stands in for the
|
||||
**Hold OK** to unlock: the keyboard's hardware long-press stands in for the
|
||||
hold-to-unlock other boards do by touch. With "Flash on new message" enabled,
|
||||
an incoming message wakes (or lock-reveals) the screen and pulses the keyboard
|
||||
backlight.
|
||||
@@ -118,26 +118,26 @@ backlight.
|
||||
## Inside apps
|
||||
|
||||
Store apps (Snake and friends) get the d-pad natively: arrows steer, OK taps
|
||||
the centre — start, steer, and tap-to-retry all work. Display-only apps
|
||||
the centre, so start, steer, and tap-to-retry all work. Display-only apps
|
||||
(Airtime, RF Monitor) keep normal navigation: arrows move between the app's
|
||||
own buttons or scroll the feed. **Back and Home always escape an app** — no
|
||||
own buttons or scroll the feed. **Back and Home always escape an app**: no
|
||||
app can trap the keys, even while the screen is locked.
|
||||
|
||||
## Recent improvements (beta_66 branch)
|
||||
|
||||
If you last used the M9 on an earlier beta, the notable navigation changes:
|
||||
|
||||
- **Back now actually goes back** — once everything covering the screen was
|
||||
- **Back now actually goes back**: once everything covering the screen was
|
||||
closed, Back had nothing left to do and the press simply died on any bare
|
||||
tab. It now walks back through the screens you visited, then Home. Jumps that
|
||||
used to strand you ("Show on map" from Discover or Contacts, a route replay
|
||||
from a chat, the Home unread line, the ✉ badge, app-drawer tiles) all return
|
||||
properly. **Back also works in the first-boot wizard** now, stepping back
|
||||
through its screens like the on-screen Back button.
|
||||
- **Back restored and made consistent** — it had regressed to doing nothing
|
||||
- **Back restored and made consistent**: it had regressed to doing nothing
|
||||
outside text fields, and could close hidden popups beneath the Control
|
||||
Center. Both fixed; the close-what-you-see rule above now holds everywhere.
|
||||
- **The map opens faster the first time** — the cold open was doing a
|
||||
- **The map opens faster the first time**: the cold open was doing a
|
||||
whole-card zoom scan whose result was thrown away, and (with no GPS fix) was
|
||||
repeating that scan on *every* open. The "Loading map…" hint now appears
|
||||
immediately instead of after the scan, so the board no longer looks frozen on
|
||||
@@ -145,14 +145,14 @@ If you last used the M9 on an earlier beta, the notable navigation changes:
|
||||
- **The d-pad no longer goes dead for a second** when a message arrives, and
|
||||
the Spectrum page no longer steers an invisible cursor around the app drawer
|
||||
underneath it.
|
||||
- **Apps can't strand you** — opening Advert/Mentions over a running app used
|
||||
- **Apps can't strand you**: opening Advert/Mentions over a running app used
|
||||
to orphan it with no key path back; app permission dialogs are now
|
||||
answerable with the d-pad.
|
||||
- **Map pan cleans up after itself** (see above — it used to leak across tab
|
||||
- **Map pan cleans up after itself** (see above; it used to leak across tab
|
||||
jumps).
|
||||
- **Keyboard light "On" applies at boot**, not after the first dim cycle.
|
||||
- **Terminal chat shows incoming replies**, not just your own sent lines.
|
||||
- **GPS works from a cold boot** — the toggle (and ADV-hold) no longer depends
|
||||
- **GPS works from a cold boot**: the toggle (and ADV-hold) no longer depends
|
||||
on a boot-time detection race.
|
||||
- **Spectrum analyzer** sweeps roughly twice as fast, survives read glitches
|
||||
without flattening the trace, and waits for an in-flight transmission
|
||||
@@ -160,3 +160,11 @@ If you last used the M9 on an earlier beta, the notable navigation changes:
|
||||
|
||||
The engineering record behind these lives in
|
||||
[`variants/thinknode_m9/M9_PORT.md`](variants/thinknode_m9/M9_PORT.md).
|
||||
|
||||
## Tooltips and the cursor
|
||||
|
||||
The focus highlight is amber, so the selected control stands out on any
|
||||
background. Icon buttons say what they are: rest on one for a moment and a
|
||||
small card names it. On a control panel tile the card adds "Hold Enter:
|
||||
settings": holding OK (the d-pad's Enter) there opens that tile's settings
|
||||
page.
|
||||
+60
-48
@@ -1,19 +1,19 @@
|
||||
# T-LoRa Pager: Keyboard & Rotary Encoder Guide
|
||||
|
||||
The LilyGo T-LoRa Pager has **no touchscreen and no trackball** — every
|
||||
The LilyGo T-LoRa Pager has **no touchscreen and no trackball**: every
|
||||
screen, every setting, and every chat is driven entirely by the physical
|
||||
QWERTY keyboard and the rotary encoder knob. If you're coming from the
|
||||
T-Deck or Heltec V4 (touch-first), this is the one board where learning a
|
||||
handful of gestures up front pays off immediately. This guide covers both
|
||||
radio variants (LR1121 and SX1262) — the UI and input handling are identical
|
||||
radio variants (LR1121 and SX1262); the UI and input handling are identical
|
||||
on both.
|
||||
|
||||
## The two inputs
|
||||
|
||||
- **Keyboard** — a physical QWERTY matrix with a Space bar, Backspace, Enter,
|
||||
- **Keyboard**: a physical QWERTY matrix with a Space bar, Backspace, Enter,
|
||||
a Shift key, and an orange **Fn/Alt** key (bottom-left). No dedicated Esc,
|
||||
arrow keys, or number row — those are covered by combos below.
|
||||
- **Rotary encoder** — turn to move the on-screen focus highlight; click
|
||||
arrow keys, or number row; those are covered by combos below.
|
||||
- **Rotary encoder**: turn to move the on-screen focus highlight; click
|
||||
(press the knob) to select. It's your only pointing device, so almost
|
||||
every screen is navigable with turn + click alone.
|
||||
|
||||
@@ -44,20 +44,32 @@ while editing a text field, where the keys type normally.
|
||||
|
||||
A hold opens them over the screen you are on.
|
||||
|
||||
Each tab remembers where you were: coming back puts the cursor on the item
|
||||
you left. Contacts opens on the first contact, and a chat with unread
|
||||
messages opens on the first of them (see [N](#n-catching-up)).
|
||||
|
||||
Icon buttons say what they are: rest the cursor on one for a moment and a
|
||||
small card names it, sometimes with a line on what it does or, on a
|
||||
control-panel tile, "Hold Enter: settings".
|
||||
|
||||
**Power off** (control panel, power button) asks first, with Cancel
|
||||
selected, so one stray click never switches the Pager off. Press **BOOT** to
|
||||
wake it again.
|
||||
|
||||
## Rotary encoder
|
||||
|
||||
| Gesture | Action | Keyboard equivalent |
|
||||
|---|---|---|
|
||||
| Turn | Move focus to the next/previous item on screen | none — encoder only |
|
||||
| Turn | Move focus to the next/previous item on screen | none (encoder only) |
|
||||
| Short click | Select / confirm the focused item | **Enter** |
|
||||
| Hold ~1 s, then release | **Back**: closes a popup → closes an open chat → goes Home → Esc (whichever applies first). A ring fills while you hold | **Backspace** (tap) |
|
||||
| **Fn (Alt) + turn**, on a main tab | Move between the 5 main tabs (Mail / Contacts / Home / Map / Settings) | **M / C / H / A / S** jumps directly |
|
||||
| **Fn (Alt) + turn**, inside a settings page or chat | Scroll the page up/down | none — encoder only |
|
||||
| **Fn (Alt) + short click**, with a text field focused | Open the special-character picker | none — encoder only |
|
||||
| Turn, with a dropdown open | Scroll through the dropdown's options | none — encoder only |
|
||||
| Turn, with the accent picker open | Cycle through the accent variants (see below) | none — encoder only (Fn+Space to enter is shared) |
|
||||
| Turn, with the @-mention list open | Cycle through matching contacts (see below) | none — encoder only |
|
||||
| Turn, at the oldest/newest **loaded** message in an open chat | Loads more history in that direction and keeps going — see [Chat screen](#chat-screen) | none — encoder only |
|
||||
| **Fn (Alt) + turn**, inside a settings page or chat | Scroll the page up/down | none (encoder only) |
|
||||
| **Fn (Alt) + short click**, with a text field focused | Open the special-character picker | none (encoder only) |
|
||||
| Turn, with a dropdown open | Scroll through the dropdown's options | none (encoder only) |
|
||||
| Turn, with the accent picker open | Cycle through the accent variants (see below) | none (encoder only; Fn+Space to enter is shared) |
|
||||
| Turn, with the @-mention list open | Cycle through matching contacts (see below) | none (encoder only) |
|
||||
| Turn, at the oldest/newest **loaded** message in an open chat | Loads more history in that direction and keeps going (see [Chat screen](#chat-screen)) | none (encoder only) |
|
||||
|
||||
Since there's no touch to tap the bottom bar, use its visible **M / C / H / A /
|
||||
S** shortcuts to jump directly or **Fn+turn** to move through the tabs in
|
||||
@@ -66,7 +78,7 @@ order.
|
||||
## Chat screen
|
||||
|
||||
An open chat has no touch-only jump-to-oldest/jump-to-latest buttons on this
|
||||
board — everything is reachable by turning and clicking, and the encoder
|
||||
board: everything is reachable by turning and clicking, and the encoder
|
||||
behaves a bit differently here than anywhere else in the app.
|
||||
|
||||
### Turning through messages
|
||||
@@ -75,16 +87,16 @@ Message history is loaded lazily: only the messages currently near the
|
||||
viewport actually exist as on-screen items, and older/newer ones are pulled in
|
||||
as you approach them. Turning the encoder normally moves the focus highlight
|
||||
one message at a time, and **at the edge of what's currently loaded, it keeps
|
||||
going** — the turn instead scrolls the list to pull in the next batch of
|
||||
going**: the turn instead scrolls the list to pull in the next batch of
|
||||
history, then continues moving the highlight onto it. You'll only ever land
|
||||
outside the message list (see below) once you've genuinely reached the very
|
||||
oldest or very newest message in the whole conversation — never mid-history.
|
||||
oldest or very newest message in the whole conversation, never mid-history.
|
||||
|
||||
### Leaving the message list
|
||||
|
||||
Turning **past the oldest loaded message** (top edge), once there's truly
|
||||
nothing more to load, wraps around to whatever the last focusable item on the
|
||||
screen is — the channel-settings gear in an open **channel**, or the Send
|
||||
screen is: the channel-settings gear in an open **channel**, or the Send
|
||||
button in a **DM** (a DM has no gear to reach). This is plain focus wrap, the
|
||||
same as reaching the end of any other list in the app; there's no chat-specific
|
||||
handling for this edge.
|
||||
@@ -98,7 +110,7 @@ newest message instead.
|
||||
### The reply row
|
||||
|
||||
Below the messages, turning steps through: **quick-reply (△) → emoji →
|
||||
text box → Send**, in that order, in both directions — nothing is skipped.
|
||||
text box → Send**, in that order, in both directions; nothing is skipped.
|
||||
Turning past the △ chip (toward the messages) always jumps straight to the
|
||||
newest message, regardless of channel or DM.
|
||||
|
||||
@@ -107,8 +119,8 @@ newest message, regardless of channel or DM.
|
||||
A chat with unread messages opens on the first of them. **N** jumps to
|
||||
whichever message needs your attention:
|
||||
|
||||
- If there are unread messages, it jumps to the first one — right below the
|
||||
**"NEW ----"** divider — and selects it, so you can then turn forward
|
||||
- If there are unread messages, it jumps to the first one, right below the
|
||||
**"NEW ----"** divider, and selects it, so you can then turn forward
|
||||
through your unread messages in order, oldest-of-the-unread first.
|
||||
- If nothing is unread, it jumps to the newest message instead (same
|
||||
destination, with focus left on the message).
|
||||
@@ -150,14 +162,14 @@ While any text field is focused, including a Wi-Fi or repeater password:
|
||||
### Shift and Caps Lock
|
||||
|
||||
- **Hold Shift + a letter**: that letter (or letters, for as long as you
|
||||
hold Shift) types uppercase — released, typing goes back to lowercase.
|
||||
hold Shift) types uppercase; released, typing goes back to lowercase.
|
||||
Real momentary Shift, just like a normal keyboard.
|
||||
- **Hold Fn (Alt), then press Shift**: while you're editing a text field,
|
||||
toggles **Caps Lock** on/off — stays uppercase until you repeat the chord.
|
||||
toggles **Caps Lock** on/off; it stays uppercase until you repeat the chord.
|
||||
Anywhere else (not editing a field), the chord does nothing.
|
||||
- Shift alone, tapped with nothing else, does nothing (as expected).
|
||||
- **Hold Fn (Alt), then press Backspace**: jumps straight to the **Home**
|
||||
screen — works everywhere, including while you're actively editing a field
|
||||
screen; it works everywhere, including while you're actively editing a field
|
||||
(unlike Alt+Shift above, this one isn't context-dependent). Doesn't delete
|
||||
a character or trigger the plain-Backspace gestures below.
|
||||
|
||||
@@ -166,19 +178,19 @@ While any text field is focused, including a Wi-Fi or repeater password:
|
||||
| Key | While editing a text field | Otherwise |
|
||||
|---|---|---|
|
||||
| **Enter** | Send / submit / newline | Select the focused item. On a chat message bubble, opens its action menu (Ack / Mention / Copy / Info / Block) |
|
||||
| **Enter** (hold about half a second) | — | What a long press does on a touchscreen: a chat's actions, hiding an app in the drawer, a control-panel switch's settings page |
|
||||
| **Enter** (hold about half a second) | Nothing | What a long press does on a touchscreen: a chat's actions, hiding an app in the drawer, a control-panel switch's settings page |
|
||||
| **Backspace** (tap) | Delete a character | **Back**: closes a popup, a page or the chat, otherwise goes Home |
|
||||
| **Backspace** (hold ~1 s) | **Back**, leaving the screen the field is on | **Back** |
|
||||
| **N** | Types n | In an open chat: jump to your first unread message, or the newest if nothing is unread. See [Chat screen](#chat-screen) |
|
||||
| **Backspace** (hold ~1 s) *while the screen is locked* | — | Unlock the screen |
|
||||
| **Space** (tap) | Types a space | — |
|
||||
| **Space** (double-tap, within 250 ms) | Switches between English and your configured secondary keyboard layout | — |
|
||||
| **Space** (hold ~1 s) | — | Locks the screen (shows a "Locking…" progress bar; tapping any key cancels) |
|
||||
| **Backspace** (hold ~1 s) *while the screen is locked* | Nothing | Unlock the screen |
|
||||
| **Space** (tap) | Types a space | Nothing |
|
||||
| **Space** (double-tap, within 250 ms) | Switches between English and your configured secondary keyboard layout | Nothing |
|
||||
| **Space** (hold ~1 s) | Nothing | Locks the screen (shows a "Locking…" progress bar; tapping any key cancels) |
|
||||
| **Fn (Alt)** (tap / double-tap) | Next key uses symbols / lock symbols until tapped again | Same |
|
||||
|
||||
The **BOOT** button (top of the device) instantly wakes the screen from
|
||||
idle-dim. It does *not* unlock a screen you've manually locked with the
|
||||
Space-hold gesture above — for that, hold Backspace.
|
||||
Space-hold gesture above; for that, hold Backspace.
|
||||
|
||||
## Accented characters
|
||||
|
||||
@@ -186,30 +198,30 @@ Typing a letter that has accent variants (all vowels, plus `n c s y t z l r`,
|
||||
both cases) pops up a small row of alternatives above the field. To pick one
|
||||
without touch:
|
||||
|
||||
1. **Fn (Alt) + Space** — jumps focus into the popup.
|
||||
2. **Turn the encoder** — cycles through the variants.
|
||||
3. **Enter** — confirms your choice and replaces the letter you just typed.
|
||||
4. **Backspace** — dismisses the popup and keeps the plain letter.
|
||||
1. **Fn (Alt) + Space**: jumps focus into the popup.
|
||||
2. **Turn the encoder**: cycles through the variants.
|
||||
3. **Enter**: confirms your choice and replaces the letter you just typed.
|
||||
4. **Backspace**: dismisses the popup and keeps the plain letter.
|
||||
|
||||
## @-mentions
|
||||
|
||||
Typing `@` followed by a few letters of a contact's name pops up a matching
|
||||
list in a channel/group chat. Unlike the accent picker above, this one grabs
|
||||
the encoder **immediately** — no Fn+Space needed, since it only appears once
|
||||
the encoder **immediately**, no Fn+Space needed, since it only appears once
|
||||
you've deliberately started typing a mention:
|
||||
|
||||
1. **Turn the encoder** — cycles through the matching contacts.
|
||||
2. **Enter / encoder click** — confirms the highlighted one, replacing
|
||||
1. **Turn the encoder**: cycles through the matching contacts.
|
||||
2. **Enter / encoder click**: confirms the highlighted one, replacing
|
||||
`@partial` with `@FullName ` in your message.
|
||||
3. **Backspace** — dismisses the list without touching what you typed.
|
||||
3. **Backspace**: dismisses the list without touching what you typed.
|
||||
|
||||
## Sliders
|
||||
|
||||
Any focused slider (Control Center brightness, a Settings slider, the Map
|
||||
zoom bar) can't be dragged without touch — instead:
|
||||
zoom bar) can't be dragged without touch. Instead:
|
||||
|
||||
- **Q** — decrease
|
||||
- **E** — increase
|
||||
- **Q**: decrease
|
||||
- **E**: increase
|
||||
|
||||
Each press moves it proportionally (about 20 presses end-to-end) and
|
||||
persists the new value immediately, the same as releasing a drag.
|
||||
@@ -218,10 +230,10 @@ persists the new value immediately, the same as releasing a drag.
|
||||
|
||||
While the **Map** tab is active:
|
||||
|
||||
- **W** — pan north
|
||||
- **A** — pan west
|
||||
- **X** — pan south
|
||||
- **D** — pan east
|
||||
- **W**: pan north
|
||||
- **A**: pan west
|
||||
- **X**: pan south
|
||||
- **D**: pan east
|
||||
|
||||
`X` replaces the usual `S` position because **S** is the visible Settings
|
||||
shortcut. Pressing **A** on another main screen opens Map; once Map is already
|
||||
@@ -235,9 +247,9 @@ needed.
|
||||
**Settings → Keyboard → Keyboard backlight** cycles through three modes
|
||||
(tap to advance):
|
||||
|
||||
- **Off** — always dark
|
||||
- **On** — always lit
|
||||
- **Auto** (default) — lights up on any keypress and follows the configured
|
||||
- **Off**: always dark
|
||||
- **On**: always lit
|
||||
- **Auto** (default): lights up on any keypress and follows the configured
|
||||
**Screen timeout**; `0 = never` keeps it lit until the screen is turned off
|
||||
|
||||
Unlike the T-Deck, this is a plain on/off strip under the keys, not a
|
||||
@@ -262,7 +274,7 @@ that changes keyboard language.
|
||||
|---|---|
|
||||
| M / C / H / A / S (top-level main screens only) | Open Mail / Contacts / Home / Map / Settings |
|
||||
| Turn encoder | Move focus |
|
||||
| Turn, at the loaded edge of a chat | Load more history, keep moving — only exits the list at the true oldest/newest message |
|
||||
| Turn, at the loaded edge of a chat | Load more history, keep moving; only exits the list at the true oldest/newest message |
|
||||
| Click encoder (or Enter) | Select / confirm |
|
||||
| Hold encoder ~1 s, or tap Backspace | Back |
|
||||
| Fn + turn (main tab) | Switch tabs |
|
||||
@@ -275,7 +287,7 @@ that changes keyboard language.
|
||||
| Fn + Shift (not editing a field) | Nothing |
|
||||
| Fn + Backspace (anywhere) | Jump to Home |
|
||||
| Fn + Space | Enter accent picker |
|
||||
| @ + letters (composer) | Auto-focuses the mention list — no Fn+Space needed |
|
||||
| @ + letters (composer) | Auto-focuses the mention list, no Fn+Space needed |
|
||||
| Enter | Select / send / message action menu |
|
||||
| Hold Enter | Long press: a chat's actions, app options, a switch's settings |
|
||||
| Backspace (tap) | Delete while typing, otherwise Back |
|
||||
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 28 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 28 KiB After Width: | Height: | Size: 27 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 71 KiB |
+38
-13
@@ -160,7 +160,8 @@
|
||||
<a href="#screensaver">Screensaver</a>
|
||||
<a href="#glance">New messages</a>
|
||||
<a href="#control">Control panel</a>
|
||||
<a href="#size">Text size & trackball</a>
|
||||
<a href="#size">Text size, trackball & tooltips</a>
|
||||
<a href="#pager">T-LoRa Pager</a>
|
||||
<a href="#theme">Colours & theme</a>
|
||||
<div class="grp">Finding nodes</div>
|
||||
<a href="#discover">Discover & wardriving</a>
|
||||
@@ -247,7 +248,7 @@
|
||||
<h3>On each row</h3>
|
||||
<ul>
|
||||
<li><b>Tap</b> to open the conversation.</li>
|
||||
<li><b>Hold</b> for everything else about that chat: mark as read, region & scope, mute messages, mute mentions, share the channel's secret, blocked users, a chat icon (any emoji you like), delete history, and remove the channel or delete the chat. A room adds Log in again; a direct chat adds Reset path.</li>
|
||||
<li><b>Hold</b> for everything else about that chat: mark as read, region & scope, mute messages, mute mentions, share the channel's secret, blocked users, a chat icon (any emoji you like; a contact's chat without one uses the first emoji in its name), delete history, and remove the channel or delete the chat. A room adds Log in again; a direct chat adds Reset path.</li>
|
||||
</ul>
|
||||
<p>Muting messages silences a channel's chatter while an @-mention of you still gets through; mute mentions too and the channel is quiet altogether.</p>
|
||||
</div>
|
||||
@@ -273,12 +274,16 @@
|
||||
<h2><span class="ico"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2"/><circle cx="9" cy="7" r="4"/></svg></span> Contacts</h2>
|
||||
<div class="row">
|
||||
<div class="prose">
|
||||
<p>Everyone your node knows: name, type, how recently you heard them, and how far away they are when both of you have a position. Tap a contact to message it or open its details: signal history, a route trace, telemetry, and share and favourite options. <b>Nickname</b> gives a contact a name of your own: it shows in Contacts, Chats and on the map, while its options keep the name it advertises, and the nickname never leaves your device.</p>
|
||||
<p>Everyone your node knows: name, type, how recently you heard them, and how far away they are when both of you have a position. Tap a contact to message it or open its details: signal history, a route trace, telemetry, and share and favourite options.</p>
|
||||
<p><b>Nicknames.</b> Contact options → <b>Nickname</b> gives a contact a name of your own. It shows wherever that contact appears: Contacts, Chats, the chat header, sender names in channels and rooms, the lock screen, notifications, Home widgets and the map. Contact options keeps the name it advertises under the nickname, and searching Contacts finds either one. A nickname never leaves your device: the mesh, the phone app and Lua apps keep the real name. To go back, clear the text and press OK.</p>
|
||||
<p>Along the top: a filter (everything, or one type of node), the <b>Discovered</b> list behind the radar icon (nodes heard but not yet added), search, sort, and a menu with Add contact, Select to delete, Auto-add settings and Blocked users.</p>
|
||||
<p>The Discovered list is passive, built from what the device overhears; to go looking for nodes actively, see <a href="#discover">Discover</a>. Auto-add can pull new nodes in from their adverts, or you can add them by hand.</p>
|
||||
</div>
|
||||
<div class="shot"><div class="device"><img class="screen" src="docs-img/contacts.png?v=92" alt="Contacts list"></div><div class="cap">Contacts</div></div>
|
||||
</div>
|
||||
<div class="gallery">
|
||||
<div class="mini"><img src="docs-img/contact_nickname.png?v=93" alt="Contact options with a nickname"><div class="cap">A nickname, with the name it advertises under it</div></div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section class="doc" id="map">
|
||||
@@ -334,7 +339,7 @@
|
||||
<div class="prose">
|
||||
<p>The lock screen keeps the device from reacting to a pocket or a stray tap. It shows the wadamesh mark, a large clock and the date, a line of the mesh activity over the last 24 hours with how many packets were heard, up to two unread conversations, and along the bottom how to unlock and the battery. A wallpaper you chose shows dimmed behind it. The whole view moves a few pixels every minute so nothing burns into the screen.</p>
|
||||
<p>How you unlock depends on the board, and the bottom line says it: on the T-Deck you hold the trackball.</p>
|
||||
<p><b>Settings → Lock screen</b> has the wallpaper and the clock colour, <b>Lock when screen off</b>, <b>Message text on lock screen</b> (turn it off and the unread cards show who wrote, not what), and the PIN.</p>
|
||||
<p><b>Settings → Lock screen</b> has the wallpaper (with <b>Default wallpaper</b> to go back from a picture of your own) and the clock colour, <b>Lock when screen off</b>, <b>Message text on lock screen</b> (turn it off and the unread cards show who wrote, not what), and the PIN.</p>
|
||||
<h3>PIN lock</h3>
|
||||
<p>Turn on <b>PIN lock</b> and the device asks for a 4 character PIN to unlock: numbers, letters or a mix, and letters are not case sensitive. It locks at boot and every time the screen goes off.</p>
|
||||
<p>Before you choose one, it shows a warning that you have to accept: <b>a forgotten PIN cannot be recovered</b>. The only way back in is to reset the device, which erases everything on it: contacts, channels, messages and settings. Nobody can unlock it for you.</p>
|
||||
@@ -396,26 +401,45 @@
|
||||
<h2><span class="ico"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><line x1="4" y1="21" x2="4" y2="14"/><line x1="4" y1="10" x2="4" y2="3"/><line x1="12" y1="21" x2="12" y2="12"/><line x1="12" y1="8" x2="12" y2="3"/><line x1="20" y1="21" x2="20" y2="16"/><line x1="20" y1="12" x2="20" y2="3"/><line x1="1" y1="14" x2="7" y2="14"/><line x1="9" y1="8" x2="15" y2="8"/><line x1="17" y1="16" x2="23" y2="16"/></svg></span> Control panel</h2>
|
||||
<div class="row">
|
||||
<div class="prose">
|
||||
<p>The quick switches, over whatever you are doing: Wi-Fi, Bluetooth, GPS, the day or night theme, the keyboard backlight (off, on or automatic), Lock, sound, Do Not Disturb, and a screenshot button with an optional timer, plus screen brightness, and volume on the boards with a speaker. Which switches appear depends on what the board has.</p>
|
||||
<p>Open it by <b>tapping the status bar</b>, or by <b>holding the Settings tab</b>. Tap the bar again, or anywhere outside the panel, to close it. Hold a switch to jump to its settings page.</p>
|
||||
<p>The quick switches, over whatever you are doing, as tiles in the launcher's style: Wi-Fi, Bluetooth, GPS, the day or night theme, the keyboard backlight (off, on or automatic), Lock, sound, Do Not Disturb and, on most boards with a battery, the <b>Battery saver</b>, plus screen brightness, and volume on the boards with a speaker. A tile takes the colour of its Settings group and fills while it is on. The ThinkNode M9 and T-LoRa Pager add a screenshot button with an optional timer. Which tiles appear depends on what the board has.</p>
|
||||
<p>Open it by <b>tapping the status bar</b>, or by <b>holding the Settings tab</b>. Tap the bar again, or anywhere outside the panel, to close it. <b>Hold a tile</b> and a card says what it is; keep holding and its settings page opens. With keys, the selected tile shows the same card, and holding Enter on the T-LoRa Pager, or OK on the ThinkNode M9, opens its settings.</p>
|
||||
</div>
|
||||
<div class="shot"><div class="device"><img class="screen" src="docs-img/control_center.png?v=92" alt="The control panel"></div><div class="cap">The control panel</div></div>
|
||||
<div class="shot"><div class="device"><img class="screen" src="docs-img/control_center.png?v=93" alt="The control panel"></div><div class="cap">The control panel</div></div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section class="doc" id="size">
|
||||
<h2><span class="ico"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="4 7 4 4 20 4 20 7"/><line x1="9" y1="20" x2="15" y2="20"/><line x1="12" y1="4" x2="12" y2="20"/></svg></span> Text size & trackball</h2>
|
||||
<h2><span class="ico"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="4 7 4 4 20 4 20 7"/><line x1="9" y1="20" x2="15" y2="20"/><line x1="12" y1="4" x2="12" y2="20"/></svg></span> Text size, trackball & tooltips</h2>
|
||||
<div class="row">
|
||||
<div class="prose">
|
||||
<h3>Text size</h3>
|
||||
<p>Where the board has room for the bigger fonts, <b>Settings → Display → UI size</b> makes the text larger. On the T-Deck, ThinkNode M9 and Heltec V4-R8 the choices are Normal, Large text and Huge text; the T-LoRa Pager and the large-screen boards have their own steps. It applies after a restart, and every screen is laid out for the bigger sizes rather than simply scaled up. The Heltec V4 has no room for the extra fonts.</p>
|
||||
<h3>The T-Deck trackball</h3>
|
||||
<p>The trackball works in one of two ways. In <b>Scroll</b>, the default, rolling it moves the screen: lists, pages and conversations. In <b>Cursor</b> it moves a pointer that clicks what it is over. <b>Hold the trackball still for about half a second</b> to switch between them; a card in the middle of the screen shows which one you are in. <b>Settings → Keyboard → Trackball</b> sets it too, and also offers <b>Navigate</b> (experimental), which moves a highlight from item to item.</p>
|
||||
<h3>Tooltips and the cursor</h3>
|
||||
<p>When you get around with keys (the trackball's Navigate mode, a Bluetooth keyboard, or a board without a touchscreen), the selected control has an <b>amber</b> outline, so it stands out on any background. Icon buttons say what they are: rest on one for a moment and a small card names it, sometimes with a line on what it does. On touch, <b>hold</b> an icon button to see the same card; lifting your finger then never taps it.</p>
|
||||
</div>
|
||||
<div class="shot"><div class="device"><img class="screen" src="docs-img/trackball_scroll.png?v=92" alt="The trackball switched to Scroll"></div><div class="cap">Hold the trackball: Scroll</div></div>
|
||||
</div>
|
||||
<div class="gallery">
|
||||
<div class="mini"><img src="docs-img/trackball_cursor.png?v=92" alt="The trackball switched to Cursor"><div class="cap">Hold again: Cursor</div></div>
|
||||
<div class="mini"><img src="docs-img/keyboard_tooltip.png?v=93" alt="A tooltip on the selected button"><div class="cap">The amber cursor and a tooltip</div></div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section class="doc" id="pager">
|
||||
<h2><span class="ico"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="2" y="6" width="20" height="12" rx="2"/><path d="M6 10h.01M10 10h.01M14 10h.01M18 10h.01M7 14h10"/></svg></span> T-LoRa Pager</h2>
|
||||
<div class="prose" style="max-width:64ch">
|
||||
<p>The T-LoRa Pager has no touchscreen: the keyboard and the wheel drive everything. Turn the wheel to move the amber cursor, click to select. The full key list is in <a href="https://github.com/ALLFATHER-BV/wadamesh/blob/main/TLORA_PAGER_SHORTCUTS.md">TLORA_PAGER_SHORTCUTS.md</a>; these are the ones you use most:</p>
|
||||
<ul>
|
||||
<li><b>M, C, H, A, S</b> jump to Chats, Contacts, Home, Map and Settings from the top of any of those five screens; in a text field they just type. <b>Hold H</b> for the launcher options, <b>hold S</b> for the control panel, and <b>H</b> on Home switches between the app drawer and your widgets.</li>
|
||||
<li><b>Backspace</b> goes back when nothing is being typed. Holding the wheel does the same, with a ring that fills while you hold.</li>
|
||||
<li><b>Enter</b> selects, and <b>holding Enter</b> is a long press: a chat's actions, an app's options, a control panel tile's settings.</li>
|
||||
<li><b>N</b> in a chat jumps to the first new message, or to the newest one when nothing is unread.</li>
|
||||
<li><b>Fn + turn</b> moves between the tabs, or scrolls a page.</li>
|
||||
</ul>
|
||||
<p>Each tab remembers where you were. Contacts opens on the first contact, a chat opens on its first unread message, and <b>Power off</b> asks first, so one stray click never switches the Pager off.</p>
|
||||
<p><b>Battery.</b> The GPS rests in standby between position checks and is switched off completely when GPS is off, the display panel sleeps with the screen off, and the speaker amplifier only runs while a sound plays. Power off puts the radio to sleep and switches off the GPS, the panel and the keyboard light; press BOOT to wake it.</p>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
@@ -484,7 +508,7 @@
|
||||
|
||||
<div class="subh">Chat icons and bubbles</div>
|
||||
<div class="prose">
|
||||
<p><b>Chat icons</b> are <b>Glyphs</b>, a mark of dots drawn from the chat's key, or <b>Initials</b>: the first two letters of the name (a leading # skipped) in a ball coloured from the name. The choice reaches every icon at once: the chat list, contacts, the conversation header, the lock screen cards and the new-message card. A chat icon you picked yourself (an emoji) still wins.</p>
|
||||
<p><b>Chat icons</b> are <b>Glyphs</b>, a mark of dots drawn from the chat's key, or <b>Initials</b>: the first two letters of the name (a leading # skipped) in a ball coloured from the name. The choice reaches every icon at once: the chat list, contacts, the conversation header, the lock screen cards and the new-message card. A chat icon you picked yourself (an emoji) still wins, and a contact whose name has an emoji in it shows that emoji until you pick another.</p>
|
||||
<p>Every sender's name is in its own colour, and a person's name, glyph and ball always share it. <b>Colourful bubbles</b> tints the bubbles with it too, your own included; mentions of you keep their blue bubble. In Day mode, names and glyphs on the light lists use a deeper shade of their colour so they read on white.</p>
|
||||
</div>
|
||||
<div class="gallery">
|
||||
@@ -700,7 +724,8 @@
|
||||
<div class="lede">The GPS receiver.</div>
|
||||
<ul>
|
||||
<li>On or off with a live <b>fix status</b> (acquiring, 2D or 3D, age)</li>
|
||||
<li><b>Serial baud</b> rate (applies after a reboot)</li>
|
||||
<li><b>Serial speed</b> (applies after a restart). The T-LoRa Pager, T-Deck Pro and Max and T-Display P4 find it themselves, and the setting is where they start</li>
|
||||
<li><b>Save battery</b>: the GPS rests between position checks (every 2, 5, 15 or 30 minutes) and stays awake while the map, the GPS page or Discover is open</li>
|
||||
<li>Reads "no GPS module" on devices without one</li>
|
||||
</ul>
|
||||
</div>
|
||||
@@ -747,7 +772,7 @@
|
||||
<h3>Lock screen</h3>
|
||||
<div class="lede">The lock screen and the PIN (<a href="#lock">Lock screen & PIN</a>).</div>
|
||||
<ul>
|
||||
<li><b>Wallpaper</b> and <b>lock text colour</b></li>
|
||||
<li><b>Wallpaper</b>, <b>Default wallpaper</b> to go back, and <b>lock text colour</b></li>
|
||||
<li><b>Lock when screen off</b></li>
|
||||
<li><b>PIN lock</b> and <b>Change PIN</b></li>
|
||||
<li><b>Message text on lock screen</b></li>
|
||||
@@ -800,7 +825,7 @@
|
||||
<ul>
|
||||
<li><b>Battery and power history</b> chart</li>
|
||||
<li><b>Calibrate</b>: tap to set 100% at the current voltage</li>
|
||||
<li><b>Battery saver</b> slows the processor down while the device is idle</li>
|
||||
<li><b>Battery saver</b>, also a tile in the control panel: slows the processor while the screen is off, lets the GPS rest between position checks and keeps a moving background still</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
@@ -857,7 +882,7 @@
|
||||
<div class="prose" style="max-width:64ch">
|
||||
<p>Tools from the home launcher. <b>Spectrum</b> sweeps the band so you can spot interference or find a clear frequency, <b>Signal</b> shows the live receive signal, and <b>Advertise</b> announces you to the mesh, by hand or on a timer. <b>RF Monitor</b> is a repeater-style view of recent packets and radio stats, from the Store.</p>
|
||||
<h3>Writing your own</h3>
|
||||
<p>The Apps drawer is open. Snake, RF Monitor and Airtime are ordinary Lua apps downloaded from the Store over Wi-Fi, and anyone can submit one. They are not built into the firmware and they get no privileges yours would not have.</p>
|
||||
<p>The Apps drawer is open. Snake, RF Monitor and Airtime are ordinary Lua apps downloaded from the Store over Wi-Fi, and anyone can submit one; they get no privileges yours would not have. The Heltec V4 cannot use the Store's app list, so those three come built into its firmware instead. An app that transmits needs your permission first and shares one sending budget with every other app, so no app can flood the mesh (the numbers are in the <a href="sdk.html">SDK guide</a>).</p>
|
||||
<p>An app is a single Lua file plus a one-line manifest, talking to the firmware through the <code>wada.*</code> API. Submit it as a pull request to <a href="https://github.com/ALLFATHER-BV/wadamesh">the repository</a>, or open an issue with the file attached if you would rather not use git. The full procedure (file layout, versioning, and what the review looks for) is in <a href="https://github.com/ALLFATHER-BV/wadamesh/blob/main/deploy/apps/README.md">deploy/apps/README.md</a>.</p>
|
||||
<p><b>Every submission is reviewed and safety-checked before it is added.</b> An app runs on other people's radios, so each one is read for anything touching the node identity, keys or channel secrets, for flash-write patterns that can stall the device, and for anything that would block the interface or the mesh. If something needs changing we say what and why, and we would rather help you land it than turn it away.</p>
|
||||
</div>
|
||||
|
||||
Reference in new issue
Block a user