Skip to content
/ lvgl Public
forked from lvgl/lvgl

Full-featured embedded GUI library with animation, opacity and anti-aliasing using one frame buffer

License

Notifications You must be signed in to change notification settings

cy99/lvgl

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Littlev Graphics Libraray

LittlevGL cover

Littlev Graphics Library 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.

Homepage: https://gl.littlev.hu

Table Of Content

Key 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 and external buttons

  • Multi language support with UTF-8 support

  • Fully customizable graphical elements

  • Hardware independent to use with any MCU or display

  • Scalable to operate with few memory (80 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

  • PC simulator to develop without embedded hardware

  • Tutorials, examples, themes for rapid development

  • Advanced support and professional GUI development service

  • Documentation and API references online

  • Free and open source under MIT licence

Porting

In the most sime case you need 4 things:

  1. Call lv_tick_inc(1) in every millisecods in a Timer or Task
  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. Call lv_task_handler() periodically in every few milliseconds ()

For more information visit https://gl.littlev.hu/porting

Project set-up

  1. Clone or download the lvgl repository: git clone https://github.com/littlevgl/lvgl.git
  2. Create project with your prefered IDE and add the lvgl folder
  3. Copy lvgl/lv_conf_templ.h as lv_conf.h next to the lvgl folder
  4. In the *_conf.h files delete the first #if 0 and its #endif. Let the default configurations at first.
  5. In your main.c: #include "lvgl/lvgl.h"
  6. In your main function:
    • lvgl_init();
    • tick, display and input device initialization (see above)
  7. To test create a label: lv_obj_t * label = lv_label_create(lv_scr_act(), NULL);
  8. In the main while(1) call lv_task_handler(); and make a few milliseconds delay (e.g. my_delay_ms(5);)
  9. Compile the code and load it to your embedded hardware

PC Simulator

If you don't have got an embedded hardware you can test the graphics library in a PC simulator. The simulator uses SDL2 to emulate a display on your monitor and a touch pad with your mouse.

There is a pre-configured PC project for Eclipse CDT in this repository: https://github.com/littlevgl/pc_simulator

Contributing

See CONTRIBUTING.md

Donate

If you are pleased with the graphics library and found it useful please support its further development:

Donate

About

Full-featured embedded GUI library with animation, opacity and anti-aliasing using one frame buffer

Resources

License

Code of conduct

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C 99.8%
  • Other 0.2%