# Requirements (/introduction/requirements)



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

* 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 <ApiLink name="LV_MEM_SIZE" /> in `lv_conf.h`.
  * Display buffer:  > &#x2A;"Horizontal resolution"&#x2A; pixels (> 10 X &#x2A;"Horizontal resolution"* is recommended)
  * One frame buffer in the MCU or in an external display controller
* C99 or newer compiler
* Basic C (or C++) knowledge:

  * [pointers](https://www.tutorialspoint.com/cprogramming/c_pointers.htm).
  * [structs](https://www.tutorialspoint.com/cprogramming/c_structures.htm).
  * [callbacks](https://www.geeksforgeeks.org/c/callbacks-in-c/).

<Callout type="info">
  *Memory usage may vary depending on architecture, compiler and build options.*
</Callout>
