T display S3 doesnt upload code
-
Hi everyone, so I bought T display S3 (non touch) from lilygo. I tried installing test sketch through Arduino ide and I selected t display s3 in boards. After installing it, it didn't displayed anything and when I wanted to delete that sketch through ESP tool, and COM15 (T display S3) disappeared and appeared very fast, so I flashed it again but I selected ESP32 S3 Dev module board and it stopped blinking, and then I tried again and I got this. Please someone help
-
@fartmoney99 I am sure we can get it working again, but I use Arduino IDE 2.3.2 and that is very stable, so lets try troubleshooting on that platform.
I also made a GitHub repository for new users with setup help and simple examples for troubleshooting here:
https://github.com/teastainGit/LilyGO-T-display-S3-setup-and-examplesEverything I could tell you in the next paragraph is here, but it is a long read, because the LilyGO T-Display S3 is a complex high performance board, very challenging.
The S3 variant requires using the Boot button and the Reset to enter into download mode. There are three ways to do this, so try them in order.
-Terry -
@teastain2 I tried using holding boot and then pressing reset but that didn't worked, it still says com error
-
@fartmoney99 I find the Arduino IDE upload window to be the most helpful troubleshooting
Can you copy / paste the actual error message from the comm window at the bottom of Arduino IDE ?
Then we can start troubleshooting.
-
(In Arduino IDE)
Sketch uses 748665 bytes (23%) of program storage space. Maximum is 3145728 bytes.
Global variables use 45656 bytes (13%) of dynamic memory, leaving 282024 bytes for local variables. Maximum is 327680 bytes.
esptool.py v4.5.1
Serial port COM15
Connecting...
Chip is ESP32-S3 (revision v0.2)
Features: WiFi, BLE
Crystal is 40MHz
MAC: f0:f5:bd:43:9c:68
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 0x000c6fff...
Compressed 15104 bytes to 10429...
Writing at 0x00000000... (100 %)
Wrote 15104 bytes (10429 compressed) at 0x00000000 in 0.3 seconds (effective 378.9 kbit/s)...
Hash of data verified.
Compressed 3072 bytes to 144...
Writing at 0x00008000... (100 %)
Wrote 3072 bytes (144 compressed) at 0x00008000 in 0.1 seconds (effective 273.8 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 443.1 kbit/s)...
Hash of data verified.
Compressed 749024 bytes to 489284...
Writing at 0x00010000... (3 %)
Writing at 0x0001a2d2... (6 %)
Writing at 0x00025032... (10 %)
Writing at 0x00032156... (13 %)
Writing at 0x000375f6... (16 %)
Writing at 0x0003d247... (20 %)
Writing at 0x000426d2... (23 %)
Writing at 0x00047f25... (26 %)
Writing at 0x0004cfd1... (30 %)
Writing at 0x00051d1e... (33 %)
Writing at 0x00056cd7... (36 %)
Writing at 0x0005bb7c... (40 %)
Writing at 0x00060999... (43 %)
Writing at 0x00065d3a... (46 %)
Writing at 0x0006ae01... (50 %)
Writing at 0x0007099c... (53 %)
Writing at 0x00075b02... (56 %)
Writing at 0x0007a9c8... (60 %)
Writing at 0x0007fae9... (63 %)
Writing at 0x00084bb3... (66 %)
Writing at 0x0008a0b6... (70 %)
Writing at 0x0008f48c... (73 %)
Writing at 0x00095387... (76 %)
Writing at 0x0009a8d8... (80 %)
Writing at 0x000a08d5... (83 %)
Writing at 0x000a915d... (86 %)
Writing at 0x000b0c30... (90 %)
Writing at 0x000b689e... (93 %)
Writing at 0x000bc36b... (96 %)
Writing at 0x000c1c30... (100 %)
Wrote 749024 bytes (489284 compressed) at 0x00010000 in 6.7 seconds (effective 887.9 kbit/s)...
Hash of data verified.Leaving...
Hard resetting via RTS pin...(Results, red LED on and black screen)
(In ESP Tool)
esptool.js
Serial port WebSerial VendorID 0x303a ProductID 0x1001
Connecting...Error: Failed to execute 'open' on 'SerialPort': Failed to open serial port.
Error: Cannot read properties of undefined (reading 'BOOTLOADER_FLASH_OFFSET') -
@fartmoney99 OK, good progress.
What exact sketch is that?
It appears to have loaded correctly:Leaving... Hard resetting via RTS pin...
Is a good sign.
Right after this you may need to unplug it from USB and plug it in again to re-start the sketch.
Maybe try my 'Generic_tick_tock_serial_test' sketch with Serial output and no display, then move on to the HotHead sketch. -
@teastain2 Here
#include "Arduino.h"
#include "TFT_eSPI.h"/* Please use the TFT library provided in the library. */
#include <WiFi.h>
#include "time.h"TFT_eSPI lcd = TFT_eSPI();
TFT_eSprite sprite = TFT_eSprite(&lcd);const char* ssid = "Telia-2E6B1F";
const char* password = "C33E24FCBA";const char* ntpServer = "pool.ntp.org";
const long gmtOffset_sec =3600;
const int daylightOffset_sec = 3600;int values[24]={0};
int values2[24]={0};
char timeHour[3]="00";
char timeMin[3]="00";
char timeSec[3];char m[12];
char y[5];
char d[3];
char dw[12];int gw=204;
int gh=102;
int gx=110;
int gy=144;
int curent=0;
#define gray 0x6B6D
#define blue 0x0967
#define orange 0xC260
#define purple 0x604D
#define green 0x1AE9int deb=0;
int Mode=0;
#define RIGHT 14
void setup(void)
{pinMode(RIGHT,INPUT_PULLUP); Serial.begin(115200); lcd.init(); lcd.fillScreen(TFT_BLACK); lcd.setRotation(1);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("");
Serial.println("WiFi connected.");
configTime(gmtOffset_sec, daylightOffset_sec, ntpServer);sprite.createSprite(320, 170); sprite.setTextDatum(3); sprite.setSwapBytes(true); values[23]=gh/2; analogReadResolution(10);
}
int counter=0;
int Min=gh/2;
int Max=gh/2;
int average=0;
String minT="";
String maxT="";long lastMillis=0;
int fps=0;void loop()
{
if(digitalRead(RIGHT)==0){if(deb==0)
{Mode++;if(Mode==2)
Mode=0;
deb=1;}}else{deb=0;}
fps=1000/(millis()-lastMillis);
lastMillis=millis();average=0;
if(counter==0)
printLocalTime();counter++;
if(counter==50)
counter=0;if(Mode==0){
if(values[23]>12)
curent=random(values[23]-12,values[23]+12);
else
curent=random(1,values[23]+14);if(curent>gh)
curent=random(gh-10,gh);
}
if(Mode==1){
int num=analogRead(44);
curent=map(num,0,1024,0,gh);
}for(int i=0;i<24;i++)
values2[i]=values[i];for(int i=23;i>0;i--)
values[i-1]=values2[i];values[23]=curent;
if(values[23]>Max){
Max=values[23];
maxT=String(timeHour)+":"+String(timeMin)+":"+String(timeSec);}
if(values[23]<Min){
Min=values[23];
minT=String(timeHour)+":"+String(timeMin)+":"+String(timeSec);}for(int i=0;i<24;i++)
average=average+values[i];
average=average/24;sprite.fillSprite(TFT_BLACK);
// sprite.setTextDatum(4);
sprite.setTextColor(TFT_WHITE,blue);
sprite.fillRoundRect(6,5,38,32,4,blue);
sprite.fillRoundRect(52,5,38,32,4,blue);
sprite.fillRoundRect(6,42,80,12,4,blue);
sprite.fillRoundRect(6,82,78,76,4,purple);
sprite.fillRoundRect(6,58,80,18,4,green);
sprite.drawString(String(timeHour),10,24,4);
sprite.drawString(String(timeMin),56,24,4);
sprite.drawString(String(m)+" "+String(d),10,48);
//sprite.drawString(String(dw)+", "+String(y),10,58);//sprite.drawString(String(analogRead(18)),gx+160,26);
sprite.drawString(String(timeSec),gx-14,14,2);
sprite.setTextColor(TFT_WHITE,purple);
sprite.drawString("CURR: "+String(average),10,92,2);sprite.drawString("MIN: "+String(Min),10,108,2);
sprite.drawString("MAX: "+String(Max),10,138,2);
sprite.setTextColor(TFT_SILVER,purple);
sprite.drawString(String(maxT),10,152);
sprite.drawString(String(minT),10,122);
sprite.setTextColor(TFT_WHITE,green);
sprite.drawString("SPEED:"+String(fps)+" fps",10,68);
sprite.setTextColor(TFT_YELLOW,TFT_BLACK);
sprite.drawString("ANALOG READINGS",gx+10,16,2);
sprite.drawString("ON PIN 12",gx+10,30);
sprite.setFreeFont();for(int i=1;i<12;i++){
sprite.drawLine(gx+(i17),gy,gx+(i17),gy-gh,gray);
if(i17%34==0)
if(i2<10)
sprite.drawString("0"+String(i2),gx+(i17)-3,gy+8);
else
sprite.drawString(String(i2),gx+(i17)-4,gy+8);
}
for(int i=1;i<6;i++){
sprite.drawLine(gx,gy-(i17),gx+gw,gy-(i17),gray);
sprite.drawString(String(i17),gx-16,gy-(i17));
}sprite.drawLine(gx,gy,gx+gw,gy,TFT_WHITE); sprite.drawLine(gx,gy,gx,gy-gh,TFT_WHITE);
for(int i=0;i<23;i++){
sprite.drawLine(gx+(i*17),gy-values[i],gx+((i+1)17),gy-values[i+1],TFT_RED);
sprite.drawLine(gx+(i17),gy-values[i]-1,gx+((i+1)*17),gy-values[i+1]-1,TFT_RED);}sprite.setTextColor(TFT_WHITE,TFT_BLACK);
sprite.drawString("BAT:"+String(analogRead(4)),gx+160,16);
sprite.drawString("MOD:"+String(Mode),gx+160,26);sprite.pushSprite(0,0);
// delay(5);
}void printLocalTime(){
struct tm timeinfo;
if(!getLocalTime(&timeinfo)){
Serial.println("Failed to obtain time");
return;
}strftime(timeHour,3, "%H", &timeinfo);
strftime(timeMin,3, "%M", &timeinfo);
strftime(timeSec,3, "%S", &timeinfo);
strftime(y,5, "%Y", &timeinfo);
strftime(m,12, "%B", &timeinfo);strftime(dw,10, "%A", &timeinfo);
strftime(d,3, "%d", &timeinfo);
}
-
@fartmoney99 I used ESP Tool on my chromebook and it installed successfully. Now it works perfectly fine. Case closed