Can't get a ST7735 display to render properly

I purchased a couple of ST7735 TFT displays from AliExpress (the 1.8" from here) and have been trying to make it work with ESPHome but I can’t seem to make it render properly.

The display is connected to the board as follows:

Display NodeMCU
VCC 3.3v
GND GND
CS D8
RESET D3
A0 D4
SDA D7
SCK D5
LED 3.3v

My YAML file:

substitutions:
  device_name: testing-board
  id_prefix: testing_board
  friendly_name: "Testing"
  platform: ESP8266
  board: nodemcuv2

ota:
  password: !secret ota_password

wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password

captive_portal:

logger:

api:

time:
  - platform: homeassistant
    id: homeassistant_time

esphome:
  name: ${device_name}
  platform: ${platform}
  board: ${board}

font:
  - file: 'fonts/DroidSansMono.ttf'
    id: mono8
    size: 8
    
spi:
  clk_pin: D5
  mosi_pin: D7
  
display:
  - platform: st7735
    model: "INITR_REDTAB"
    reset_pin: D3
    cs_pin: D8
    dc_pin: D4
    rotation: 0
    device_width: 128
    device_height: 160
    col_start: 0
    row_start: 0
    eight_bit_color: true
    update_interval: 5s
    lambda: |-
      // Write some text
      it.print(10, 10, id(mono8), "Hello World!");
      // Draw a circle in the middle of the display
      it.filled_circle(it.get_width() / 2, it.get_height() / 2, 20);

The screen does seem to be receiving instructions, however, it’s not rendering correctly. With the YAML above, I expected to see a circle in the middle with a “Hello world” text on top, however, this is what I get:

What am I missing?

1 Like

I dunno, maybe A0 != DC?

I saw the AliExpress page you shared and it looks like the bigger devices 1.44"+ have different pins (A0 included) while the 1.3" and 0.96" one has the DC pin.

Interesting. I didn’t notice that. I saw Is this a SPI interface? - #2 by david_prentice - Displays - Arduino Forum where it suggests A0 being the DC pin (on a different model).

What could I try differently?

Maybe it won’t help, but can you try increasing the update interval to, for example, 10s?

Exact same result.

The only thing I can think of is to change the model to, for example, INITR_18REDTAB

I tried that too, no luck…

I have the same model here with an ESP32-C3. After some try-and-error (and similar results like you) I used INITR_BLACKTAB and the circle is now round…

1 Like

Voilá! That did it! Thank you!

Hello, Same problem with my st7735 display. Text under an angle.
Changed from greentab to blacktab problem solved.
Up for the next hurdle.
Keep on the good working.

Regards,
ilioSS