grvl
Introduction
Graphics Rendering Visual Library [1] (grvl) is a lightweight GUI library for Zephyr-based MCUs, providing a portable solution that is both suitable for resource-constrained devices and offers a modern, responsive user experience.
Internally, grvl links to a standard XML library called tinyxml [2] that is used for parsing the GUI config instead of code. The UI interaction can be scripted with JavaScript using the integrated Duktape [3] JavaScript engine.
grvl features:
Native support for PNG and JPEG graphics
Simple DirectMedia Layer compatibility
POSIX compliance and Zephyr support
A collection of built-in components
Popups
Fonts
Labels
Buttons
Sliders
User-defined prefabs that can be used to instantiate complex structures at runtime
XML-based layout and a JavaScript engine
grvl is licensed under the Apache License 2.0. tinyxml is licensed under the Zlib license. Duktape is licensed under the MIT License.
Usage with Zephyr
To use grvl as a Zephyr module, add the following entry:
manifest:
projects:
- name: grvl
url: https://github.com/antmicro/grvl
revision: main
path: modules/grvl # adjust the path as needed
to a Zephyr submanifest (e.g. zephyr/submanifests/grvl.yaml) and run west update, or add it
as a West project in your project’s west.yaml manifest.
For more information, see the grvl documentation [4] or the grvl blog article [6].
You can also try an interactive Zephyr calendar demo [5].