qmk_firmware icon indicating copy to clipboard operation
qmk_firmware copied to clipboard

[Core] Quantum Painter - LVGL Integration

Open Jpe230 opened this issue 3 years ago • 3 comments

Description

This PR aims to integrate LVGL (Light and Versatile Embedded Graphics Library) into QMK by utilizing Quantum Painter's APIs and drivers.

This PR includes the following:

  • Addition of LVGL v8.2 as a submodule.
  • Hooking LVGL internal ticks into quantum's main loop by using deferred executions.
  • Public API to attach/detach a QP display.
  • Enable the use of a lv_conf.h user defined file to enable/disable features, much like the rest of the ChibiOS configs. (Courtesy of @tzarc, thanks Tzarc!)
  • Documentation of the feature
  • Onekey keymap of the feature.

Worth mentioning that English isn't my first language, so I expect to bounce with maintainers the wording of the documentation....

Types of Changes

  • [x] Core
  • [ ] Bugfix
  • [x] New feature
  • [ ] Enhancement/optimization
  • [ ] Keyboard (addition or update)
  • [x] Keymap/layout/userspace (addition or update)
  • [x] Documentation

Issues Fixed or Closed by This PR

Checklist

  • [x] My code follows the code style of this project: C, Python
  • [x] I have read the PR Checklist document and have made the appropriate changes.
  • [x] My change requires a change to the documentation.
  • [x] I have updated the documentation accordingly.
  • [x] I have read the CONTRIBUTING document.
  • [x] I have added tests to cover my changes.
  • [x] I have tested the changes and verified that they work and don't break anything (as well as I can manage).

Jpe230 avatar Sep 27 '22 02:09 Jpe230

We'll need changes to the root Makefile too, specifically for handling submodules.

I think that may need to go to master in order to deal with swapping branches and the like, people are likely going to end up with an lvgl directory otherwise, and end up adding it to their master-based branches.

tzarc avatar Sep 27 '22 03:09 tzarc

And, of course, we'll need a qmk/lvgl mirror.

tzarc avatar Sep 27 '22 03:09 tzarc

Would also be good if you could incorporate your jpe230/lvgl_makefile_changes modifications too. We can backport the appropriate lines to master afterwards.

tzarc avatar Oct 14 '22 12:10 tzarc