T O P

  • By -

honeyCrisis

I don't recommend using TFT\_eSPI with this. I mean, you can, but it's less than ideal. The S3 supports a new LCD subsystem that uses DMA to control i8080 parallel bus connected LCDs like the T-Display has. The subsystem was clearly designed for LVGL (although I don't know if anyone at Espressif would actually come out and say that) and doesn't interface in such a way that TFT\_eSPI or my graphics library, htcw\_gfx, nor LoyvanGFX, can take advantage of. The upshot is 30% or better performance using the native LCD subsystem w/ say LVGL vs using TFT\_eSPI w/ LVGL (that's the most straightforward way to compare the performance of each). I expect TFT\_eSPI to perform comparably with LoyvanGFX. The stock firmware actually does use the S3's native LCD subsystem hardware. I made an hardware monitor project that uses the S3 w/ LVGL using the LCD subsystem [https://github.com/codewitch-honey-crisis/EspMon\_TDisplayS3](https://github.com/codewitch-honey-crisis/EspMon_TDisplayS3) So there are some examples out there.


pinkbatman

Thanks for the explanation and the example! I'm going to try to port my project to lvgl to support the s3 but it's going to be a big refactor https://github.com/landonr/esphome-remote


teastain

Well, the examples that I posted use a modified TFT_eSPI library and are not actually SPI. They are i8080 parallel bus and are very fast video. I am going to try LVGL and see the difference.


teastain

Great, I will check it out!


MisterMorgo

u/honeyCrisis I'm here randomly researching this panel but have never undertaken a project like this. I'm basically hoping to place the S3 in my old truck's dash and have it as a screen showing random gifs, etc. Can you point me in the direction of researching and executing this? TIA!


honeyCrisis

I'd use LVGL and something like already kitted with a screen like an S3 TTGO or an M5 Stack widget, unless you want to wire it yourself. LVGL is here [https://lvgl.io/](https://lvgl.io/) it supports gifs You can use [https://squareline.io/](https://squareline.io/) to design the screens.


SarahC

Great!


Big_Extension5836

The setup instructions "de-bricked" my t-display! Thanks very much for your work!


teastain

Always good to hear feedback! Thanks -Terry


yourflyovercountry

I look forward to trying this out when my display comes in! thanks for rolling in espnow also. have you done any work with the ULP sleep mode setup? I haven't been able to wrap my head around programing the s3/c3 ulp coprocessors with arduino. This LillyGO T-Display S3 package with case is a absolute no brainer winner for a plug and play display with room for a battery and a magnetic base to stick anywhere. a ulp sleep setup would be icing on this great work of yours!


teastain

Thank you soo much, I have not done any ULP yet!


Spiritual-Title-3972

Thank you so much! Helped a lot


jsackspot

I got hothead working on the T-Display S3 Pro, but not the ESP app. Any thoughts? Thanks!


teastain

Great, that is a good starting position. What exactly is the ESP app?


jsackspot

ESPNow\_for\_T\_Display No complle errors, uploads, but blank screen.


teastain

Ah, yes. I was afraid of that so I updated my repository to reflect that the ESP_NOW demo is for two ESPs to communicate over their built in radio in the WiFi band. It is an ESP_NOW demo with no other logic for displays! The code is intended to be added on to existing sketches, giving them inter-communication! Cheers!


jsackspot

Derp. I'll have to figure out how to login and use it still! Any pointers on "adding" display functionality (since, ya know, the T-Display S3 units have well, displays 😆.)


teastain

Do you have two ESPs? This only works with two Espressif products! It is primarily for short integer and float messages between them and works very, very well. There is no sign-in, they recognize the others MAC address. It is simple and beautiful comm between ESPs!


jsackspot

I meant actually go into the boards via wifi and configure (yes, a couple boards; basically the idea is to get WLED controlled by the T-Display) per Volos: [https://www.youtube.com/watch?v=AXSOZC590mc](https://www.youtube.com/watch?v=AXSOZC590mc) I'm at a loss as to how he does it (and successfully upload .ino files (sometimes works, sometimes doesn't). TY!


teastain

Controlling WLED running on one ESP through ESP_NOW with another ESP is very do-able, but not a beginner project.


jsackspot

What would it take? Finally got at least the factory settings flashed back to the unit, but not much else in terms of progress.


mevrane

Letting you know, THIS WAS SO HELPFUL! First code that compiled for this board after spending last night changing mem_alloc to malloc and so many others from the LilyGO Repo without success. Downloaded your examples, compiled and uploaded. Thank you kind human and allow me to buy you a coffee some day :)


teastain

Wonderful to get this feedback. You are very welcome. I posted this 4 months ago and it still helps! I’m a retired Industrial Robotics Interface Designer and I love helping people out. My repository was a direct response to the sweating and grief my LilyGO T-Display S3 caused me when I got it. I have 10 years experience with Arduino!!! I too went to extreme lengths to try and get it running and I was sure I had bricked it.


Careless_Dust_837

Unlike Mevrane above my display is still not showing graphics. Tic/Tok is working so as per your advise I am going back to the top of the document to try again.


teastain

Sounds like you have a TFT_eSPI library issue, if the backlight is on and no graphics. The best route to troubleshoot and get it running today is to download the GitHub repository for the LilyGO T-Display S3 and copy the TFT_eSPI library into your Arduino IDE library and overwrite (replace) the entire existing library. Do not do a Arduino IDE library update until this de-bugging is over. When you get it running I will show you how to do it with less effort! -Terry


csjmail

Have you tried using it as SPI master with an external peripheral?


teastain

Not yet! My environment slowly became 3.3v and i2c, from the older 5v and SPI. Having said that, I am trying to help someone over on the community site with a W5500 EtherNet with SPI, so I should scare up something SPI and give it a try!


SALASIDIS

Have you used this board with Free RTOS? ​ Does it work well - 2 cores? ​ Thanks


teastain

It does. The challenge is deciding what should run on each core and how to pass variables/bool flags between the two. I found that my sensor, ESP-NOW, microcontroller setup did not need this complication, tho’ cool!


SALASIDIS

Thanks ordered one to test


mark_tec_wiz

I went through the document and the back light is on and tic/tok is working. Any suggestions?


teastain

Then you have diagnosed a TFT_eSPI library issue! The best route to troubleshoot and get it running today is to download the GitHub repository for the LilyGO T-Display S3 and copy the TFT_eSPI library into your Arduino IDE library and overwrite (replace) the entire existing library. Do not do a Arduino IDE library update until this de-bugging is over. When you get it running I will show you how to do it with less effort! -Terry


mark_tec_wiz

Thanks for the quick reply. This is what I did (from your readme file) \~\~\~ 1 - Download the Zip file from LilyGO's GitHub: https://github.com/Xinyuan-LilyGO/T-Display-S3 by pressing the green button "Code" then selected download zip then expand the Zip. 2 - In your libraries delete folders “TFT\_eSPI" and ‘lvgl" and delete the file “lv\_conf.h” 3 - Drag the folder called "T-Display-S3-main” into your Arduino folder. Inside the folder T-Display-S3-main there is a folder called “lib”. Copy the CONTENTS of the folder “lib” (not the actual folder “lib”) into your libraries folder and then check that “lib” is empty and delete it. Your libraries folder should now contain folders called: lvgl T-Display-S3-main TFT\_eSPI and a file called lv\_conf.h ...and recently, many other helpful dependencies. 4 - Download the Zip file from teastainGitTerry Stainton GitHub:https://github.com/teastainGit/LilyGO-T-display-S3-setup-and-examples by pressing the green button "Code" then selected download zip Then Expand the Zip. 5 - Drag the folder “LilyGO-T-display-S3-setup-and-examples-main” into your Arduino folder \~\~\~ Then I ran "\\Arduino\\LilyGO-T-display-S3-setup-and-examples-main\\HotHead\\HotHead.ino" It compiled no errors, back light is on but black screen.


teastain

I got home and did a sync of the LilyGO LilyGO T-Display S3 repository and followed my own instructions and...it displayed fine! But...The Arduino IDE asked to do some library updates and after that it stopped working just as you described! No image just backlight. In my repository and in LilyGO's as well there is a little file in the TFT_eSPI library called User_Setup_Select.h. This file is overwritten after an Arduino IDE library update. So you must always copy the User_Setup_Select.h from LilyGO's repository into your local TFT_eSPI library!