-
Notifications
You must be signed in to change notification settings - Fork 930
Description
Is your feature request related to a problem?
The ESP-IDF currently supports several LCD controllers (e.g., ST7789, ILI9341, GC9A01), but it does not include native support for the ST7735S 0.96" 160×80 TFT modules.
These displays are widely used in compact UI applications, low-power devices and status screens, and the absence of an official driver requires developers to rely on third-party components or maintain custom drivers. This makes it difficult to integrate the panel cleanly using the esp_lcd API, and leads to duplicated effort across different projects.
I would like to contribute a fully working driver for this panel.
Describe the solution you'd like.
I have implemented a complete esp_lcd-compatible panel driver for the ST7735S 0.96" 160×80 display, including:
- initialization sequences for both Revision A and Revision B (different offsets and inversion modes),
- support for ESP32-C6 SPI peripherals,
- correct handling of address windows, color ordering, mirroring and rotation,
- an example application demonstrating initialization, drawing and orientation control.
The driver follows the design of existing esp_lcd_panel_* drivers such as ST7789 and SSD1306.
I would like to contribute this implementation to the esp_lcd component so that ST7735S displays become officially supported.
Describe alternatives you've considered.
No response
Additional context.
I have already tested the driver on real hardware:
- Display: ST7735S 0.96" 160×80 TFT (Adafruit Mini TFT)
- MCU: ESP32-C6 DevKitC-1
- Features verified:
- color fill,
- bitmap drawing,
- SPI operation at 20 MHz and 40 MHz,
- rotation (0°, 90°, 180°, 270°),
- address window correctness,
- revision-specific offsets (Rev A vs Rev B),
- backlight PWM.
If maintainers approve the contribution, I will create a pull request with the driver structured according to the ESP-IDF guidelines (components/esp_lcd/src/, proper Kconfig/CMake integration, and optional example under examples/peripherals/lcd/).
I also have an example project available in my GitHub repositories that demonstrates the driver in use.
Please note that the example is not fully completed yet: I was experimenting with adding image rendering support by converting images into .h files for display on the panel.
This example can be used for reference or verification if needed, and I will update or refine it according to any feedback from the maintainers.
If maintainers need any additional information, clarifications, or testing, I am available on Discord as well (username: t4v4res).
I am happy to assist with any follow-up questions or discussion regarding the integration of this driver.