Help getting first Display (TFT) to work with ESPHome

I want to see If I can connect a simple TFT display to my board to view my sensor distance readings, rather than having to use the ESPHome log viewer or Home Assistant dashboard.
I’m still very new to all things electrical and have been reading the ESPHome ‘Display’ component info here: Display Component — ESPHome

To keep things simple I’ve unplugged my ultrasonic sensor from my board and removed the code for it in my ESPHome config file, so that I can just test the display and the display code by itself, before trying to get my sensor readings to display.

I’ve fallen at the first hurdle and don’t know if its a problem with the GPIO pins I’ve assigned, a hardware issue with the display, or the ESPHome driver.

Hardware involved:
Board: Lolin D1 Mini Pro (ESP8266) - Powered via USB
Display: Waveshare 0.96" TFT 160 x 80 SPI ST7735S Controller

Connections:
Display VCC → Board 3.3v
Display GND → Board GND
Display DIN → Board MOSI GPIO13
Display CLK → Board SCK GPIO14
Display CS → Board SS GPIO15
Display DC → Board GPIO0
Display RST → Board GPIO2
Display BL → N.C

ESPHome config:

esphome:
  name: display

esp8266:
  board: d1_mini_pro

spi:
  clk_pin: GPIO14
  mosi_pin: GPIO13

display:
  - platform: st7735
    model: "INITR_MINI160X80"
    reset_pin: GPIO2
    cs_pin: GPIO15
    dc_pin: GPIO0
    rotation: 0
    device_width: 160
    device_height: 80
    col_start: 0
    row_start: 0
    eight_bit_color: true
    update_interval: 5s
    lambda: |-
      it.line(0, 0, 50, 50);

The above config compiles and uploads to my board fine, however the display isn’t working correctly.
The first half of the display from left to right is white, however the right half of the screen is showing multicoloured ‘white noise’ - sorry , the best I can describe it!
My black line code does render as a diagonal line, but not in the top left corner of the screen as expected. Imagining the screen from left to right divided into 4 quarters, my line starts in the top left of the second quarter of the screen. It ALSO replicates underneath this. Imagining the screen divided into 2 halves, top and bottom, the top half replicates on the bottom half.

I know that my display uses the ST7735S controller, and I am referencing the ESPHome native support for the ST7735 controller, so first thoughts, after checking my wiring/connections are ok, is this difference is causing the incompatibility?

A couple of picture to illustrate the problem better than my words:
image
image

Any help appreciated

I’ve subsequently downloaded the code from the display manufacturers website File:0.96inch-OLED-Code.7z - Waveshare Wiki
This contains some demo code for Arduino. I loaded up one of the sketches into my Arduino IDE and the screen works perfectly. This confirmed my esp board, wiring, the display, and my pin designations are all ok.

Does this mean that I will have to raise this as a feature request on thr ESPHome github page? In the meantime is there anyway to integrate/port the relevant arduino code into the ESPHome code for this ST7735S device? The Arduino IDE does need a couple of additional libraries to be referenced when compiling the code, which are the Adafruit_GFX.h and the Adafruit_7735.h

Not sure if this is even possible, but just keen to start using the display as soon as possibly, ideally with ESPHome…

That’s what I’ve used, but it isn’t working for the ST7735S model…