Skip to content

Commit 01c6dd0

Browse files
authored
Display refactor and SH8601 support (#383)
* Initial SH8601 support * refactor: Dedicated write command function * feat: Set display brightness for SH8601 * doc: Updated comment * refactor: Moved display backlight to driver * refactor: Refactored display driver: - Moved backlight to respective driver implementations - Created dedicated write commands functions * refactor: Updated all displaydriver usages to the new driver * feat: Updated display_driver example to include T-Encoder-Pro support * build: Removed redundant SRC directory * refactor: Move backlight back to the display component * refactor: Split up dislay configuration structs * fix: Removed redundant struct member * refactor: Removed brightness control from lcd display drivers * fix: Take colordepth into consideration for SH8601 init * refactor: Updated examples and other components using displays * refactor: Removed some magic numbers * perf: Optimized send_lines by removing 1 setup transaction * fix: Default initialize member as null * fix: Components now send the right transaction.. * refactor: Applied PR feedback * refactor: Split init function into multiple functions * refactor: Changed LcdInitCommands to not require explicit length * doc: Updated docs for new display driver * doc: Updated more documentation * fix: Added missing const * refactor: Moved the interation count to the middle * fix: Fixed refactor leftovers * fix: Fixed seeed-sudio-round backlight * doc: Updated display example README * fix: Default initialized Display parameter
1 parent 97892fe commit 01c6dd0

29 files changed

+1357
-733
lines changed

components/display/include/display.hpp

+199-99
Large diffs are not rendered by default.
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
idf_component_register(
22
INCLUDE_DIRS "include"
3-
SRC_DIRS "src"
43
REQUIRES display driver esp_lcd led
54
)

components/display_drivers/example/README.md

+9
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,14 @@ This example is designed to show how the `display_drivers` component can be used
44
to drive various different displays with LVGL and a simple GUI (that is
55
contained within the example: `main/gui.hpp`).
66

7+
## Demo
8+
9+
Below can be seen what the demo looks like on the T-Encoder-Pro devkit:
10+
11+
![SH8601](https://github.com/user-attachments/assets/2bca4a03-3777-4e49-a467-29fa50ca0202)
12+
13+
https://github.com/user-attachments/assets/fef57074-bab7-4fdf-a25e-f4590773c926
14+
715
## How to use example
816

917
### Hardware Required
@@ -47,3 +55,4 @@ The example has the following functionality:
4755
* `lcd_send_lines` and `lcd_wait_lines` for queued (non-blocking) transmit example
4856
* `Gui` class (contained in `main/gui.hpp`) which encapsulates some very basic
4957
LVGL components into an object that manages gui update task and synchronization.
58+

components/display_drivers/example/main/Kconfig.projbuild

+8
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,14 @@ menu "Display Drivers Example Configuration"
1313
bool "ESP BOX"
1414
config SMARTKNOB_HA
1515
bool "SMARTKNOB-HA"
16+
config T_ENCODER_PRO
17+
bool "T-ENCODER-PRO"
1618
endchoice
1719

20+
config DISPLAY_QUAD_SPI
21+
bool "Quad SPI"
22+
default y if T_ENCODER_PRO
23+
help
24+
Use a Quad SPI bus for the display
25+
1826
endmenu

0 commit comments

Comments
 (0)