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].

Reference