lua: LVGL touch UI variant of the configurator (draft) - #472
Conversation
Adds lua/mLRS-lvgl.lua alongside the classic mLRS.lua: a full LVGL widget UI for EdgeTX 2.11+ color touch radios. Everything is touch operated; the bind phrase uses the native on-screen keyboard (input sanitized to the mLRS charset), Mode/RF Band/Ortho and all list parameters use native popup pickers with allowed_mask filtering, numeric parameters use numberEdit with min/max/unit, and the Edit Tx/Rx pages are scrollable lists. The UI uses reactive attributes; the LVGL tree is only rebuilt on page or data changes. Two switchable color themes (dark and high contrast, persisted on the SD card) and three layouts: 800x480 (TX16S MK3, confirmed on hardware), plus compact 480x272 and 480x320 variants (not yet hardware-tested). The mBridge/CRSF protocol section is identical to the classic script; radios without LVGL get a hint to use it. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Per Olli's PR feedback: keep the LVGL and classic scripts as close as possible for easier maintenance. The mBridge/CRSF/parameter backend now diffs identically against lua/mLRS.lua; only the popup rendering differs (LVGL reactive widgets vs lcd.draw* calls), which is inherent to the two UI approaches.
|
Thanks for the look, and fair point re: AI-generated architecture drift — I went back and aligned the whole mBridge/CRSF/parameter-handling backend so it now diffs identically against Still waiting on a 480x272 test on a real (non-MK3) TX16S, hopefully within the week. No pressure on timing from my side — happy to align with whatever direction you and JLP's work end up taking. |
|
Update: 480x272 has now been confirmed working on a real original TX16S (second tester, different radio than mine). So at this point both 800x480 (MK3) and 480x272 are hardware-verified, including the theme switcher. 480x320 shares the same compact layout code path as 480x272 (just a bit more vertical space) but hasn't been independently tested. Tagged as v1.0.0-rc3 in my staging repo: https://github.com/burzl89/mlrs-lua-mk3/releases/tag/v1.0.0-rc3 |
|
Update: 480x320 has now also been confirmed working, so all three supported screen classes (800x480 MK3, 480x272, 480x320) are hardware-verified, themes included. Tagged this as a stable v1.0.0 in my staging repo rather than another RC: https://github.com/burzl89/mlrs-lua-mk3/releases/tag/v1.0.0 Still a draft here of course — whatever makes sense once you've had a chance to look, combine with your own version, or just take pieces of it. |
|
Marked this as ready for review now that all three screen classes are hardware-confirmed. No pressure on the outcome though — happy to have pieces of it folded into whatever you and JLP end up converging on. |
Following up on the Discord discussion — this adds
lua/mLRS-lvgl.lua, an LVGL-based touch UI variant of the configurator, alongside the unchanged classicmLRS.lua.This corresponds to the v1.0.0 release in my staging repo, where I keep more detailed release notes and test status while this settles.
What it does
Status
Draft on purpose — happy to align with #448 (thanks @jlpoltrack for the groundwork and the blessing to build on it) and with Olli's own WIP version. Colors, defaults and file naming are all open for discussion.