#ESP32-S2 TFT always blank TFT

1 messages · Page 1 of 1 (latest)

neon sonnet
#

Starting point:

  1. Chrome update of BOOT

After reset, after ROM reload, it shows the Status
screen on TFT.

When using the double clikc for UF2 load, it shows the
picture and arrow diagram on TFT

  1. Install CircuitPython 7.2.5

Adafruit CircuitPython 7.2.5 on 2022-04-06; Adafruit Feather ESP32-S2 TFT with ESP32S2
Board ID:adafruit_feather_esp32s2_tft

Default REPL dialog should go to the TFT.

It never shows any output on TFT. CircuitPython
7.2.4 7.2.5 and 7.3.0-BETA all exhibit this display
behavior.

Is there a way to query the TFT power ?

There is a note about "TTFT_I2C_POWER pin must be manually pulled
up for the display to work. This is done automatically by CircuitPython."

Could it be that this is not working for the Board package in
CircuitPython (7.2.4 7.2.5 and 7.3.0-Beta) ?

I guess that I could plow through a bunch of pin setting
and tests, but I wish it would just work out of the box.

kurt

spring hawk
#

I just tried this with 7.2.5 and it worked for me. Have you seen this working with any older version? Do you have a code.py on the board that might have done something with that power pin?

neon sonnet
#

HI. I have reloaded FLASH, installed 7.2.5 and by default, the TFT should be on for say REPL.

spring hawk
#

That's what I saw

neon sonnet
#

WIthout any code running after these loads, it still is blank. I have not played with hand code to turn on TFT Power.

#

Is there any test code to query the pin and to turn it on ?

spring hawk
#

yes, I did something like:

#
import board
from digitalio import DigitalInOut
pwr = DigitalInOut(board.TFT_I2C_POWER)
pwr.switch_to_output()
#

Then pwr.value shows the current value, pwr.value = some_bool sets its value

#

So you can try setting the value to the opposite of whatever it is when the screen is blank

neon sonnet
#

trying it now

#

pwr.switch_to_output() does not show output

spring hawk
#

What's pwr.value?

neon sonnet
#

i will REPL it

#

pwr.switch_to_output() does not show any output

#

in REPL 'pwr' is blank

#

just shows pwr.switch_to_output()

spring hawk
#

? What does the REPL show for pwr.value?

neon sonnet
#

oh Sorry it shows false

spring hawk
#

So try pwr.value = True

neon sonnet
#

IN REPL does that set it ? Or do I need to run code.py ?

spring hawk
#

You can do it in the REPL. (You can do almost anything in the REPL)

neon sonnet
#

did it and no TFT change

spring hawk
#

So you see the screen light up for the UF2 upload, but not afterwards?

neon sonnet
#

yes

#

all of the tutorialss have REPL by default on TFT

spring hawk
#

Yeah, and that's what I saw too. I'm afraid I'm out of ideas. You might want to post again in help-with-circuitpython with a brief statement of the problem, and call attention to this thread. Maybe one of the Adafruit regulars might have some idea of what's going on.

neon sonnet
#

thanks I might return board. It should not be this touchy

spring hawk
#

yeah

#

It's a great board once it works

#

fwiw I've had no problems with 2 of them.

neon sonnet
#

Note that 7.1.1 CircuitPython works.

spring hawk
neon sonnet
#

C on mine. Might be "Copyright" ? CircuitPython 7.1.1 works repeatibably. I think that somewhere along the line that low power operation became important and maybe some bug was introduced related to powering up the TFT.

spring hawk
#

You should probably file an issue on this.

neon sonnet
#

Yes. Filed a detailed report and contacted support. Very simple to establish that 7.1.1 Circuitpython, by default, has TFT on AND allows you to turn it on or off. All later versions are off by default (for me at least) and cannot be controlled.

#

import digitalio
import board
import time

Pull the I2C power pin high

i2c_power = digitalio.DigitalInOut(board.I2C_TFT_POWER)
time.sleep(0.1)
i2c_power.switch_to_output()
time.sleep(0.1)
i2c_power.value = False
time.sleep(3)
i2c_power.value = True