LVGL (Light and Versatile Graphics Library) 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 a low memory footprint.
Requirements
-
16, 32 or 64 bit microcontroller or processor
-
> 16 MHz clock speed is recommended
-
Flash/ROM: > 64 kB for the very essential components (> 180 kB
is recommended)
-
C99 or newer compiler
All repositories of the LVGL project are hosted on GitHub: https://github.com/lvgl
Porting :
Get the LVGL Arduino library :
LVGL can be installed via the Arduino IDE Library Manager or as a .ZIP library. It will also install lv_exmaples which contains a lot of examples and demos to try LVGL.
Go Menu ---> Sketch ---> Include Library --> Manage Libraries ---> open Dialog box .
Type LVGL , will see below screen.
Configure LVGL :
LVGL has its own configuration file called lv_conf.h
. When LVGL is installed the followings needs to be done to configure
it:
-
Go to directory of the installed Arduino libraries
-
Go to
lvgl
and copylv_conf_template.h
aslv_conf.h
into the Arduino Libraries directory next to thelvgl
library folder. -
Open
lv_conf.h
and change the first#if 0
to#if 1
-
Set the resolution of your display in
LV_HOR_RES_MAX
andLV_VER_RES_MAX
-
Set the color depth of you display in
LV_COLOR_DEPTH
-
Set
LV_TICK_CUSTOM 1
Debugging and logging :
LVGL_Arduino.ino
example there is my_print
method, which allow to send this debug information to the serial
interface. To enable this feature you have to edit lv_conf.h
file and enable logging in section log settings
:
/*Log settings*/
#define USE_LV_LOG 1 /*Enable/disable the log module*/
#if LV_USE_LOG
/* How important log should be added:
* LV_LOG_LEVEL_TRACE A lot of logs to give detailed information
* LV_LOG_LEVEL_INFO Log important events
* LV_LOG_LEVEL_WARN Log if something unwanted happened but didn't cause a problem
* LV_LOG_LEVEL_ERROR Only critical issue, when the system may fail
* LV_LOG_LEVEL_NONE Do not log anything
*/
# define LV_LOG_LEVEL LV_LOG_LEVEL_WARN
Serial
port @ 115200 Baud rate.