-
-
Notifications
You must be signed in to change notification settings - Fork 12
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Migrate UI to LVGL #143
Migrate UI to LVGL #143
Conversation
Completely rewrite UI to use LVGL. M5ez was functional, but unmaintained and lacking support for multiple input methods. Our hacked up internal copy is now removed. M5StickC screens are now rotated to a more 'normal' portrait orientation. LVGL supports a unified approach to: * multiple screen sizes * hardware button navigation * non-touch screen systems use 3 buttons: * previous * ok/select * next * touch screen navigation LVGL is an event driven system, thus requiring some refactoring of the general control loops. As a result the user interface logic is completely separated from the camera control. All previous features have been ported across to LVGL. The only regression is the theme handling is clunky, which is still being developed upstream. A restart of the device is necessary to have the new theme properly applied. Whilst here, add feature support for the "FauxNY" camera, a fully virtual target that aids in test and debug. Almost evey single line of code has been touched :/
Move device name to connect() phase for mobile devices. NimBLE hangs if we try to issue characteristics I/O in a callback. Tweak some UI items: * connect message box strings * change inactivity setting from slider to roller
Putting this here for early access (eg. @matthudsonau). README and documentation need to be updated for the new UI before the next release. Sadly, the original M5StickC has too few pixels to deliver an excellent experience, it is still supported, but the some compromises needed to be made. As a result, the separate firmware for the M5StickC will need to be reintroduced. |
This migration aims to replicate the existing menu-driven with LVGL, more changes to make touch screens more 'touchy' can be made. For devices with hardware buttons, the following navigation scheme is used:
The 'buttons' for the M5Core2 are still active and can be used like the M5Core. For hardware button devices, the widgets for changing things like brightness essentially require:
The shutter menu has been deliberately modified on the M5Core2 to experiment with touch screen features. If you enable the 'FauxNY' feature, a 'FauxNY-x' device will always appear in the 'Scan' menu which can be connected and saved. |
Completely rewrite UI to use LVGL.
M5ez was functional, but unmaintained and lacking support for multiple input methods.
Our hacked up internal copy is now removed.
M5StickC screens are now rotated to a more 'normal' portrait orientation.
LVGL supports a unified approach to:
LVGL is an event driven system, thus requiring some refactoring of the general control loops.
As a result the user interface logic is completely separated from the camera control.
All previous features have been ported across to LVGL. The only regression is the theme handling is clunky, which is still being developed upstream.
A restart of the device is necessary to have the new theme properly applied.
Whilst here, add feature support for the "FauxNY" camera, a fully virtual target that aids in test and debug.
Almost evey single line of code has been touched :/