github MarekZegare4/MeshCore-Solo v1.19
Solo v1.19

4 hours ago

MeshCore Solo Companion Firmware v1.19

What's new

  • Message delivery status — outgoing messages now show an end-to-end delivery marker, auto-scaled to the font (legible on landscape e-ink), in both the history list and the fullscreen view:
    • Direct messages (and room servers): pending → delivered (✓) → failed (✗), driven by the real end-to-end ACK. While pending, a row of dots shows one per send so auto-resend progress is visible.
    • Auto-resend — a pending DM whose ACK times out is re-sent automatically (reusing the original timestamp) until resends run out. Configurable count under Settings › Messages › Resend (0–5, default 2). Runs in the background, independent of which screen is open; incoming duplicates from retries are dropped.
    • Channels — ✓ appears only once a repeater echo confirms the message was relayed into the mesh. No echo is normal (flood has no recipient ACK), so no pending/fail is shown.
  • Auto-reply bot overhaul — the trigger/reply bot grows into a small auto-responder:
    • Query commands — a DM or monitored-channel message is scanned for ! tokens (!ping !batt !loc !time !temp !hops !status !help) and answered in one combined reply.
    • Away / reply-to-all — a lone * trigger replies to every message.
    • Separate DM and channel triggers, each with its own reply text.
    • Quiet hours — silence push replies during a chosen window (wraps midnight).
    • Throttling & anti-loop — per-contact DM throttle so one sender can't starve others; channel echo guard so the bot never answers itself; reply counter shown in the bot screen header.
  • Keyboard overhaul — one shared keyboard across all screens (reclaims duplicate RAM), icon keys (⇧ caps, ⎵ space, ⌫ delete, ✓ OK), and a second symbols page toggled with #@/abc.
  • UI refresh
    • Proportional scrollbar with up/down triangle caps replaces the old ^/v arrows, scaling with the font (1× OLED, 2× landscape e-ink); used by every scrollable list and the fullscreen message view. The redundant > selection marker is gone and rows shifted left to reclaim space.
    • Status-bar single-letter indicators (M/B/A/G) replaced with scalable mini-icons (mute, bluetooth, advert, trail).
  • Nearby Nodes reorganized — one list over two sources (stored contacts + live discover scan) with a unified detail/action menu. Type filter and sort are independent axes and persist across re-entry; the active filter is shown in the title and in empty-list messages.
  • Tools › Trail reorganized — a short two-level action menu (Hold Enter) replaces the flat ~12-item list; view-aware settings; a fitted square map grid; and the waypoint manager split out into its own component. No change to trail recording itself.
  • OTA updates — each solo release now ships a DFU .zip (solo-<ver>-<device>-ota.zip) for over-the-air / BLE-DFU updates, alongside the .uf2 for USB flashing.

Fixes

  • GPS battery drain on shutdown — GPS is powered off before SYSTEMOFF, and uses the correct active-level (!PIN_GPS_EN_ACTIVE) instead of a hardcoded level.
  • Buzzer octave 8 — the RTTTL parser now fully accepts octave 8 instead of clamping it away (which could leak a digit into the next note's duration).
  • Trail file robustnessWaypoint/trail readers check every header read, so a truncated file is rejected instead of using a garbage count.

Under the hood

  • OTA DFU zip is named and attached to releases by the _solo_dual build workflow; the per-build Actions artifact already carried it.
  • Large UI consolidation: shared drawList / header / key-decode helpers, deduplicated status-bar indicators, reusable scalable mini-icon facility (icons.h), and an audit-pass cleanup premoving dead code and redundant scroll-clamp logic.

Don't miss a new MeshCore-Solo release

NewReleases is sending notifications on new releases.