Subscribe for interesting News and useful Tutorials.   (one or two newsletter per month)


New release v5.0.0 - Unicode support, themes, simpler architecture, new object types, bugfixes

Here is the v5.0.0 release with a much simpler architecture. Now the graphics library means only the lvgl repository. Besides the architectural changes Unicode support, style themes, new smart phone-like object types are added. To make easier to get started a tutorial is released in lv_examples repository

Note that it's major release so it's not backward compatible.

To learn the new features its highly recommended to read the basics in the Documentation

Architectural changes

  • Integrate misc into lvlg
  • Integrate hal** into lvlg
  • Convert Applications into simple examples
  • Rename repository from proj_pc to pc_simulator
  • Create a new independent repository for examples (lv_examples)
  • Create a new independent repository for development boards (lv_boards)
  • Create a new independent repository for drivers (lv_drivers)

System level changes

  • Object type inheritance is hidden. Every object have its own API (except lv_obj_set/get_... functions)
  • Rework lv_style_t to be more versatile
  • Rename (and slightly rework) some function, defines and enums to be more descriptive
  • Make styles to global variable for less typing
  • Make fonts to global variables for less typing and easy user-font adding
  • Join symbol fonts into normal built-in fonts (use normal fonts, and lvlg will find symbol fonts too)
  • rename lvdispi... to lvindev...
  • Simplified action functions: lv_res_t action (lv_obj_t * obj) use lv_indev_act()if required

New features

  • Unicode support with UTF-8 decode
  • Themes with predefined styles
  • lv_tabview: new object type to organize content with tabs
  • lv_sw: new object type, switch, turn on/off by tap (a little slider)
  • lv_roller: new object type, a roller to select a value (like on smartphones)
  • lv_kb: new object type, Keyboard
  • lv_btnm: lv_btnm_set_toggle() to toggle last button
  • lv_btnm: rework width control. Now a control byte is used for width, hide and no long press settings.
  • lv_ta: cursor types
  • lvgauge rework to make it more like line meter (remove background but add scale lines)
  • partial border draw in styles
  • Hide anti-aliasing upscale (no x * LV_DOWSCALE is required)


Due to lv_tests massive number of bug fixes happened.

Did you like this article? Share it with your friends!

Subscribe for more interesting News and useful Tutorials   (one or two newsletter per month)

Have a question or have experience in this field? Share with us!

MarkDown supported

2018-01-02 22:22:52

Congratulations on the release. Littlevgl looks great. I haven't used it yet, but I'm very very tempted to try it out.

2018-01-03 10:50:48

Thank you Frank! I hope you will try it in the future!

2018-01-18 07:02:44

This GUI library is very good, I have successfully ported this GUI to my own STM32F407 development board. But as a Chinese developer, how do I design a font file if I want to use Chinese? How to ensure Chinese + ASCII display normal?

2018-01-18 09:11:17

Thanks xiaolei! Please check this site: Font converter If you stuck at some point, don't hesitate to ask at GitHub:

2018-01-18 09:31:24

thanks for the reply! First of all, I am very sorry for my English is not very good, my message translated using Google translation. I understand what you are saying about this method, but the method you introduced can only produce a piece of continuous font lattice data. However, the number of common Chinese characters in Chinese characters is huge and discontinuous (Chinese common characters are 20902 words and Unicode codes Range 0x4E00-0x9FA5), which means that I need a large external storage body to store this piece of continuous encoded font lattice data. But in general, the embedded system needs a limited number of text, usually 200-500 words, so I need a solution to make 200-500 words as a font file, the Unicode encoding of the text in the font is not Continuous, so that you can use the Chinese font without increasing the cost of the hardware. Currently I've implemented the functionality I need by adjusting the lv_font_get_bitmap () and lv_font_get_width () functions in the lv_font.c file, but this is not universally applicable and I hope you can consider adding support for this requirement.

2018-01-18 09:34:53

Don't worry, your English is absolutely understandable! I'm planning to add a feature like this! in the next release (v5.1) hopefully it will be released in a month.

2018-03-05 11:15:45

Library is great for embedded development. Although circle and Rectangle is already implemented, it will be greater if it supports other common shapes drawing functions like Polygon, Arcs etc.. Then it will be possible to create custom Gui Elements ( Widgets ).

LittlevGL - Open-source Embedded GUI Library

LittlevGL 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 low memory footprint.

If you like LittlevGL, please
support its deveopment!

The founder of Littlev Graphics Library (LittlevGL) and related software modules is:
Gábor Kiss-Vámosi
All Rights Reserved ©  2018 Hungary