Це відео не доступне.
Перепрошуємо.
ILI9341 TFT LCD to ESP32 - Full HOW TO for display, SD card and Touch. Using TFT_eSPI driver
Вставка
- Опубліковано 27 кві 2020
- IMPORTANT: There is an omission in the video, for the touch screen to work you must un-comment the line below (remove the hash at the beginning) in the "User_Setup.h" file.
#define TOUCH_CS 21 // Chip select pin (T_CS) of touch screen
How to wire up and use a ILI9341 TFT LCD Display with an ESP32, uses the TFT_eSPI library. Covers all aspects - The display, SD card and touch screen with examples for all. Apologies for the varying sound levels. Video was shot over about 10 days and I must have positioned the Mic differently on some occasions and for some shots I used a different mic.
Affiliate links for the items shown: Clicking these costs you the same price but gives me a small commission, please consider supporting this channel by using them :)
ILI9341 TFT Display : amzn.to/2PWDcVG
ESP32 : amzn.to/3cTaH1i
8GB SD Card : amzn.to/3aIdF7g
Dev Boards : amzn.to/2KFHCue
Project Page : www.xtronical.c...
For other projects and ideas see :
Web : www.xtronical.com
Link to the TFT_eSPI GitHub page : github.com/Bod...
If you'd like to support me via Patreon then the link is below and that would be just amazing. Patreons have access to all videos early plus can view all the posts on Patreon. There are other rewards if you're interested. If you just want to watch videos then that's also fantastic because without people viewing I wouldn't even do half of what I do. So thanks very much :)
Patreon at : / xtronical
I also do Kofi (Coffee) if you want to tip me for a brew! : ko-fi.com/xtro...
Intro/Outro Music by Creo Music : www.creo-music.com
"Bamboo Swing, B8.wav" by InspectorJ (www.jshaw.co.uk) of Freesound.org
This is a great video! Informative, slow enough to follow, quick enough to keep me awake! I DETEST videos that don't have commentary. This guy does it very well, he is very clear. Saving this video!
I struggled getting my screen to work, and did not know that SPI is a share bus. Thanks! You saved me allot of time, you got my like.
Four years after publishing this video, you got me over the hump! I've been stuck trying to get this display to work with the ESP32 and I just needed your guidance. THANKS from the Midwest USA!
Hey, thanks very much for the appreciation. I plan to revisit this. Using latest library. I was frustrated four years ago at the lack of a simple guide. Hence the video.
@@XTronical that would be great! I was somehow unaware of this library and the anti-aliasing is a game changer.
I have searched 1 day long till i can make working my ILI9488 tft with nodemcu, but thats was the only one tutorial what worked, thjank you for the tutorial.
Thanks for a complete detailed video. I discovered that I needed to supply +5VDC to the VIN pin. I was not getting enough current from the USB cable.
I've had similar issues with ultrasound sensors
ThaTFT SPI ILI9341 Display working and after fixing the omission inn the setup file for touch_CS, touch screen with buttons is working. Such a thrill to finally get access to all the examples and to see it all compile. I will now work on filling a SD card with pictures and scrolling through them . You are one of the best ESP32 teachers on UA-cam and have helped me immensely. I agree, a superb video.
That's great, glad it helped.
This is awesome!!! THere is just one detail, pins 21 and 22 are default for I2C on ESP32, and since I'm using SPI and I2C, I need to change CS pin, but all good, just would like to warn oter person when developing projects to take this in consideration.
How to change these ports? i would like to connect an ADS1115 to the ESP throu I2C.
Unfortunately this video will only work for I2S on this type of screen.
I got it by my self (: but thx for Response. Just changed the Touch cs pin to 13 i think...
How to change to different pin if I need to keep it available for I2C connection?
Which pin should I use? Do I need to modify user.setup.h?
@@cooljackwi If I change t_cs to 13, do I need to edit user.setup.h?
Man, what can I say about this video. Hmm..great is an understatement. What a superb video. Thanks a lot. You have just answered all the questions that I had about this type of LCD and its connections to esp32. Thanks a lot.
Your welcome, glad it helped.
Dude thanks so much, this is the exact vid I was waiting for! There aren’t enough display tutorials for non-Arduino boards
Great, it's fantastic when things are actually useful ☺️
I saw this video just at the point where I was moving my TFT display from Arduino UNO, to a faster, more memory MCU, since I wanted to add an SD card. Good timing!
THANK YOU! 4 days trying to make an TFT ILI9488 Display to work.
I almost gave up, then UA-cam randomly recommended this video.
It really works! 🥲
Thank you!
Yes, I had same problem, most videos lacked detail, weren't clear or were wrong. I managed to cobble several sources together and get it working so put it all together in detail
Thanks so much. I have used tft_espi many times but haven't used it lately. I drew a complete blank...until I found your video! Great Job.
Thank you for the positive comments
Awesome tutorial. You should get more views my friend! I will be sharing this with my buddies!
Thank you very much for your kind words
One of the best ILI9341 tutorials with TFT_eSPI and touch functionality! Many thanks!!
Thank you
Thank you very much for your video! All the guides for similar displays assume the touchscreen's SPI is connected to the display's SPI, and so the only wire you need is the T_CS wire. It wasn't working. I needed your video to understand that with this particular board, I have to manually short their SPI wires myself!
I used this video to better understand the wiring of the display and how to use TFT _eESP library to get my touchscreen working with my Wemos D5 mini and it finally works, thanks a lot!
I got Compilation error: no matching function for call to 'min(uint16_t&, uint32_t)'. Fixed it by changing min() function to jpg_min().
Star quality! I've just got one of these screens but no guide or manual. I don't need either now. Thank you very much.
This helped me wire up and ILI9486 and get touch working using TFT_eSPI. Thanks for the jump start.
Great demo and clear explanation. Ordered my screen today - thanks for taking the time to put this together!
Fantastic, thanks for the feedback. Glad it helped
Magnificent guide - I now have the Display section up. Didn't work first time - tried in Arduino 2.0.0 rc9.4 - lots of critical errors compiling - updated library, boards etc still failed Using ESP32 Wemos Lolin32 and 2.8" ILI9341 TFT LCD. errors like undefined min(_h,_w) etc, got the latest tft_eSPI from GIT hub, same no matter what example I tried. So I deleted all my arduino installations, and folders, Libraries etc. Then installed fresh IDE 2.0.0 Rc9.4, added ESP 32 boards , added tft_eSPI from the IDE 2.4.72, edited the User_Setup.h file as advised, compiled with a few warnings about the Changed pin assignments - but no errors, Uploaded - and I'm a happy man! many happy displays. ( TFT_Meters.ino example)
Well done, great determination there 👍
I love most of your videos but this one is a stand-out. A few other videos have tackled these boards, but none that I recall tackled all three functions; display, touch, and SD.
Useful content, clearly presented!
Thanks very much, comments like this make things worth while.
Awesome instructional video. This was the best esp32 / eSPI video by far. Loved how you went through the steps very clearly with visuals. Thank you very much.
hey did you get any output on display? I am getting only white display. please help
Me too, but I'm getting an image using a different adafruit example with exactly the same pins defined and wiring.
The example in this video compikes, uploads and runs, but the display is solid white. The output from the touch is also just pegged at z 4000 odd and x&y stuck at zero.... They move a bit when I touch it but y stays at zero
All very helpful. I wired everything up as all the diagrams that I found, modified my TFT_eSPI setup file with the right settings, turned on and nothing. After a while, I tried following your instructions to the letter, wire colours and all and it worked, even though everything I had done was exactly what you did, though I used an orange wire for CLK and a green for data, so maybe that was it. (Only kidding, I suspect that I've got a duff wire or a duff connection on my breadboard), but hey, thanks.
Forget TFT_Meters, the TFT_Matrix example is super!
Brilliant, ha ha deffo colours matter lol. Thanks for the tip.
Such a clear and concise video tutorial. Followed it precisely and all worked first time opening up my understanding of how to configure these displays for all sorts of projects I've now in mind. Thank you so much to taking the time and trouble to produce this excellent video. Brian Campbell (Bsc)
Great stuff, glad it all worked.
Thank you for an excellent video. Yes for work with the ESP32 it is all in the TFT_eSPI library and not the Adafruit_ILI9341 library. As for the ILI9488 - forget that one for the moment, but it works well with the Seeeduino Xiao.
Great guide ! thank you for taking the time to talk through the SD JPEG - I had to remap the SPI to get it to work
SPIClass spi = SPIClass(HSPI);
spi.begin(SD_SCK, SD_MISO, SD_MOSI, SD_CS);
if (!SD.begin(SD_CS, spi, 80000000)) {
Serial.println("Card Mount Failed");
return;
}
uint8_t cardType = SD.cardType();
if (cardType == CARD_NONE) {
Serial.println("No SD card attached");
return;
}
I've had a collection of the screens for a couple of years!! Finally get to use them 💪
Brilliant
You're my hero. Saved the day🎉
Best video explaining this! Been searching for this for ages! Thx!
For anyone with touch issues using the most recent version of tft_espi. Make sure to disconnect sdo(miso) it should be connected to nothing. Connect t_clk to pin 18. Fixed my issue.
As you can see in the video it all works. And if you look through the comments you will see it's worked for many people. Did you use the exact same version of the library and did you read the pinned comment about the bit I missed about the touch screen? I think it's mentioned in the video description too. Did you read that?
@@XTronical this was a video from 2 years ago. I'm assuming the version I am using is different. I apologize for coming off blaming you for the issue. Let me edit the comment. Thanks for your content btw!
Great presentation! I did run into a minor problem with the Meters script, was getting 6 warnings
"ISO C++ forbids converting a string constant to 'char*' "
and pointed to 6 lines (44-49) in void setup. Although the script compiled and loaded fine and the meters displayed beautifully on my display, I still did not like having those warnings. Did a little research and learned that Warnings usually mean that your program may or may not work. Those 6 lines called a function (plotLinear() with three parameters, the first of which was "A0" thru "A5". Located the function
void plotLinear(char *label, int x, int y) and changed it to
void plotLinear(const char *label, int x, int y)
and the warnings disappeared. Script compiles and loads and runs just fine.
REALLY???
I'm gonna try that, mine refused to compile on that error.
Thanks for this great vid. It was super easy to follow and you explained things really well 👍
Hello, nice.
Just put this at the beginning of your sketch:
#define min_ (a,b) ((a)(b)?(a):(b))
Creo enjoyer = BASED
Thank you for this. Very clear and I'll be referencing this for a project.
Hi XTronical, fantastic video, Very Very helpful, thanks for posting this.
thanks, very detailed, i will try it and enjoy this , again thanks !!!
Awesome video with great explanations, thank you very much!!
I love your clear explanations. Thank you for sharing this video
oh man so many thanks to you. that was straight forward (:
Thanks, just what I needed. Touch and SD card very good explained.thanks.
Thanks for the feedback
Thanks!
I'm currently working on my first project that will use an ESP32 instead of an Arduino and this is just what I was hoping for!
It''s gonna be a WIFI-enabled clock that uses NTP and JSON over HTTP to retrieve the time and weather forecast and displays the information on an 60 LED ring and TFT screen.
Cool, I did a weather forecast with esp32 and a paper display if that helps
ua-cam.com/video/jsJmmmYtgcw/v-deo.html
I have a lot to learn, this video is very helpful, Thank You! 👍❗
Congratulations on the excellent tutorial.
Very nice explanation! Many thanks from a beginner maker
Top Quality Video keep up the good work Bro...
Perfect timing! Got a non touch ili9341, DFplayer Mini and ESP32 in front of me. Problem has been brown outs. Was going to swap for a Bluepill STM32, but will try the Bodmer library before ripping it apart (probably literally lol).
If powering from the computer over usb then check the quality of the cable. I've had some drop quite a bit of voltage by the time it gets to the dev board. Gave me a few headaches once when using an ultra sound sensor. Use shortest quality cable you can. Hope this helps.
It does help, thanks, forgot all about daft 40 gauge wires with the oversized sleeving - this will be one! Thanks for your fast reply too :)
Outstanding tutorial. Thank you for your hard work and I look forward to following you.
thanks lot, I was so much in need of such video.
I would recommend connecting touch cs to screen cs so you can keep pin 21 for i2c as for instance a bmp pressure sensor will spam the touch with input.
Remember to change #define TOUCH_CS.
Thanks for the project but i think it needs wiring diagrams.
Is this possible because the touch controller is only sending data to the esp32, and the display controller is only receiving data from the ESP32. So they can technically run at the same time anyway? Does this speed things up so the display doesn't lag behind the touch input?
I'd have to Check but as long as the touch controller waits until the esp32 is ready to receive data after generating its interrupt then should be OK. But would have to examine library's. As if esp32 half way through sending data to screen and starts servicing the touch then could cause corruption. The potential is there, I just haven't looked how the library's work
I now have my 3.5” TFT touch screen working, I created a menu system as well to change settings on my ESP32 based 2 channel LoRa to wifi gateway, which I designed late last year, I did a video on it at the time but that was with a 2.4” OLED, before I added the TFT.
Just got my screen in the mail today.
Very useful , thnx , got mine working thanks to your video...
Brilliant
Awesome video! Its my goto video for the wiring connections!
Great Video...you solved my issue and saved me a ton of time!!!!
This is a very helpful video. Thank you!
Thank you very much, it works like a charm, so fast: incredible !!!!
Brilliant, thanks for the feedback
Thank you! very helpful introduction!
Thank you! Great library!
Thank you for the feedback
I like your style, MATE. Subscribed.
Cheers
thank you so much!
A fantastic video. Many thanks.
Thank you for this tutorial!
great video! so easy to understand.Thanks!
Thanks for the great video but please note the affiliate link for the screen takes me to the non-touch version, I only realised once it arrived!. Otherwsie great work thank you.
Thanks for your feedback. Sorry about that, Amazon can be not so good as it shows it does touch in the pictures (you can see the connections), have you been sent one that doesn't match the images? You should be able to get it swapped if yours doesn't have the connections as it definitely shows them
Хотя язык и не понимаю, но наглядно просто отлично и понятно. Спасибо.
Really helpful video, thank you very much!
Brilliant, glad it helped
A superb tutorial! But is it right you already use D21 for CS of the SD? Should the CS of the touchpad be changed to D5 as in your video?
Yes, as they both need there own CS
all in one . fantastic video
Thank you for the feedback
You saved me! Thank you
Glad it helped.
Thank you so much for this video
Well made video. Makes me believe I can do it!
You can!
where you can change the pins of the sd, use another miso mosi, example (I repeat only for the SD)
#define SD_CS 27
#define SD_MOSI 13
#define SD_MISO 12
#define SD_SCK 14
thankyou
Very nice video thanks
thank you, it was very helpfull to me !
Muito Bom! Fiz os testes aqui.
Gente, este tutorial es muy bueno, pero si vas a utilizar las librerías más nuevas os va a dar algunos pequeños problemas con su ejemplo de tarjeta SD:
Problema 1: Usa funciones desactualizadas (detalle menor), al compilar sale que no existe la función "min(..., ...)"
Solución: Hay dos maneras de solucionarlo (al fin y al cabo son lo mismo), uno es cambiarlo a "_min()" que es una función que provee la propia librería de Arduino.h, otro es usar "jpg_min()" que es la que provee la librería de JPEGDecoder. Si se lo preguntan, son en realidad lo mismo, ya que hacen lo mismo de --> #define _min(a,b) ((a) ver --> desmarcar la casilla de "ocultar archivos protegidos por el sistema" y luego borras el "Thumbs.db".
I'm doing this on an ILI9488. I got the meters demo to work, but can't read from the SD card. ("Card Mount Failed.") There is an ominous warning next to the ILI9488 option in the User_Setup.h file about not connecting SDO and MISO to same SPI bus, which is Greek to me, but might be the problem? EDIT: Nevermind, got it to work. Problem was my bad soldering. Works with Bodmer's test script, still can't get your code to automatically detect and display jpegs. I'll figure it out soon enough though. Thanks!
super helpful mate. thanks!
Great video, but when I try to display the image, I only see a small portion of it, whether it's with your images or mine. Any ideas?
This is awesome!!
Thanks
I would like to ask that I am using the ESP32 Wroom 38pins version and I am going to design the circuit board for my graduation project now, so I would like to ask you to help me check if there is any mistake in the pin connection. There are two PCBs, a receiver and a transmitter. They all need to communicate wirelessly.
This is the pin connection of the transmitter.
#define LED1/out G4
#define LED2/out G16
#define LED3/out G17
#define LED4/out G5
#define Button1/in G27
#define Button2/in G26
#define Button3/in G25
#define Button4/in G33
#define Buzzer/out G32
This is the pin connection at the receiver which needs to be connected to a TFT 3.2inch screen.
#define TFT_MISO G19
#define TFT_MOSI G23
#define TFT_SCLK G18
#define TFT_CS G15
#define TFT_DC G2
#define TFT_RST G4
#define VCC 3.3V
#define LED 3.3V
#define GND GND
#define LED/output G25
#define Button/input G26
#define Buzzer/output G27
Well, looks OK, but I've never built a receiver, transmitter pair myself. Just get one part working first, either the tft or the receiver stuff. Don't try all at once.
Thanks so much for this video! I've got a question. These display boards have a jumper "J1" for selecting the voltage. In your case for the ESP32, did you need to short this jumper "J1"? Just want to confirm before I do something stupid with my board...
Yes, short the jumper if using ESP32, leave alone (how they come by default) if using Arduino. Nothing bad happens either way for ESP32 apart from it may not work if you do not short it. Mine worked and then stopped when I added one more component to the project. For Arduino it may break the screen if you short it so leave un-shorted.
Thanks a lot for your help!
Gracias!!! Excelente explicación!
Great job!!!
Amazing .. Many Thanks ..
Glad it was useful
Nice tutorial!
nice work
Thank you very much! I was struggling so bad with my ILI9341. Thanks to you I managed to edit the user_setup.h so it works.
The SD-Card won't work, but I guess thats due to the lack of connections on my expansionboard. I've ordered this bundle "Esp32 arduino wifi & bluetooth 2.8 "240*320 smart display bildschirm lcd tft modul mit touch ESP-WROOM-32" from aliexpress and was hopping, that all connections on the ILI9341 were lead to one side.
One question: How do you delete the touch-calibration? On the first start after uploading the sketch, the touchscreen had quite a delay and so I've touched the same corner twice...🤦
Now "touch corners as indicated" shows again, but neither my finger nor the pen works. Uploading the sketch again didn't help
If both CS are running on PIN 5, it does not work. For SD another PIN should be selected. In the setup SD.begin(PIN_X) should be called.
HELP!!! every time I connect the MOSI pin to the touch the SD card won't initialize!
thansk it help me
I want to make it with the Relative Humidity reader just like you show. Can you show how to make it save data to a data logger? I am doing atmospheric research. I want to create a device that can be worn that will collect data in different environments inside and outside. Because it is wearble, I don't want it bulky or heavy. The data logging is for reviewing at a later date away from the location. Thanks
Did you mean this comment to be under the humidity sensor video I did? Anyways, basically you'll need to hook up to a sd card interface (videos on this) and make the Arduino go into deep sleep to save power (as battery powered) and just save to a text file on sd card in comma delimited format. This will load up straight into excel etc. I've done a weather centre project which shows deep sleep and sd card etc.
Thank you very much for this tutorial it helped alot! Unfortunatelly i cant get the screen to work on full screen, there is a 1/4 gap which only shows white. Im using the same components can you help me out?
I don't think I've heard of that before. Does that appear before even drawing anything on screen?
If you take a look at the sources of Bodmer's lib you can see that in some cases he is pulsing the chip select within a method.
But in your code it looks like you are wrapping the chip select enable/disable in front of/after the method calls on the lib.
Doesn't this affect operation? Or are the ili displays not dependent on these pulsings?
I was thinking about replacing the esp's gpio chip select with a gpio expander for all cs lines but just have an mcp23017 (i2c) at home atm which is ok as i am not relying on high update rates. A mcp23s17 (spi) would speed up operation quite a bit though.
Hi!
Do you kno if is possible to integrate this lib with a 4' inch display? I've tested with a ILI9488 spi display, but like 30% of the display didn't show anything, I mean were blank, just the others 70%. I use a resolution of: 480 × 320. Thanks
Good info. But when I compile your code, I get the following error.
How to fix that?
Thanks.
Invalid FQBN: getting build properties for board esp32:esp32:esp32: invalid option 'EraseFlash'
Compilation error: Invalid FQBN: getting build properties for board esp32:esp32:esp32: invalid option 'EraseFlash'
hi there is there a big display for esp32 available like the one used in this video but it is not touch screen but a simple diplay?