Skip to content

esp_lcd: Add ST7735S driver for 0.96" 160×80 TFT (Adafruit Mini TFT) with ESP32-C6 support (IDFGH-16928) (AEGHB-1337) #624

@T4V4RES

Description

@T4V4RES

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions