Skip to content
forked from lvgl/lvgl

Graphics library to create embedded GUI with easy-to-use graphical elements, beautiful visual effects and low memory footprint. Anti-aliasing, opacity, animations using only one frame buffer.

License

Notifications You must be signed in to change notification settings

javierfileiv/lvgl

 
 

Repository files navigation

Littlev Graphics Library   Tweet

price status licence version language language LittlevGL cover

LittlevGL provides everything you need to create a Graphical User Interface (GUI) on embedded systems with easy-to-use graphical elements, beautiful visual effects and low memory footprint.

Star the project if you like it!

Website · Live demo · Simulator · Docs · Blog

Features

  • Powerful building blocks buttons, charts, lists, sliders, images, etc.
  • Advanced graphics with animations, anti-aliasing, opacity, smooth scrolling
  • Various input devices touch pad, mouse, keyboard, encoder, buttons, etc.
  • Multi-language support with UTF-8 encoding
  • Fully customizable graphical elements
  • Hardware independent to use with any microcontroller or display
  • Scalable to operate with little memory (50 kB Flash, 10 kB RAM)
  • OS, External memory and GPU supported but not required
  • Single frame buffer operation even with advances graphical effects
  • Written in C for maximal compatibility
  • Simulator to develop on PC without embedded hardware
  • Tutorials, examples, themes for rapid development
  • Documentation and API references online

Supported devices

Basically, every device which is capable of driving a display is suitable to run LittlevGL. The minimal requirements:

  • 16, 32 or 64-bit microcontroller or processor
  • > 16 MHz clock speed
  • 8 kB RAM for static data and > 2 KB RAM for dynamic data (graphical objects)
  • 64 kB flash (program memory)
  • Optionally ~1/10 screen sized memory for internal buffering (at 240 × 320, 16-bit colors it means 15 kB)

Just to mention a few platforms:

Quick start in a simulator

Try LittlevGL in a simulator on you PC without any embedded hardware. Choose a project with your favourite IDE:

Eclipse CodeBlock Visual Studio PlatfomIO Qt Creator
Eclipse CodeBlocks VisualStudio PlatformIO QtCreator
Cross-platform
with SDL
Native Windows Cross-platform
with SDL
Cross-platform
with SDL
Cross-platform
with SDL

Porting to an embedded hardware

In the most simple case you need to do 5 things:

  1. Call lv_tick_inc(x) every x milliseconds in a Timer or Task (x should be between 1 and 10)
  2. Register a function which can copy a pixel array to an area of the screen.
  3. Register a function which can read an input device. (E.g. touch pad)
  4. Copy lv_conf_templ.h as lv_conf.h next to lvgl and set at least LV_HOR_RES, LV_VER_RES and LV_COLOR_DEPTH.
  5. Call lv_task_handler() periodically every few milliseconds.

For a detailed description visit https://docs.littlevgl.com/#Porting Or check the Porting tutorial

Contributing

To ask questions and discuss topics we use GitHub's Issue tracker. You contribute in several ways:

  • Answer other's question click the Watch button on the top to get notified about the issues
  • Report and/or fix bugs using the issue tracker in Pull-request
  • Suggest and/or implement new features using the issue tracker in Pull-request
  • Improve and/or translate the documentation learn more here
  • Write a blog post about your experiences learn more here
  • Upload your project or product as a reference to this site

Before contributing, please read CONTRIBUTING.md. For more info read this blog post.

Donate

If you are pleased with the library, found it useful, or you are happy with the support you got, please help its further development:

Donate

About

Graphics library to create embedded GUI with easy-to-use graphical elements, beautiful visual effects and low memory footprint. Anti-aliasing, opacity, animations using only one frame buffer.

Resources

License

Code of conduct

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C 99.9%
  • Other 0.1%