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.uf2andsolo-v1.14-eink.uf2 - E-ink screenshot support —
tools/screenshot.pynow 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 andlow_batt_mvcutoff 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 screenshot —
WioTrackerL1Eink_companion_dual_devenv 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 favourites —
ch_fav_bitmaskin 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_orderinstead 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/getBufferSizevirtuals so MyMesh no longer needs to know about concrete display types