1.69 TFT display issue

EL Wire/Tape/Panels, LEDs, pixels and strips, LCDs and TFTs, etc products from Adafruit

Moderators: adafruit_support_bill, adafruit

Please be positive and constructive with your questions and comments.
User avatar
caseyahenson
 
Posts: 9
Joined: Thu Apr 27, 2023 11:17 pm

1.69 TFT display issue

Post by caseyahenson »

Hello!

I purchased a pair of 1.69" TFTs (ST7789), and after connecting them I'm seeing what appears to be dead or missing pixels, as well as some intermittent pixels which come and go with pressure.

I followed the guide here: https://learn.adafruit.com/adafruit-1-6 ... thon-usage

And connected both displays to compare (see attached), which each had separate outcomes. Is it possible that I have a wiring issue? Happy to attach shots of the job!
Attachments
IMG_5249.jpg
IMG_5249.jpg (320.57 KiB) Viewed 195 times
IMG_5248.jpg
IMG_5248.jpg (286.98 KiB) Viewed 195 times

User avatar
mikeysklar
 
Posts: 13936
Joined: Mon Aug 01, 2016 8:10 pm

Re: 1.69 TFT display issue

Post by mikeysklar »

This does look like a connection issue.

The soldering could use a little more flow to fill out the vias on the displays.

Can you show the soldering on both sides of the RP2040?

User avatar
caseyahenson
 
Posts: 9
Joined: Thu Apr 27, 2023 11:17 pm

Re: 1.69 TFT display issue

Post by caseyahenson »

Thanks for you quick reply!

See attached wiring for the logic pins on the Feather, all three shots correspond to just the one display that's about half visible and with intermittent pixels when applying pressure. Difficult to get much higher resolution so hopefully this is clear.

As a follow up, I did go pin by pin on both the TFT and the Feather of this one to try improving the connections and did not see any difference in the outcome.

Also happy to do the same for wiring of the 2nd Feather.
Attachments
display1-pico1.jpg
display1-pico1.jpg (33.78 KiB) Viewed 177 times
display1-pico2.jpg
display1-pico2.jpg (52.05 KiB) Viewed 177 times
display1-pico3.jpg
display1-pico3.jpg (62.36 KiB) Viewed 177 times

User avatar
mikeysklar
 
Posts: 13936
Joined: Mon Aug 01, 2016 8:10 pm

Re: 1.69 TFT display issue

Post by mikeysklar »

The soldering on the Feather does look improved.

Can you show me the updated soldering photos on the 1.69" TFT?

Have you changed more than the "hello world" to "display test" here?

Code: Select all

# SPDX-FileCopyrightText: 2021 ladyada for Adafruit Industries
# SPDX-License-Identifier: MIT

"""
This test will initialize the display using displayio and draw a solid green
background, a smaller purple rectangle, and some yellow text.
"""
import board
import terminalio
import displayio
from adafruit_display_text import label
from adafruit_st7789 import ST7789

# Release any resources currently in use for the displays
displayio.release_displays()

spi = board.SPI()
tft_cs = board.D5
tft_dc = board.D6

display_bus = displayio.FourWire(
    spi, command=tft_dc, chip_select=tft_cs, reset=board.D9
)

display = ST7789(display_bus, width=280, height=240, rowstart=20, rotation=90)

# Make the display context
splash = displayio.Group()
display.show(splash)

color_bitmap = displayio.Bitmap(280, 240, 1)
color_palette = displayio.Palette(1)
color_palette[0] = 0x00FF00  # Bright Green

bg_sprite = displayio.TileGrid(color_bitmap, pixel_shader=color_palette, x=0, y=0)
splash.append(bg_sprite)

# Draw a smaller inner rectangle
inner_bitmap = displayio.Bitmap(240, 200, 1)
inner_palette = displayio.Palette(1)
inner_palette[0] = 0xAA0088  # Purple
inner_sprite = displayio.TileGrid(inner_bitmap, pixel_shader=inner_palette, x=20, y=20)
splash.append(inner_sprite)

# Draw a label
text_group = displayio.Group(scale=3, x=37, y=120)
text = "Hello World!"
text_area = label.Label(terminalio.FONT, text=text, color=0xFFFF00)
text_group.append(text_area)  # Subgroup for text scaling
splash.append(text_group)

while True:
    pass

User avatar
caseyahenson
 
Posts: 9
Joined: Thu Apr 27, 2023 11:17 pm

Re: 1.69 TFT display issue

Post by caseyahenson »

See attached updated soldering on this particular display.

As far as the example code, I do have a few distinct differences in the SPI initialization. Besides importing the busio dep and changing the text, this is the only diff:

Code: Select all

display_spi = busio.SPI(board.D6, MOSI=board.SCL, MISO=board.TX)
epd_cs = board.RX
epd_dc = board.SDA
display_bus = displayio.FourWire(
    display_spi, command=epd_dc, chip_select=epd_cs
)
display = ST7789(display_bus, width=280, height=240, rowstart=20, rotation=90)
Attachments
display1-back.jpg
display1-back.jpg (202.71 KiB) Viewed 165 times
display1-front.jpg
display1-front.jpg (195.34 KiB) Viewed 165 times

User avatar
mikeysklar
 
Posts: 13936
Joined: Mon Aug 01, 2016 8:10 pm

Re: 1.69 TFT display issue

Post by mikeysklar »

The soldering on the display is not complete. I can still see the gold ring annulus on the vias which means not enough solder was provided to complete the connection.

User avatar
caseyahenson
 
Posts: 9
Joined: Thu Apr 27, 2023 11:17 pm

Re: 1.69 TFT display issue

Post by caseyahenson »

Thanks for your guidance. I've removed the original wiring setup and replaced it with a set of breadboard headers, and for good measure soldered some headers onto a new Pico.

As you can see, identical display output.
Attachments
display1-pico2.jpg
display1-pico2.jpg (912.79 KiB) Viewed 151 times
display1-headers.jpg
display1-headers.jpg (873.97 KiB) Viewed 151 times

User avatar
mikeysklar
 
Posts: 13936
Joined: Mon Aug 01, 2016 8:10 pm

Re: 1.69 TFT display issue

Post by mikeysklar »

The soldering on the display looks great. Thank you for smoothing that out. The breadboard change is also helpful.

You will need to do the same for the Pi Pico W too. It is globby and incomplete.

User avatar
caseyahenson
 
Posts: 9
Joined: Thu Apr 27, 2023 11:17 pm

Re: 1.69 TFT display issue

Post by caseyahenson »

Updated soldering for the power/ground as well as the relevant logic pins (see attached).
Attachments
pico-headers1.jpg
pico-headers1.jpg (351.15 KiB) Viewed 141 times

User avatar
caseyahenson
 
Posts: 9
Joined: Thu Apr 27, 2023 11:17 pm

Re: 1.69 TFT display issue

Post by caseyahenson »

I did grab some finer solder wire and cleaned up the pins and re-soldered with that twice now, same exact result each time. I understand that I may not be the best at soldering but I typically don't have issues with dozens of other components that I've used and given the number of configurations I've tried for these screens, it doesn't feel to me like a problem with the wiring.

Please let me know if there's any way I can do a return or exchange.

User avatar
mikeysklar
 
Posts: 13936
Joined: Mon Aug 01, 2016 8:10 pm

Re: 1.69 TFT display issue

Post by mikeysklar »

Your soldering is looking better.

I have not reviewed the code you are running. Please post it or take a look at my modified version below.

I wanted to see if there was any possible issues with the guide so I wired up what I have which is a 2.0” 240x320 TFT and a Pico W. Pretty close to yours.

I added a RST line and moved to the 3v3 out pin on the Pico W from the VBUS. I'm also using a different CS pin than yourself.

Code: Select all

import board
import busio
import terminalio
import displayio
from adafruit_display_text import label
from adafruit_st7789 import ST7789

# Release any resources currently in use for the displays
displayio.release_displays()

spi_clk = board.GP2
spi_mosi = board.GP3
spi = busio.SPI(spi_clk, spi_mosi)

tft_cs = board.GP5
tft_dc = board.GP6

display_bus = displayio.FourWire(
    spi, command=tft_dc, chip_select=tft_cs, reset=board.GP9
)

display = ST7789(display_bus, width=320, height=240, rotation=90)

# Make the display context
splash = displayio.Group()
display.show(splash)

color_bitmap = displayio.Bitmap(320, 240, 1)
color_palette = displayio.Palette(1)
color_palette[0] = 0x00FF00  # Bright Green

bg_sprite = displayio.TileGrid(color_bitmap, pixel_shader=color_palette, x=0, y=0)
splash.append(bg_sprite)

# Draw a smaller inner rectangle
inner_bitmap = displayio.Bitmap(280, 200, 1)
inner_palette = displayio.Palette(1)
inner_palette[0] = 0xAA0088  # Purple
inner_sprite = displayio.TileGrid(inner_bitmap, pixel_shader=inner_palette, x=20, y=20)
splash.append(inner_sprite)

# Draw a label
text_group = displayio.Group(scale=3, x=57, y=120)
text = "Hello World!"
text_area = label.Label(terminalio.FONT, text=text, color=0xFFFF00)
text_group.append(text_area)  # Subgroup for text scaling
splash.append(text_group)

while True:
    pass
IMG_2023-5-12-115503.jpeg
IMG_2023-5-12-115503.jpeg (201.68 KiB) Viewed 117 times
IMG_2023-5-12-115718.jpeg
IMG_2023-5-12-115718.jpeg (259.37 KiB) Viewed 117 times

User avatar
caseyahenson
 
Posts: 9
Joined: Thu Apr 27, 2023 11:17 pm

Re: 1.69 TFT display issue

Post by caseyahenson »

I did go ahead and run your code on the Pico after aligning my pins with yours. Obviously the aspect ratios differ between our displays, but those stubborn missing pixels remain.
Attachments
display1-with-reset.jpg
display1-with-reset.jpg (784.63 KiB) Viewed 114 times

User avatar
mikeysklar
 
Posts: 13936
Joined: Mon Aug 01, 2016 8:10 pm

Re: 1.69 TFT display issue

Post by mikeysklar »

Thank you for trying the sample code.

Can you put a set of headers on the second display and check the behavior? If both displays are showing issues this much more likely a problems with the connection quality on the Pico Pi.

User avatar
caseyahenson
 
Posts: 9
Joined: Thu Apr 27, 2023 11:17 pm

Re: 1.69 TFT display issue

Post by caseyahenson »

I'll try to get that tackled in the next couple of days. I'm curious if you could provide some kind of a QA checklist to help this process along--how many setups would you like me to try? Frankly I'm about to toss these things if they require much more debugging to work.

User avatar
mikeysklar
 
Posts: 13936
Joined: Mon Aug 01, 2016 8:10 pm

Re: 1.69 TFT display issue

Post by mikeysklar »

The QA checklist is:

* connections (soldering, cables, pin selection)
* example code being run
* OS, IDE, library, bootloader versions

You can bypass all this by ordering a new display and show that it works. This would make it easy to refund you for a non-functional display. That is why I suggest getting the second one wired up.

Locked
Please be positive and constructive with your questions and comments.

Return to “Glowy things (LCD, LED, TFT, EL) purchased at Adafruit”