github MarekZegare4/MeshCore v1.14
Solo v1.14

10 hours ago

Wio Tracker L1 — Solo Firmware v1.14

Based on MeshCore upstream v1.15.

Highlights

  • Renamed Plus → Solo — to better reflect that this firmware is designed for off-grid, standalone use without needing a companion app on the phone; release artefacts are now solo-v1.14-oled.uf2 and solo-v1.14-eink.uf2
  • E-ink screenshot supporttools/screenshot.py now works with both OLED and the e-ink panel; auto-detects rotation 0–3 and uses GxEPD2's visible dimensions; build with -D ENABLE_SCREENSHOT
  • Battery percentage field — new Batt % option for the Clock page dashboard, now sharing the same LiPo discharge curve and low_batt_mv cutoff as the top-bar indicator (so both readings agree)
  • Channel favourites — mark individual channels as favourites from the channel context menu; new Settings › Contacts filter to hide non-favourite channels
  • Context menu cycling unified — LEFT/RIGHT now cycles values everywhere (Notif, Melody, Fav, Duration, BPM) without closing the popup; ENTER reserved for one-shot actions
  • Popup menus expand to fit the screen — on portrait e-ink up to 16 items fit without scrolling; on OLED items are now hard-capped to what physically fits

Changes

New features

  • E-ink screenshotWioTrackerL1Eink_companion_dual_dev env enables capture; protocol header widened to 11 bytes (display type, rotation, uint16 width/height/chunk fields) so it scales to any GxEPD2 panel and rotation
  • Dashboard Batt % field — new Clock-page option computed from the same piecewise LiPo curve used by the top-bar battery indicator
  • Channel favouritesch_fav_bitmask in prefs; toggle from Channel context menu; Settings › Contacts › Channels filter (all / favourites only)
  • GPS trail — scale grid on map — toggle from the Trail action menu (Grid row); cycles with LEFT/RIGHT now (previously ENTER only)
  • Ringtone editor migrated to PopupMenu — Duration and BPM now cycle in-place with LEFT/RIGHT; separate BPM+/BPM- rows removed

Fixes

  • OLED joystick rotation — enforce reset moved after prefs load, so stale e-ink rotation values no longer reverse joystick mapping on OLED builds (FEAT_JOYSTICK_ROTATION_SETTING=0)
  • First melody note duration — preview-only side effect that shortened the first note in playMelody() no longer corrupts the stored sequence
  • Home pages migration — pages added in this release (Favourites, Trail) are appended to stored page_order instead of being hidden; SHUTDOWN is evicted from a full order to make room for required pages
  • Pin picker fallback — pressing + on an empty Favourites tile with no starred contacts and no recent DMs now lists all chat contacts instead of showing "No fav contacts"
  • Popup menus on OLED — height-clamped to what fits on screen (max 4 items at 64 px), so long context menus no longer draw outside the panel
  • Trail action menu — Grid toggle now also works with LEFT/RIGHT (not just ENTER); Export labels shortened to Export (live) / Export (saved) to fit
  • E-ink default font — unknown-character fallback rectangle aligned with the text cell baseline instead of one pixel below
  • Build — added DisplayDriver::getBuffer/getBufferSize virtuals so MyMesh no longer needs to know about concrete display types

Don't miss a new MeshCore release

NewReleases is sending notifications on new releases.