Lilygo T-display S3 ESP32 hard resetting via RTS pin

I cant get the Volos project to work, screen is black. Im using his code: ¨

"error" output message:

Sketch uses 228881 bytes (17%) of program storage space. Maximum is 1310720 bytes.
Global variables use 19152 bytes (5%) of dynamic memory, leaving 308528 bytes for local variables. Maximum is 327680 bytes.
esptool.py v4.5.1
Serial port COM4
Connecting...
Chip is ESP32-S3 (revision v0.1)
Features: WiFi, BLE
Crystal is 40MHz
MAC: 68:b6:b3:21:ba:e8
Uploading stub...
Running stub...
Stub running...
Changing baud rate to 921600
Changed.
Configuring flash size...
Flash will be erased from 0x00000000 to 0x00003fff...
Flash will be erased from 0x00008000 to 0x00008fff...
Flash will be erased from 0x0000e000 to 0x0000ffff...
Flash will be erased from 0x00010000 to 0x00047fff...
Compressed 15040 bytes to 10331...
Writing at 0x00000000... (100 %)
Wrote 15040 bytes (10331 compressed) at 0x00000000 in 0.4 seconds (effective 330.7 kbit/s)...
Hash of data verified.
Compressed 3072 bytes to 146...
Writing at 0x00008000... (100 %)
Wrote 3072 bytes (146 compressed) at 0x00008000 in 0.1 seconds (effective 307.9 kbit/s)...
Hash of data verified.
Compressed 8192 bytes to 47...
Writing at 0x0000e000... (100 %)
Wrote 8192 bytes (47 compressed) at 0x0000e000 in 0.1 seconds (effective 460.9 kbit/s)...
Hash of data verified.
Compressed 229248 bytes to 127917...
Writing at 0x00010000... (12 %)
Writing at 0x0001cff4... (25 %)
Writing at 0x000228d0... (37 %)
Writing at 0x00027bee... (50 %)
Writing at 0x0002d19d... (62 %)
Writing at 0x000339f2... (75 %)
Writing at 0x0003dbc5... (87 %)
Writing at 0x00043339... (100 %)
Wrote 229248 bytes (127917 compressed) at 0x00010000 in 2.8 seconds (effective 648.0 kbit/s)...
Hash of data verified.

Leaving...
Hard resetting via RTS pin.



#include "TFT_eSPI.h"
"install.h"

TFT_eSPI tft= TFT_eSPI();
TFT_eSprite sprite = TFT_eSprite(&tft);

void setup() {
  tft.init();
  tft.setRotation(1);
  tft.setSwapBytes(true);
  tft.fillScreen(TFT_WHITE);
  tft.pushImage(106,0,214,170,install);
  Serial.begin 921600

  sprite.createSprite(146,170);
 
  sprite.setTextColor(TFT_BLACK,TFT_WHITE);
  sprite.setTextDatum(4);
}

//progress bar variables
int progress=0;
int w=120;
int h=18;
int x=12;
int y=90;
int blocks=0;

void loop() {
 sprite.fillSprite(TFT_WHITE);
 sprite.setFreeFont(&Orbitron_Light_24);
 sprite.drawString("Progress:",75,16);
 sprite.setFreeFont(&Orbitron_Light_32);

 

 sprite.drawString(String(progress)+"%",75,54);

 progress++;
 if(progress==101)
 progress=0;

  blocks =progress/5;
 sprite.drawRoundRect(x,y,w,h,3,TFT_BLACK);
 for(int i=0;i<blocks;i++)
 sprite.fillRect(i*5+(x+2)+(i*1),y+4,5,10,TFT_BLACK);
 sprite.drawRect(10,124,60,22,TFT_BLACK);
 sprite.drawRect(76,124,60,22,TFT_BLACK);
 sprite.drawString("OK",40,134,2);
 sprite.drawString("CANCEL",106,134,2);
 sprite.setTextFont(0);
 sprite.drawString("Installation almost done!!",80,160);
 sprite.pushSprite(0,0);
delay(60);
}

#if defined(__AVR__)
    
#elif defined(__PIC32MX__)
    #define PROGMEM
#elif defined(__arm__)
    #define PROGMEM
#endif

const unsigned short install[36380] PROGMEM={
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,   // 0x0010 (16) pixels

ive tried this for troubleshooting: (copy paste from stack overflow)

Make sure that your serial monitor's baud rate matches the value used by Serial.begin in your code. The top ESP32/ESP8266 example on Google uses 115200 whereas most people have their serial monitor set to 9600 because it's a common Arduino sketch value. This mismatch is the most common reason for people Googling this issue.

For other connection issues, such as COM connection issues, try these steps:

  1. Press the little "Reset" button (or "RST") on your board.
  2. Unplug the board's USB cable.
  3. Unplug anything from the TX/RX pins.
  4. Close all Arduino IDE windows including the serial monitor.
  5. Plug the USB cable back in and wait a few seconds.
  6. Reopen the Arduino window and choose the correct port under Tools > Port. If you see multiple unlabeled COM ports, you can use the "Get Board Info" option or simple trial and error to figure out the right port.
  7. Open the serial monitor and make sure the baud rate matches the one found in your code.
  8. Upload the sketch.
  9. If the upload fails, wait a few seconds and try it a second time.

Any help is much appreciated, let me know if more information is needed

This is the normal end of program upload to ESP32.

This is unfortunate for you!

Did you configure User_Setup.h according to your display, controller type and wiring?

Provide a link to the schematics of your board. And post your setting, to get more help.

I did configure user_setup.h accordingly.
my wiring is just a USB-C to USB-A cable, tho i read that some cables arent able to send data and can only be used for powering devices.
the cable im using comes from my bluetooh headset charger, so maybe it cant send data? how would i check this?

I can't check, as you did not provide a link to the schematics, and your User_Setup.h

Good Luck!

leavinhardsetting.ino (131 Bytes)

Is this correct/am i missing anymore info?

Maybe someone else is willing to help you. I don't download code. 131 bytes fit well into a code window.

I understand that im not making this easy, but i dont know how to create a code window.
are you willing to explain it?

You created a code window in post #1. Maybe you used the copy for code window feature of the IDE.

You can put any text into a code window by clicking the <CODE/> command symbol, and then paste the text.

Maybe you should read How to get the best out of this forum.

i see,
here is my code: (missing all the code that presents the pixels, but i cant add all as then there´ll be too many characters)

// Generated by   : ImageConverter 565 Online
// Generated from : install.jpg
// Time generated : Thu, 29 Sep 22 08:06:32 +0200  (Server timezone: CET)
// Image Size     : 214x170 pixels
// Memory usage   : 72760 bytes

#include "TFT_eSPI.h"
"install.h"

TFT_eSPI tft= TFT_eSPI();
TFT_eSprite sprite = TFT_eSprite(&tft);

void setup() {
  tft.init();
  tft.setRotation(1);
  tft.setSwapBytes(true);
  tft.fillScreen(TFT_WHITE);
  tft.pushImage(106,0,214,170,install);
  Serial.begin 921600

  sprite.createSprite(146,170);
 
  sprite.setTextColor(TFT_BLACK,TFT_WHITE);
  sprite.setTextDatum(4);
}

//progress bar variables
int progress=0;
int w=120;
int h=18;
int x=12;
int y=90;
int blocks=0;

void loop() {
 sprite.fillSprite(TFT_WHITE);
 sprite.setFreeFont(&Orbitron_Light_24);
 sprite.drawString("Progress:",75,16);
 sprite.setFreeFont(&Orbitron_Light_32);

 

 sprite.drawString(String(progress)+"%",75,54);

 progress++;
 if(progress==101)
 progress=0;

  blocks =progress/5;
 sprite.drawRoundRect(x,y,w,h,3,TFT_BLACK);
 for(int i=0;i<blocks;i++)
 sprite.fillRect(i*5+(x+2)+(i*1),y+4,5,10,TFT_BLACK);
 sprite.drawRect(10,124,60,22,TFT_BLACK);
 sprite.drawRect(76,124,60,22,TFT_BLACK);
 sprite.drawString("OK",40,134,2);
 sprite.drawString("CANCEL",106,134,2);
 sprite.setTextFont(0);
 sprite.drawString("Installation almost done!!",80,160);
 sprite.pushSprite(0,0);
delay(60);
}

#if defined(__AVR__)
    
#elif defined(__PIC32MX__)
    #define PROGMEM
#elif defined(__arm__)
    #define PROGMEM
#endif

const unsigned short install[36380] PROGMEM={
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,   // 0x0010 (16) pixels

I still don't see your User_Setup.h. And where is the link to the schematics of your board?

TFT_eSPI needs to be configured to the display and its internal or external wiring.

I don't have the patience to help this kind of users. So I take a break until tomorrow, maybe.

I simply dont know how to share the user_setup.h.

as for the schematics, the picture i shared above shows all externals. I dont know how to share internal wiring. perhaps its somewhere in here: GitHub - Xinyuan-LilyGO/T-Display-S3
its is the offical github for the lilygo board

Correct the nasty typing error in the title of your topic!

Read the README.md of the link you (finally) provided.

Notice that this repository contains a fork of TFT_eSPI configured for your display.
It has a User_Setup_Select.h configured to use Setup206_LilyGo_T_Display_S3.h.
And it has an example tft.ino that uses this library.

This should get you started.

Read also the original README.md of the original TFT_eSPI to learn about that library.

If you ever update TFT_eSPI you just need to restore/replace the two setup files.

The schematics is here: T_Display_S3.pdf.
However, the README.md already has the pinouts of the display and the processor.
The display has a 8 bit parallel connection.
-jz-

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.