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!
1.69 TFT display issue
Moderators: adafruit_support_bill, adafruit
Please be positive and constructive with your questions and comments.
- caseyahenson
- Posts: 9
- Joined: Thu Apr 27, 2023 11:17 pm
1.69 TFT display issue
- Attachments
-
- IMG_5249.jpg (320.57 KiB) Viewed 195 times
-
- IMG_5248.jpg (286.98 KiB) Viewed 195 times
- mikeysklar
- Posts: 13936
- Joined: Mon Aug 01, 2016 8:10 pm
Re: 1.69 TFT display issue
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?
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?
- caseyahenson
- Posts: 9
- Joined: Thu Apr 27, 2023 11:17 pm
Re: 1.69 TFT display issue
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.
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 (33.78 KiB) Viewed 177 times
-
- display1-pico2.jpg (52.05 KiB) Viewed 177 times
-
- display1-pico3.jpg (62.36 KiB) Viewed 177 times
- mikeysklar
- Posts: 13936
- Joined: Mon Aug 01, 2016 8:10 pm
Re: 1.69 TFT display issue
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?
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
- caseyahenson
- Posts: 9
- Joined: Thu Apr 27, 2023 11:17 pm
Re: 1.69 TFT display issue
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:
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 (202.71 KiB) Viewed 165 times
-
- display1-front.jpg (195.34 KiB) Viewed 165 times
- mikeysklar
- Posts: 13936
- Joined: Mon Aug 01, 2016 8:10 pm
Re: 1.69 TFT display issue
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.
- caseyahenson
- Posts: 9
- Joined: Thu Apr 27, 2023 11:17 pm
Re: 1.69 TFT display issue
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.
As you can see, identical display output.
- Attachments
-
- display1-pico2.jpg (912.79 KiB) Viewed 151 times
-
- display1-headers.jpg (873.97 KiB) Viewed 151 times
- mikeysklar
- Posts: 13936
- Joined: Mon Aug 01, 2016 8:10 pm
Re: 1.69 TFT display issue
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.
You will need to do the same for the Pi Pico W too. It is globby and incomplete.
- caseyahenson
- Posts: 9
- Joined: Thu Apr 27, 2023 11:17 pm
Re: 1.69 TFT display issue
Updated soldering for the power/ground as well as the relevant logic pins (see attached).
- Attachments
-
- pico-headers1.jpg (351.15 KiB) Viewed 141 times
- caseyahenson
- Posts: 9
- Joined: Thu Apr 27, 2023 11:17 pm
Re: 1.69 TFT display issue
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.
Please let me know if there's any way I can do a return or exchange.
- mikeysklar
- Posts: 13936
- Joined: Mon Aug 01, 2016 8:10 pm
Re: 1.69 TFT display issue
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.
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
- caseyahenson
- Posts: 9
- Joined: Thu Apr 27, 2023 11:17 pm
Re: 1.69 TFT display issue
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 (784.63 KiB) Viewed 114 times
- mikeysklar
- Posts: 13936
- Joined: Mon Aug 01, 2016 8:10 pm
Re: 1.69 TFT display issue
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.
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.
- caseyahenson
- Posts: 9
- Joined: Thu Apr 27, 2023 11:17 pm
Re: 1.69 TFT display issue
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.
- mikeysklar
- Posts: 13936
- Joined: Mon Aug 01, 2016 8:10 pm
Re: 1.69 TFT display issue
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.
* 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.
Please be positive and constructive with your questions and comments.