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!
My first time on this channel, you are a ‘human’ computer trainer, I really felt that I had learned something and had control of what I was doing, not just blindly following. Thank you.
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.
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.
I juat want to add my thanks and appreciation for the terrific tutorial. It really helped me with my ESP32 ILI9488 project. The video was informative and your presentation style is fantastic. Nice and breezy. You have helped a lot of people. Thanks again.
While I have your attention, I used the example sketches to test each of these functions separately. (TFT, Touch, SD Card) They all worked great when modified separately for my application. I then integrated them into my main application one by one. The TFT and Touch functions work great together but I get compile errors when I add in the SD Card code. I am certain there is some conflict with the FS/SPIFFS/LittleFS/SD libraries and the JPEGDecode library. Have you been able to develop code with all three of these features integrated into one application?
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.
Hello @XPERIA80, I am working with an Elecrow 3.5in,. ILI9488 TFT dislplay with an ESP32-Wrover-B micro and SD card reader/writing. Would you mind if I contacted you to hear about your project and assistance?
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!
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.
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 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!
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.
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)
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.
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!
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.
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!
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.
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
I need to do a project for uni with this, my idea is to simulate a car dash screen, use it to turn on leds (indicators), piezos (radio), servos (wipers), and whatever else I can think of, this helped, thanks
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
Can you help with the pin assignment, I dould not understand his example? Display Pins - ESP32 GPIO Pins VCC 5.0V or 3.3V GND GND CS RST DC - I belive is 23 MOSI SCK LED 5.0V or 3.3V MISO TCLK TCS TDIN TDO TIRQ SD_CS SD_MOSI SD_MISO SD-SCK
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
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)
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!
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.
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.
Hello Defpom, I am struggling with the initial pin assignment at the begining, can you share wiring schematic? Display Pins - ESP32 GPIO Pins VCC 5.0V or 3.3V GND GND CS RST DC - I belive is 23 MOSI SCK LED 5.0V or 3.3V MISO TCLK TCS TDIN TDO TIRQ SD_CS SD_MOSI SD_MISO SD-SCK
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.
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.
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 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.
hello, I have a question so basically we are trying to use the esp32 as a database storage and we need an sd card module for that but using a tft display will occupy the needed pins. So upon seeing this video, can I use the sd card embedded on the tft display as an alternative to store data? Will it work the same as the sd card module? Thanks in advance!!
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'
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
I have followed the exact instruction through your very nice explanation, but the TFT display is not completely filled. So I'm missing a small part of the display (show some kind of noise). What am I doing wrong and how can I fix it?
So mostly it works, i. e. You can write stuff to it but a part is just random stuff? I'm wondering if the screen is incorrect resolution. Try drawing a box at the required resolution and see if it all fits one. I think these screens are 320 x 240? Might be wrong, been a bit of a while.
Hello, i already compiled with the correct versions but it does not show images, on the serial monitor it says: ERROR: File "cats.jpg" not found! ERROR: File "girl.jpg" not found! ERROR: File "mountain.jpg" not found! what could be happening? I appreciate the help.
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!
Hello @bens4446, can not follow the assignment portion of the video, can you help me fill in the blanks so I can get going? Display Pins - ESP32 GPIO Pins VCC 5.0V or 3.3V GND GND CS RST DC - I belive is 23 MOSI SCK LED 5.0V or 3.3V MISO TCLK TCS TDIN TDO TIRQ SD_CS SD_MOSI SD_MISO SD-SCK
It's technically possible but video would need to be uncompressed and only run around 12 fps. You would need to store this internally as well for speed so you'd only get maybe 3 secs of video.
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?
Very useful - thank you. Spurred on by your demo I've now got a touch screen gui for my home automation :) Are you aware of any way to control the backlight? - all I've seen so far are mentions of cutting traces and soldering a transistor.
Yes, just connect it to an output pin instead of vcc. Setting pin high will turn it on, low off. You could even use pcm to give varying brightness. Arduino's and esp32 outputs can cope with the current required, although you could measure it first if you wanted to be doubly sure.
Thanks for the tutorial. Great information. These screens come with basically no data so its all about what we can glean from the internet. That said, I have not been able to find anywhere, the power requirements. I am designing a project using this very screen and was wondering if you have any power consumption measurements. Thanks again for the great vid.
I don't have any figures handy. But one think you can do is pulse the back light to provide differing levels of brightness. This can reduce power requirements.
@@XTronical Thanks for the reply. Im not so worried it will be too high. I just want to know the value so I can choose the appropriate linear regulator. Thanks again.
Nice Video! It worked fine on my ESP32 and TFT. Now, I would like to use the SPI bus 1 (VSPI?) for a different device (LoRa), the pins 23 (MOSI), 19 (MISO), 18 (CLK), 5 (NSS), 25 (DI0) cannot be used for the TFT. So I changed the pins to the other SPI bus (HSPI?) for the TFT in the setup file to 13 (MOSI), 12 (MISO), 14 (CLK), 15 (CS), 2 (DC) and 4 (RESET). I even uncommented the line #define USE_HSPI_PORT, but the display was blank, showed nothing. Any ideas? Could it be that those HSPI pins are reserved for the TFT touch screen? What pins should I use for the TFT on the 2nd SPI? THX, John
Hi, I'm getting a problem configuring the sd card input, i'Ive connected al the wires following the video, but its doesn't work. the problem is the sd card mount failing. me driver is the ST7789. I'm using a 16 gb sd card.
Thank you so very much for the tutorial! I have built this and it works great! I use it in a cosplay device for our Mandalorian groups and it has been an absolute hit! Im wondering, would it be too difficult to have two screens running on the one ESP32, each running different pictures?
Thanks. Yes, that sounds possible as each would have it's own chip select wire. Create two screen objects, one set to one chip select and the other to the other chip select. The other connections remain the same.
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.
Hi there - I am using the same AZ-Delivery ESP32 DEV C module - followed your instructions but I get the following error when I try to compile. (I am using a MAC with Big Sur) bash: line 0: [: too many arguments usage: cp [-R [-H | -L | -P]] [-fi | -n] [-apvXc] source_file target_file cp [-R [-H | -L | -P]] [-fi | -n] [-apvXc] source_file ... target_directory exit status 64 /Users/barrysims/Desktop/Arduino.app/Contents/Java/arduino-builder returned 64 Error compiling for board ESP32 Dev Module. Any help much appreciated - I have no idea whats going on.
Thanks for you video, it helped me a lot to get my tft connected. For your Modified Jpeg Code, I am getting a compile err - "Compilation error: no matching function for call to 'min(uint16_t&, uint32_t)'". I am using Arduino IDE 2.0.3. Also note, libraries for FS.h and Sd.h need to be loaded as well.
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!
My first time on this channel, you are a ‘human’ computer trainer, I really felt that I had learned something and had control of what I was doing, not just blindly following. Thank you.
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.
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
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?
I juat want to add my thanks and appreciation for the terrific tutorial. It really helped me with my ESP32 ILI9488 project. The video was informative and your presentation style is fantastic. Nice and breezy. You have helped a lot of people. Thanks again.
While I have your attention, I used the example sketches to test each of these functions separately. (TFT, Touch, SD Card) They all worked great when modified separately for my application. I then integrated them into my main application one by one. The TFT and Touch functions work great together but I get compile errors when I add in the SD Card code. I am certain there is some conflict with the FS/SPIFFS/LittleFS/SD libraries and the JPEGDecode library. Have you been able to develop code with all three of these features integrated into one application?
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.
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.
Hello @XPERIA80, I am working with an Elecrow 3.5in,. ILI9488 TFT dislplay with an ESP32-Wrover-B micro and SD card reader/writing. Would you mind if I contacted you to hear about your project and assistance?
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!
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.
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 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!
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 ☺️
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.
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 got Compilation error: no matching function for call to 'min(uint16_t&, uint32_t)'. Fixed it by changing min() function to jpg_min().
This helped me wire up and ILI9486 and get touch working using TFT_eSPI. Thanks for the jump start.
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.
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
One of the best ILI9341 tutorials with TFT_eSPI and touch functionality! Many thanks!!
Thank you
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
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.
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.
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;
}
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
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.
I've had a collection of the screens for a couple of years!! Finally get to use them 💪
Brilliant
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
I need to do a project for uni with this, my idea is to simulate a car dash screen, use it to turn on leds (indicators), piezos (radio), servos (wipers), and whatever else I can think of, this helped, thanks
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
Can you help with the pin assignment, I dould not understand his example?
Display Pins - ESP32 GPIO Pins
VCC 5.0V or 3.3V
GND GND
CS
RST
DC - I belive is 23
MOSI
SCK
LED 5.0V or 3.3V
MISO
TCLK
TCS
TDIN
TDO
TIRQ
SD_CS
SD_MOSI
SD_MISO
SD-SCK
Um dos melhores videos sobre display TFT
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
Hello @joaoliduarario, I can not get the pin assignement part of the vidio, can you coach me with that beging part of the video?
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.
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!
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 :)
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.
Hello Defpom, I am struggling with the initial pin assignment at the begining, can you share wiring schematic?
Display Pins - ESP32 GPIO Pins
VCC 5.0V or 3.3V
GND GND
CS
RST
DC - I belive is 23
MOSI
SCK
LED 5.0V or 3.3V
MISO
TCLK
TCS
TDIN
TDO
TIRQ
SD_CS
SD_MOSI
SD_MISO
SD-SCK
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
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
Thanks for this great vid. It was super easy to follow and you explained things really well 👍
Thank you for this. Very clear and I'll be referencing this for a project.
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?
I love your clear explanations. Thank you for sharing this video
Hi XTronical, fantastic video, Very Very helpful, thanks for posting this.
Thanks, just what I needed. Touch and SD card very good explained.thanks.
Thanks for the feedback
I have a lot to learn, this video is very helpful, Thank You! 👍❗
oh man so many thanks to you. that was straight forward (:
Very nice explanation! Many thanks from a beginner maker
Awesome video with great explanations, thank you very much!!
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.
Outstanding tutorial. Thank you for your hard work and I look forward to following you.
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
Congratulations on the excellent tutorial.
Hello, nice.
Just put this at the beginning of your sketch:
#define min_ (a,b) ((a)(b)?(a):(b))
thanks lot, I was so much in need of such video.
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.
is it possible to be connected to a voice sensor for command saying "NEXT" which the picture slides next?
hello, I have a question so basically we are trying to use the esp32 as a database storage and we need an sd card module for that but using a tft display will occupy the needed pins. So upon seeing this video, can I use the sd card embedded on the tft display as an alternative to store data? Will it work the same as the sd card module? Thanks in advance!!
Awesome video! Its my goto video for the wiring connections!
You're my hero. Saved the day🎉
Very useful , thnx , got mine working thanks to your video...
Brilliant
Thank you! very helpful introduction!
Great Video...you solved my issue and saved me a ton of time!!!!
Top Quality Video keep up the good work Bro...
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'
Thank you very much, it works like a charm, so fast: incredible !!!!
Brilliant, thanks for the feedback
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
Just got my screen in the mail today.
Хотя язык и не понимаю, но наглядно просто отлично и понятно. Спасибо.
I have followed the exact instruction through your very nice explanation, but the TFT display is not completely filled. So I'm missing a small part of the display (show some kind of noise). What am I doing wrong and how can I fix it?
So mostly it works, i. e. You can write stuff to it but a part is just random stuff? I'm wondering if the screen is incorrect resolution. Try drawing a box at the required resolution and see if it all fits one. I think these screens are 320 x 240? Might be wrong, been a bit of a while.
Did you ever fix this error? I am having the same problem
Hello, i already compiled with the correct versions but it does not show images, on the serial monitor it says:
ERROR: File "cats.jpg" not found!
ERROR: File "girl.jpg" not found!
ERROR: File "mountain.jpg" not found!
what could be happening?
I appreciate the help.
I'm using my ili9341 with an ESP32 in 8 bit parallel mode. I has no idea that these screens can be so fast. It makes SPI seem sluggish.
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!
Hello @bens4446, can not follow the assignment portion of the video, can you help me fill in the blanks so I can get going?
Display Pins - ESP32 GPIO Pins
VCC 5.0V or 3.3V
GND GND
CS
RST
DC - I belive is 23
MOSI
SCK
LED 5.0V or 3.3V
MISO
TCLK
TCS
TDIN
TDO
TIRQ
SD_CS
SD_MOSI
SD_MISO
SD-SCK
Sir great video but is it possible to play continuous video on it?
It's technically possible but video would need to be uncompressed and only run around 12 fps. You would need to store this internally as well for speed so you'd only get maybe 3 secs of video.
Thank you for this tutorial. Very informative and time saving. Do you know if anybody has had problems with using these pins while using the wifi?
I don't think anyone has said either way, sorry can't be more helpful
@@XTronical That's good news then. Thanks for the reply :)
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?
You have an error on your error correction. You don't remove the "hash" (octothorp), you remove the two SLASHes to uncomment a line.
Very useful - thank you. Spurred on by your demo I've now got a touch screen gui for my home automation :) Are you aware of any way to control the backlight? - all I've seen so far are mentions of cutting traces and soldering a transistor.
Yes, just connect it to an output pin instead of vcc. Setting pin high will turn it on, low off. You could even use pcm to give varying brightness. Arduino's and esp32 outputs can cope with the current required, although you could measure it first if you wanted to be doubly sure.
@@XTronical Thanks - I'd tried that without success - will give it another go, as I must have done something daft.
Thank you! Great library!
Thank you for the feedback
A fantastic video. Many thanks.
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?
Thank you for this tutorial!
great video! so easy to understand.Thanks!
Thanks for the tutorial. Great information. These screens come with basically no data so its all about what we can glean from the internet. That said, I have not been able to find anywhere, the power requirements. I am designing a project using this very screen and was wondering if you have any power consumption measurements. Thanks again for the great vid.
I don't have any figures handy. But one think you can do is pulse the back light to provide differing levels of brightness. This can reduce power requirements.
@@XTronical Thanks for the reply. Im not so worried it will be too high. I just want to know the value so I can choose the appropriate linear regulator. Thanks again.
Nice Video! It worked fine on my ESP32 and TFT. Now, I would like to use the SPI bus 1 (VSPI?) for a different device (LoRa), the pins 23 (MOSI), 19 (MISO), 18 (CLK), 5 (NSS), 25 (DI0) cannot be used for the TFT. So I changed the pins to the other SPI bus (HSPI?) for the TFT in the setup file to 13 (MOSI), 12 (MISO), 14 (CLK), 15 (CS), 2 (DC) and 4 (RESET). I even uncommented the line #define USE_HSPI_PORT, but the display was blank, showed nothing. Any ideas? Could it be that those HSPI pins are reserved for the TFT touch screen? What pins should I use for the TFT on the 2nd SPI?
THX, John
Sorry, off top of my head I don't know. Would have to set this up and investigate
Creo enjoyer = BASED
I like your style, MATE. Subscribed.
Cheers
Hi, I'm getting a problem configuring the sd card input, i'Ive connected al the wires following the video, but its doesn't work. the problem is the sd card mount failing. me driver is the ST7789. I'm using a 16 gb sd card.
What's your size of SD, max 32gb
Thank you so very much for the tutorial! I have built this and it works great! I use it in a cosplay device for our Mandalorian groups and it has been an absolute hit!
Im wondering, would it be too difficult to have two screens running on the one ESP32, each running different pictures?
Thanks. Yes, that sounds possible as each would have it's own chip select wire. Create two screen objects, one set to one chip select and the other to the other chip select. The other connections remain the same.
@@XTronical I would really like to have a conversation with you about getting this idea to work! Any chance you can message me directly?
Hi, sorry I don't have enough time for one to one support etc. But I will consider this as a video for the channel.
super helpful mate. 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.
Is there a video on 3.5" TFT LCD ILI9486 with ESP32 board?
Really helpful video, thank you very much!
Brilliant, glad it helped
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!
thank you, it was very helpfull to me !
Thank you so much for this video
Hi there - I am using the same AZ-Delivery ESP32 DEV C module - followed your instructions but I get the following error when I try to compile. (I am using a MAC with Big Sur)
bash: line 0: [: too many arguments
usage: cp [-R [-H | -L | -P]] [-fi | -n] [-apvXc] source_file target_file
cp [-R [-H | -L | -P]] [-fi | -n] [-apvXc] source_file ... target_directory
exit status 64
/Users/barrysims/Desktop/Arduino.app/Contents/Java/arduino-builder returned 64
Error compiling for board ESP32 Dev Module.
Any help much appreciated - I have no idea whats going on.
Thanks for you video, it helped me a lot to get my tft connected. For your Modified Jpeg Code, I am getting a compile err - "Compilation error: no matching function for call to 'min(uint16_t&, uint32_t)'". I am using Arduino IDE 2.0.3. Also note, libraries for FS.h and Sd.h need to be loaded as well.
Ensure you are using the same version of the library as in the video. As it has been updated since it was made and I think broke some things