1
0
mirror of https://github.com/lvgl/lvgl.git synced 2025-01-14 06:42:58 +08:00
lvgl/docs/get-started/arduino.md
embeddedt 9a77102c40
docs(arduino) update some outdated information
This fixes some broken links and updates the steps to match the new repository layout.
2021-07-11 15:28:08 -04:00

3.1 KiB

.. include:: /header.rst 
:github_url: |github_link_base|/get-started/arduino.md

Arduino

The core LVGL library and the demos are directly available as Arduino libraries.

Note that you need to choose a powerful enough board to run LVGL and your GUI. See the requirements of LVGL.

For example ESP32 is a good candidate to create your UI with LVGL.

Get the LVGL Arduino library

LVGL can be installed via the Arduino IDE Library Manager or as a .ZIP library.

Set up drivers

To get started it's recommended to use TFT_eSPI library as a TFT driver to simplify testing. To make it work setup TFT_eSPI according to your TFT display type via editing either

  • User_Setup.h
  • or by selecting a configuration in the User_Setup_Select.h

Both files are located in TFT_eSPI library's folder.

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:

  1. Go to directory of the installed Arduino libraries
  2. Go to lvgl and copy lv_conf_template.h as lv_conf.h into the Arduino Libraries directory next to the lvgl library folder.
  3. Open lv_conf.h and change the first #if 0 to #if 1
  4. Set the color depth of you display in LV_COLOR_DEPTH
  5. Set LV_TICK_CUSTOM 1

Initialize LVGL and run an example

Take a look at LVGL_Arduino.ino to see how to initialize LVGL. TFT_eSPI is used as the display driver.

In the INO file you can see how to register a display and a touch pad for LVGL and call an example.

Note that, there is no dedicated INO file for every example but you can call functions like lv_example_btn_1() or lv_example_slider_1() to run an example. Most of the examples are available in the lvgl/examples folder. Some are also available in lv_demos, which needs to be installed and configured separately.

Debugging and logging

In case of trouble LVGL can display debug information. In the 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 the 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

After enabling the log module and setting LV_LOG_LEVEL accordingly the output log is sent to the Serial port @ 115200 bps.