Requirements

Learn the minimal memory and other requirements to run LVGL.

Edit on GitHub

Basically, every modern controller which is able to drive a display is suitable to run LVGL. The minimal requirements are:

  • Processor: 16, 32 or 64 bit microcontroller or processor (> 16 MHz clock speed is recommended)

  • Flash/ROM: > 64 kB for the very essential components (> 180 kB is recommended)

  • RAM:

    • Static RAM usage: ~2 kB depending on the used features and Widget types
    • Stack: > 2kB (> 8 kB recommended)
    • Dynamic data (heap): > 2 KB (> 48 kB is recommended if using many GUI Widgets). Set by LV_MEM_SIZE in lv_conf.h.
    • Display buffer: > "Horizontal resolution" pixels (> 10 × "Horizontal resolution" is recommended)
    • One frame buffer in the MCU or in an external display controller
  • Operating system: Bare metal or any RTOS (FreeRTOS, Zephyr, NuttX, etc.) or desktop OS (e.g. Linux)

  • Frameworks: CMake, Make, Managed builds (e.g. Eclipse), Arduino, Chip vendor IDEs, also easy to integrate into any build system

  • GPU: LVGL has its own software rendering engine, but GPUs in MCUs can be enabled in lv_conf.h. OpenGL ES is needed only to render glTF

  • C99 or newer compiler

  • Basic C (or C++) knowledge:

Memory usage may vary depending on architecture, compiler and build options.

Last updated on