Skip to content

feat(display_drivers): Update display drivers to share code by refactoring into base class. Add SpiPanelIo helper class as well#620

Merged
finger563 merged 7 commits into
mainfrom
feat/display-drivers-refactor
May 28, 2026
Merged

feat(display_drivers): Update display drivers to share code by refactoring into base class. Add SpiPanelIo helper class as well#620
finger563 merged 7 commits into
mainfrom
feat/display-drivers-refactor

Conversation

@finger563
Copy link
Copy Markdown
Contributor

@finger563 finger563 commented May 28, 2026

Description

  • Refactor display_drivers component files to share code and be proper class objects, rather than classes with static methods
  • Add SpiPanelIo for SPI communications with display drivers
  • Update all relevant BSPs to use new objects rather than the older static methods
  • Update examples to improve styling of touch points / circles (make them transparent cyan)
  • Update examples to improve rendering performance of touch points / circles (put them into a single object rather than each being their own object, do not allocate each touch, and invalidate only the newest and oldest touch point regions)
  • Fix missing or incorrect / incomplete display docs
  • Update motorgo-mini to use new SPI class for encoders
    • remove unused / invalid code setting address on the transaction that wasn't clocked out
  • Update mt6701/example to use new SPI class
    • remove unused / invalid code setting address on the transaction that wasn't clocked out

Motivation and Context

  • Allows better design and code reuse
  • More easily allows systems with multiple displays
  • Improves example look and feel
  • Updates BSPs and examples to use new espp::Spi component as well as new display driver classes for cleaner / more consistent code and better education about how to use library

How has this been tested?

  • Build and run:
    • m5stack-tab5/example
    • esp-box/example
    • byte90/example
    • t-deck/example
    • smartpanlee-sc01-plus/example
    • ws-s3-touch/example
    • motorgo-mini/example
    • mt6701/example

Screenshots (if appropriate, e.g. schematic, board, console logs, lab pictures):

Types of changes

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to not work as expected)
  • Documentation Update
  • Hardware (schematic, board, system design) change
  • Software change

Checklist:

  • My change requires a change to the documentation.
  • I have added / updated the documentation related to this change via either README or WIKI

Software

  • I have added tests to cover my changes.
  • I have updated the .github/workflows/build.yml file to add my new test to the automated cloud build github action.
  • All new and existing tests passed.
  • My code follows the code style of this project.

…oring into base class. Add SpiPanelIo helper class as well
Copilot AI review requested due to automatic review settings May 28, 2026 04:15
@finger563 finger563 self-assigned this May 28, 2026
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Copilot encountered an error and was unable to review this pull request. You can try again by re-requesting a review.

@github-actions
Copy link
Copy Markdown

github-actions Bot commented May 28, 2026

✅Static analysis result - no issues found! ✅

Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 94 out of 94 changed files in this pull request and generated 2 comments.

Comment thread components/m5stack-tab5/example/sdkconfig.defaults Outdated
Comment thread components/display_drivers/src/spi_panel_io.cpp Outdated
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 95 out of 95 changed files in this pull request and generated no new comments.

Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 95 out of 95 changed files in this pull request and generated no new comments.

@finger563 finger563 merged commit 17f60bb into main May 28, 2026
108 of 109 checks passed
@finger563 finger563 deleted the feat/display-drivers-refactor branch May 28, 2026 15:34
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.

2 participants