LVGL Development Preparation

LVGL Development PreparationIntroduction to LVGLLVGL's core advantageslv_binding_micropythonCore FeaturesApplicable scenariosLimitation of UseAdvantagesHow to learn lvgl on K230Quick Start

This tutorial is the necessary foundation for subsequent LVGL development

Although you can learn how to write lvgl without the optional screen, many touch-related functions cannot be used, and the learning experience will be poor

Introduction to LVGL

LVGL (Light and Versatile Graphics Library) is a free, open source graphics library designed specifically for embedded systems.

If you want to draw simple lines and graphics on K230, you can use the draw_xxxx series of graphics processing methods. For details, please refer to the previous tutorial. If you want to display some more complex graphics on K230 that can interact with the user (such as text boxes, buttons, progress bars, etc.)

Then we usually choose a GUI (Graphical User Interface) library to implement it. LVGL is a very useful GUI library.

LVGL's core advantages

Low resource usage

Cross-platform compatibility

Development efficiency

lv_binding_micropython

Github link lvgl/lv_binding_micropython: LVGL binding for MicroPython

Note: Github is often inaccessible, which is normal. Not reading the content of this link will not affect the subsequent learning.

In the previous article, we talked about LVGL. The original LVGL is actually a C language project and cannot be programmed using Micropython. As more and more embedded scenarios are programmed using Micropython, the lv_binding_micropython project was born.

lv_binding_micropython is an open source project that binds LVGL to MicroPython, allowing developers to develop LVGL graphical interfaces using the Python language. The following are the main features:

Core Features

  1. Ease of use
  1. Fully functional

Applicable scenarios

Limitation of Use

  1. Performance overhead
  1. Hardware requirements

Advantages

How to learn lvgl on K230

LVGL is a relatively complex component library. Our tutorial is difficult to cover all the content, so it is necessary to read the official documentation.

The lvgl library in the K230 firmware uses version v8.3

The official documentation link is as follows: Welcome to the documentation of LVGL! — LVGL documentation

If the link is invalid, you can find LVGL.pdf in our development board documentation, which is an offline version of the document backup

The official tutorial is mainly written in C language. Although there are parts written in Micropython, there are inconsistencies between the writing in the document and the actual call , such as differences in function names and calling methods. To solve this problem, I printed out the real constant writing and function names of LVGL in the K230 firmware and put them in the development board data. You need to combine the official document and the actual supported calling writing (0. Development board data/ Other third-party documents/ lvgl_.txt) to develop and learn.

Quick Start

Complete code file [Source code summary / 12.Lvgl / 01.start.py]

The following is an example of the basic structure of a lvgl code

The basic structure includes the following main parts:

Display device initialization:

LVGL initialization:

Main loop:

Display refresh callback:

Cleaning process:

These steps are essential for using lvgl on K230. Although the code looks a lot, basically no modification is required. Just copy it every time you write a new LVGL program.

image-20250224142841072

When we run this code example, we can see that a white background appears on the K230 screen and no error message appears, which means that lvgl initialization is successful.

In the following chapters, we will introduce several commonly used components of LVGL.