Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Core] Quantum Painter - LVGL Integration #18499

Merged
merged 12 commits into from
Dec 12, 2022
Merged

Conversation

Jpe230
Copy link
Contributor

@Jpe230 Jpe230 commented Sep 27, 2022

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

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

Issues Fixed or Closed by This PR

Checklist

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

Copy link
Member

@zvecr zvecr left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

  • data/keyboard-config-templates/chibios/ should be data/templates/<something>
  • some files are missing licence headers

quantum/main.c Outdated Show resolved Hide resolved
@tzarc
Copy link
Member

tzarc commented Sep 27, 2022

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
Copy link
Member

tzarc commented Sep 27, 2022

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

Copy link
Member

@tzarc tzarc left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Just some verbiage. LGTM otherwise.

docs/_summary.md Outdated Show resolved Hide resolved
docs/quantum_painter_lvgl.md Outdated Show resolved Hide resolved
docs/quantum_painter_lvgl.md Outdated Show resolved Hide resolved
docs/quantum_painter_lvgl.md Show resolved Hide resolved
docs/quantum_painter_lvgl.md Outdated Show resolved Hide resolved
@tzarc
Copy link
Member

tzarc commented Oct 14, 2022

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

Jpe230 and others added 2 commits October 14, 2022 12:39
Co-authored-by: Nick Brassel <nick@tzarc.org>
Copy link
Member

@KarlK90 KarlK90 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Tested with ST7789 and RP2040 development board, works nicely. Also rather low impact on the scan rate, which is very welcome.

@tzarc tzarc merged commit 102f22f into qmk:develop Dec 12, 2022
omikronik pushed a commit to omikronik/qmk_firmware that referenced this pull request Jan 22, 2023
Co-authored-by: Nick Brassel <nick@tzarc.org>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants