Trouble setting up the most recent version of LVGL in blank ESP-IDF project


Hi there, I’m trying to set up the most basic possible LVGL project on an esp32 using ESP-IDF, but I can’t for the life of me get LVGL to work. I’ve gone straight back to the basics and I’m doing nothing except cloning the repo into a blank sample project and trying to build, but keep running into errors (I’m seeing this error a lot: #error “lv_meter: Complex drawing is required. Enable it in lv_conf.h (LV_USE_DRAW_MASKS 1)”).

I’ve been able to get the lv_port_esp32 project to build and run after configuring it, but this uses version 7 of LVGL and stops working if I try switch to master (same error messages).

I’m sure I’m missing some basic step to get this working, but after reading the documentation and example projects I’m not sure what this step is.

Thanks very much!

What MCU/Processor/Board and compiler are you using?

ESP-WROVER-KIT_V4.1 & ESP-IDF version 4.4
I’m using the most recent LVGL.

What do you want to achieve?

I want to incorporate the latest version of LVGL into my project

What have you tried so far?

Cloning LVGL into my project and building.
Cloning the lv_port_esp32 repo and switching lvgl submodule to master.

Screenshot and/or video

Here’s the project structure for reference, if I can provide any more information please let me know!

Hi Lunardip,

I’m in the same case than you. In fact lv_port_esp32 is using v7 of lvgl. As i need to use more advanced feature like animation, that i generate with square Line studio, i realise i need v8. I’m tring to use v8 as a git submodule, but it seems when you compare kconfig that some options are missing from esp-idf sample project, compared to what it required by lvgl v8, like this options. Also, it seems that it should be possible to use a custom lv_conf.h by checking an option in menuconfig. So i’m working on that, but i would appreciate if esp-idf update to use officialy the lvgl v8 because it a lot of custom stuff to change manully etc …

I’ve not looked into why, but I’m getting a similar issue with using the latest master branch (0afa27d5c3bb64163f06e653526446c63f0e7b23). If I instead check out tags/v8.3.1 it works.

Same here, a simple project using v8.3 is working properly, but with the development/master branch, it looks like some of the CONF_LV_ to #define conversions are missing (that is my best guess).

I wanted to take a peek at the new TTF support but am unable to build a project with the master.

  • “LV_GRADIENT_MAX_STOPS” redefined
  • “lv_meter: Complex drawing is required. Enable it in lv_conf.h (LV_USE_DRAW_MASKS 1)”

I tried to understand the logic of lv_conf_internal.h and a lot of the other include files, but haven’t been able to get a complete build.

Maybe some of the smarter devs here are willing to shed some light on this issue? This is using esp-idf 4.3.4.

This can be fixed if you set this in the menuconfig. Then lv_conf is used and you can set the mask there. By default it is selected so lv_conf is skipped

LVGL configuration