esphome / esphome/feature-requests

Support for Sitronix ST7735S TFT Controller/Driver (Waveshare 0.96" SPI TFT Display)

Open
#1,730 6 comments 0 reactions 0 assignees View on GitHub
Type: Display
Dominant language
No language data
Stars
450
Forks
29
PR merge metrics
No merged PRs in 30d

Description

**Describe the problem you have/What new integration you would like**
I have a Waveshare 0.96" 80x160 TFT SPI Display which uses the ST7735S controller. The screen protector film has a Blue tab. This display is connected to my Lolin D1 Mini Pro ESP8266 board.
Configuring my ESPHome code to use the ST7735 platform doesn't work correctly with my ST7735S Blue tab display.
There is no Blue tab option to specify in the code, so I am using the model INITR_MINI160X80
Using default settings, the resulting display does not fill the screen, and there are borders of undriven screen.
To drive these borders and fill the screen, I have to set the width as 82, and height as 161.

Also, the RGB colours are either inverted or not mapped correctly. For example, if I try to fill the screen with RED only, I define:

```
color:
- id: my_red
red: 100%
green: 100%
blue: 100%
```

and create a display lambda

``
lambda: |-
it.fill(id(my_red));
``

however the result is a YELLOW screen.

If I create

```
color
- id: my_white
red: 100%
green: 100%
blue: 100%
```

the result is a BLACK screen.

If I create
```
color
- id: my_black
red: 0%
green: 0%
blue: 0%
```
the result is a WHITE screen.

**Please describe your use case for this integration and alternatives you've tried:**
I am using this display to show a visual readout of an ultrasonic sensor distance reading. I have erased my ESPHome config from my board and installed Arduino instead, and used the Demo code provided by the manufacturer, and the display works correctly.

If support for this display can be added, It could either be a new supported platform ST7735S, or alternatively added to the existing ST7735 platform as a configurable veriable?
https://esphome.io/components/display/st7735.html

**Additional context**
Details of this display can be found here, including Datasheet and Demo codes for Arduino, Rasp Pi, STM32:

https://www.waveshare.com/product/displays/lcd-oled/lcd-oled-3/0.96inch-lcd-module.htm
https://www.waveshare.com/wiki/0.96inch_LCD_Module
https://www.waveshare.com/wiki/File:0.96inch_LCD_Module_code.7z

Contributor guide

No contributing guide indexed for this repository

Research direction

Start with the existing ST7735 platform documented at the linked ESPHome page, then compare its behavior with the manufacturer’s Arduino demo code and display datasheet. Done means the Waveshare 0.96-inch ST7735S Blue tab display fills its 80x160 screen and renders colors correctly without manual dimension or color workarounds.

Written by the indexing model from the issue text.

Assessment

Tech stack
arduino
Domain
embedded-iot
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
30/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.