README.rst
1.. zephyr:code-sample:: lvgl-demos
2 :name: LVGL demos
3 :relevant-api: display_interface
4
5 Run LVGL built-in demos.
6
7Overview
8********
9
10A sample showcasing upstream LVGL demos.
11
12* Music
13 The music player demo shows what kind of modern, smartphone-like user interfaces can be created on LVGL.
14* Benchmark
15 The benchmark demo tests the performance in various cases. For example rectangle, border, shadow, text, image blending, image transformation, blending modes, etc.
16* Stress
17 A stress test for LVGL. It contains a lot of object creation, deletion, animations, styles usage, and so on. It can be used if there is any memory corruption during heavy usage or any memory leaks.
18* Widgets
19 Shows how the widgets look like out of the box using the built-in material theme.
20* Flex Layout
21 Showcases the use of the flex layout.
22* Keypad and Encoder
23 Shows how to control widget with a keypad and hardware encoder.
24* Render
25 Collection of multiple rendering tests.
26* Scroll
27 Shows the scroll behaviour of a panel with a large list.
28* Multilang
29 Shows a UI with multilanguage options, supporting unicode characters.
30
31More details can be found in `LVGL demos Readme`_.
32
33Requirements
34************
35
36* A board with display, ideally with 480x272 resolution or higher.
37* A pointer input device: touchpad, mouse, or touch screen capable display, compatible with :dtcompatible:`zephyr,lvgl-pointer-input`.
38
39Note that other input devices types are not demonstrated in these demos, namely keyboards, keypads (:dtcompatible:`zephyr,lvgl-keypad-input`), rotary encoders (:dtcompatible:`zephyr,lvgl-encoder-input`) and hardware buttons (:dtcompatible:`zephyr,lvgl-button-input`).
40
41Building and Running
42********************
43
44Example building for :zephyr:board:`mimxrt1060_evk`:
45
46.. zephyr-app-commands::
47 :zephyr-app: samples/modules/lvgl/demos
48 :board: mimxrt1060_evk
49 :goals: build flash
50
51These demos can be built for simulated display environment as follows:
52
53.. zephyr-app-commands::
54 :zephyr-app: samples/modules/lvgl/demos
55 :host-os: unix
56 :board: native_sim
57 :gen-args: -DCONFIG_LV_Z_DEMO_MUSIC=y
58 :goals: run
59 :compact:
60
61.. zephyr-app-commands::
62 :zephyr-app: samples/modules/lvgl/demos
63 :host-os: unix
64 :board: native_sim
65 :gen-args: -DCONFIG_LV_Z_DEMO_BENCHMARK=y
66 :goals: run
67 :compact:
68
69.. zephyr-app-commands::
70 :zephyr-app: samples/modules/lvgl/demos
71 :host-os: unix
72 :board: native_sim
73 :gen-args: -DCONFIG_LV_Z_DEMO_STRESS=y
74 :goals: run
75 :compact:
76
77.. zephyr-app-commands::
78 :zephyr-app: samples/modules/lvgl/demos
79 :host-os: unix
80 :board: native_sim
81 :gen-args: -DCONFIG_LV_Z_DEMO_WIDGETS=y
82 :goals: run
83 :compact:
84
85.. zephyr-app-commands::
86 :zephyr-app: samples/modules/lvgl/demos
87 :host-os: unix
88 :board: native_sim
89 :gen-args: -DCONFIG_LV_Z_DEMO_FLEX_LAYOUT=y
90 :goals: run
91 :compact:
92
93.. zephyr-app-commands::
94 :zephyr-app: samples/modules/lvgl/demos
95 :host-os: unix
96 :board: native_sim
97 :gen-args: -DCONFIG_LV_Z_DEMO_KEYPAD_AND_ENCODER=y
98 :goals: run
99 :compact:
100
101.. zephyr-app-commands::
102 :zephyr-app: samples/modules/lvgl/demos
103 :host-os: unix
104 :board: native_sim
105 :gen-args: -DCONFIG_LV_Z_DEMO_RENDER=y
106 :goals: run
107 :compact:
108
109.. zephyr-app-commands::
110 :zephyr-app: samples/modules/lvgl/demos
111 :host-os: unix
112 :board: native_sim
113 :gen-args: -DCONFIG_LV_Z_DEMO_SCROLL=y
114 :goals: run
115 :compact:
116
117.. zephyr-app-commands::
118 :zephyr-app: samples/modules/lvgl/demos
119 :host-os: unix
120 :board: native_sim
121 :gen-args: -DCONFIG_LV_Z_DEMO_MULTILANG=y
122 :goals: run
123 :compact:
124
125Alternatively, if building from a 64-bit host machine, the previous target
126board argument may also be replaced by ``native_sim/native/64``.
127
128References
129**********
130
131.. target-notes::
132
133.. _LVGL demos Readme: https://github.com/zephyrproject-rtos/lvgl/blob/zephyr/demos/README.md
134