mirror of
https://github.com/MarekZegare4/MeshCore-Solo.git
synced 2026-11-01 18:31:58 +00:00
Contacts and rooms, the scope list, discovery and ping, APC and screenshots move out of MyMesh.cpp to headers included at its bottom, as MyMeshBot.h and MyMeshCli.h are, so upstream merges meet less of our code. The feature matrix gains the 4.26" in its layout tests. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
7.8 KiB
7.8 KiB
Feature matrix
What each kind of screen gets. Solo has two UIs: ui-new (buttons, every board but the L2) and ui-lvgl (touch, the Wio Tracker L2). Within ui-new, some content depends on the screen's size and kind, the rest on the hardware (build flags).
Keep this up to date: a change that adds a feature to only one UI, or only to some screens, adds or corrects its row here in the same commit.
Screen groups
| Column | Boards | Logical size, font | Notes |
|---|---|---|---|
| Small | Wio Tracker L1 (OLED), Heltec V3/V4, GAT562 30S and Watch13, ProMicro, Cardputer ADV (TFT), T-Echo Lite (e-ink) | 128 × 64, 6 × 9 | The T-Echo Lite is e-ink, so it also gets what's marked e-ink |
| E-ink L | Wio Tracker L1 e-ink, landscape | 250 × 122, 8 × 13 | Larger icons |
| E-ink P | Wio Tracker L1 e-ink, portrait | 122 × 250, 6 × 9 | |
| E-ink 4.2" | Wio Tracker L1 with the 4.2" panel (parked) | 400 × 300, 9 × 15 | Its own icon set |
| E-ink 4.26" | Wio Tracker L1 with the 4.26" 800 × 480 panel (WioTrackerL1Eink426_solo_dual) |
400 × 240 at 2x, 9 × 15 | Text and icon size settings; "wide" like the 4.2", 16 lines |
| L2 | Wio Tracker L2 | 320 × 240 touch, ui-lvgl |
What decides it in ui-new (look for these when adding a screen):
| Test | Where it's true |
|---|---|
Features::IS_EINK, display.isEink() |
E-ink L, E-ink P, E-ink 4.2", E-ink 4.26", T-Echo Lite |
expandHistory(): 9 or more lines |
E-ink L, E-ink P, E-ink 4.2", E-ink 4.26" |
height() >= 18 * lineHeight |
E-ink P, E-ink 4.2" |
width() >= 40 * charWidth ("wide") |
E-ink 4.2", E-ink 4.26" |
isLandscape() |
Small, E-ink L, E-ink 4.2", E-ink 4.26" |
The tables below have no E-ink 4.26" column: it gets what the E-ink 4.2" column says, except what hangs on the height test above (the keyboard's taller keys).
Cells: yes, — (not there), a short note where it differs, or the build flag it needs.
Messages
| Feature | Small | E-ink L | E-ink P | E-ink 4.2" | L2 |
|---|---|---|---|---|---|
| Channels, direct, rooms | yes | yes | yes | yes | yes, one screen with sections |
| Opens on the first unread, "New" line | yes | yes | yes | yes | yes |
| Bubbles | 2-line boxes | whole text | whole text | whole text | whole text |
| History kept | 48 ch / 32 DM | same | same | same | 256 / 128 in memory, all on SD (HIST_ARCHIVE) |
| Path of a message | Path list | same | same | same | path diagram on the card |
| Quick messages, placeholders | yes | yes | yes | yes | yes |
| Bytes left while typing | yes | yes | yes | yes | yes |
| Keyboard | letter grid or T9 | same | same, taller keys | same, taller keys | phone-style touch |
| Cursor mode | yes | yes | yes | yes | — (touch places the cursor) |
| Accents | Hold Enter on the letter | same | same | same | hold the key |
| Message alert setting (banner / corner / off) | yes, no blink on e-ink | yes, no blink | yes, no blink | yes, no blink | banner on / off, tap to open |
Contacts and home
| Feature | Small | E-ink L | E-ink P | E-ink 4.2" | L2 |
|---|---|---|---|---|---|
| Home | pages, Left / Right | same | same | same | swiped pages, apps six to a page |
| Favourites | 6 slots, 3 columns | 3 columns | 2 columns | 3 columns | favourite chats page |
| Quick panel | per-page quick rows | same | same | same | pull-down panel |
| Nearby nodes | list | list, direction arrows | list, direction arrows | list + detail pane | Nodes app |
| Map of nodes | yes (Nearby › Map) | yes | yes | yes | yes, on the tile map |
| Contact details | yes | + compass rose, path hops | + compass rose, path hops | + compass rose, path hops | card with actions |
| Contact expiry / prune | yes | yes | yes | yes | yes |
| 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)
| Feature | Small | E-ink L | E-ink P | E-ink 4.2" | L2 |
|---|---|---|---|---|---|
| Trail | 512 points, simplified | same | same | same | 32 768 points, copy on SD |
| Saved trail view | yes | yes | + map and elevation profile | + map and elevation profile | on the map, profile view |
| GPX | over USB (USB tools) | same | same | same | to trails/ on SD |
| Waypoints, averaging | yes | yes | yes | yes | yes, 64 |
| Target, navigation view | yes | yes | yes | wide layout | on the map + Compass app |
| Live sharing, locator | yes | yes | yes | yes | yes |
| Map | position, trail, target | same | same | same | offline tiles on SD, download over WiFi |
Tools and status
| Feature | Small | E-ink L | E-ink P | E-ink 4.2" | L2 |
|---|---|---|---|---|---|
| Clock tools (alarm, timer, stopwatch) | yes, tenths on the stopwatch | no tenths | no tenths | wide layout | Clock app |
| Calendar | Clock tools (tight grid) | Clock tools (tight grid) | + under the clock, on the lock screen | + under the clock | in the Clock app |
| Remote bot, repeater, auto-advert | yes | yes | yes | yes | yes |
Melodies (PIN_BUZZER) |
Ringtones tool | same | same | wide editor | Settings › Sound |
| Status: Radio, GPS, Power, Mesh | yes, 32 min history | yes, 8 h charts | yes, 8 h charts | tiles with charts | Diagnostics app (+ noise chart) |
Sky view (GPS_SKYVIEW) |
Status › Sky | same | same | + side panel | GPS app: Sky, Signal, Details |
| 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
| Feature | Small | E-ink L | E-ink P | E-ink 4.2" | L2 |
|---|---|---|---|---|---|
| Screen lock, PIN | yes | yes | yes | yes | yes, slide to unlock |
Magnetic cover (PIN_HALL_SENSOR) |
yes | yes | yes | yes | — |
| Brightness | yes (OLED, TFT) | — | — | — | yes |
| Rotation, joystick rotation, full refresh | — | yes | yes | yes | — |
| Power off | Shutdown page (hibernate) | same | same | same | Settings › System |
| Firmware update | over USB | same | same | same | over WiFi from GitHub |
Screenshot (ENABLE_SCREENSHOT) |
over USB | same | same | same | side + top button to SD, or over USB |
| SD card, USB drive | — | — | — | — | yes |
Hardware add-ons (ui-new only)
| Feature | Flag | Boards |
|---|---|---|
| CardKB | CARDKB_I2C or ENV_PIN_SDA / ENV_PIN_SCL |
any ui-new board with free I2C |
GPIO tool, !gpio |
PIN_GPIO1..PIN_GPIO4 |
any ui-new board with free pins |
| Wired joystick | UI_HAS_JOYSTICK |
Heltec V3/V4 (and any board wired for it) |
| Vibration | PIN_VIBRATION |
GAT562 Watch13 |
Gaps
Things one side has that the other could:
- L2 → ui-new: history on an SD card (no card on the L1); a base map under the trail and the nodes (no card either, but the L1 has 2 MB of QSPI flash: a lite vector pack is being measured).
- ui-new → L2: T9 layout; CardKB; GPIO on the Grove port; the magnetic cover (no sensor).
- Small screens: the e-ink charts (RAM: 8 h of history).