Skip to content

Handle LVGL manually instead of using an internal task #613

@Maldus512

Description

@Maldus512

Related area

LVGL port

Hardware specification

ESP32-P4

Is your feature request related to a problem?

I usually setup my projects with a single task that handles both low-latency IO and the UI with LVGL. Having a single task greatly simplifies data management.
The LVGL port component forces LVGL to run in an internal task with mutexes for synchronization. I wish to avoid that, calling lv_timer_handle and lv_tick_inc by myself while still leveraging other APIs like lvgl_port_add_disp_dsi.

Describe the solution you'd like

Adding a configuration parameter to avoid mutex synchronization calls like lvgl_port_lock, either as a CONFIG macro or a field in lvgl_port_cfg_t so that I can simply avoid initializing the port while still adding dsi displays and the like.

Describe alternatives you've considered

Right now I'm using the LVGL internal task as "main" task by creating a periodic LVGL task that also manages low-latency IO, but having the low level drivers depend on the UI isn't ideal.

Additional context

I'd be more than willing to work on a pull request but I'd like to know beforehand if such a feature would be welcome.

I have checked existing list of Feature requests and the Contribution Guide

  • I confirm I have checked existing list of Feature requests and Contribution Guide.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions