-
-
Notifications
You must be signed in to change notification settings - Fork 3.4k
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
Implement i80 bus for ili9xxx displays #6537
base: dev
Are you sure you want to change the base?
Conversation
Hey there @nielsnl68, mind taking a look at this pull request as it has been labeled with an integration ( |
Hey there @esphome/core, mind taking a look at this pull request as it has been labeled with an integration ( |
Codecov ReportAll modified and coverable lines are covered by tests ✅
Additional details and impacted files@@ Coverage Diff @@
## dev #6537 +/- ##
==========================================
+ Coverage 53.70% 53.90% +0.19%
==========================================
Files 50 50
Lines 9408 9623 +215
Branches 1654 1698 +44
==========================================
+ Hits 5053 5187 +134
- Misses 4056 4112 +56
- Partials 299 324 +25 ☔ View full report in Codecov by Sentry. |
In case this ends up being mentioned in documentation: Seeed is only a distributor for the WT32-SC01 and WT32-SC01 Plus boards. They're developed & made by Wireless-Tag, which makes a few things that'd be compatible with ESPHome. |
Also on the topic of documentation, to avoid confusion the docs should probably mention that i80 is also commonly called 8080 (or more rarely Intel 8080, or Intel Parallel, or some combination of those words). And some specs call it DBI Type B, just for fun. And worth mentioning this is only only supporting 8bit bus width for now. Someone will inevitably end up trying to use a display that only supports 16bit. |
The name is discussed in the docs, and it does specifically say it requires 8 data lines, so one would hope that no-one will try it with 16 (which will fail config validation anyway.) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is part of my suggestions.
Sorry need to clean the below. I did go something wrong.
Please take a look at the requested changes, and use the Ready for review button when you are done, thanks 👍 |
We can always change the doc's so it could also be used with 16 bit data busses. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
this is what i have so far
Hey there @esphome/core, mind taking a look at this pull request as it has been labeled with an integration ( |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Please split up this PR into PRs for the separate component changes?
I know its all a big dependency chain, but its much easier to review and merge them individually. 🙏
Started - I have a PR for the i80 bus. Will have to wait for that to be merged before generating the others since they will fail against the dev branch until then. So have left the original PR in place as a draft, to support early adopters using it via external components, given this could be a drawn-out process. |
Hello @clydebarrow ! Thank you for your work!
But I am a little confused about the fact that it can't work with 40mHz data rate (as with ArduinoGFX and LovyanGFX) and the 250ms full redraw time (when doing |
Use LVGL for fast drawing: #6363 And I'm pretty sure LoyanGFX doesn't actually drive it at 40MHz, I believe the ESP32 maxes out at 20MHz I/O clock for parallel transfers. Just because someone wrote 40MHz in the setup doesn't mean it actually achieves that. |
Actually, I'm now drawing the UI with it. Thanks! |
Wow |
What does this implement/fix?
NOTE
This PR has been changed to draft status, since it is going to be replaced by 3 separate PRs. In the meantime you can use this PR as an external component, e.g. for the W32-SC01-Plus display:
Types of changes
Add a new bus parallel type -
i80
- used for interfacing LCD display controllers. This is used in a similar way to thespi
component, and is utilised by theili9xxx
display driver, enabling support for the Seeed W32-SC01-Plus and the LilyGo T-Display S3.The changes have been tested on the above as well as numerous SPI interfaced displays previously supported by
ili9xxx
to ensure that nothing has been broken in the process.Related issue or feature (if applicable): fixes
Pull request in esphome-docs with documentation (if applicable): esphome/esphome-docs#3761
Test Environment
Example entry for
config.yaml
:Checklist:
tests/
folder).If user exposed functionality or configuration variables are added/changed: