LVGL graphics library¶
lbuild module: modm:lvgl
LVGL is a free and open-source graphics library providing everything you need to create embedded GUI with easy-to-use graphical elements, beautiful visual effects and low memory footprint.
Configuration¶
LVGL defines defaults for all it's configuration settings, which you can find in the configuration template.
This module generates a lv_conf.h file to define the options necessary for
integration with modm which are:
- Heap is provided by the
modm:platform:heapmodule. - Tick is implemented via the
modm:platform:clockmodule. LV_LOG_PRINTF = 0: logging is redirected toMODM_LOG_*if themodm:debugmodule is included andLV_USE_LOG = 1.
To add your own configuration you can create a <lv_conf_local.h> file which
will automatically be included at the beginning of our lv_conf.h.
Example <lv_conf_local.h> configuration:
// Maximal resolutions
#define LV_HOR_RES_MAX 240
#define LV_VER_RES_MAX 320
#define LV_DPI 200
/* Color depth:
* - 1: 1 byte per pixel
* - 8: RGB332
* - 16: RGB565
* - 32: ARGB8888
*/
#define LV_COLOR_DEPTH 16
// Enable logging at INFO level
#define LV_USE_LOG 1
#define LV_LOG_LEVEL LV_LOG_LEVEL_INFO
// Disable anti-aliasing
#define LV_ANTIALIAS 0
Initialization¶
modm will call lv_init() as a constructor with priority 1000 and then set the
required callbacks for the modm port to work. Static constructors are called
afterwards therefore can already use the LVGL functions.
Calling the lv_timer_handler() may require a few kB of stack, so increasing
the main stack size via the modm:platform:cortex-m:main_stack_size option or
a fiber stack size via the template parameter may be necessary.