LCD TFT 3.95'' & Mega 2560 YES or NO ?

Hi all,

I have a Arduino Mega 2560 board and looking for a tft lcd touch screen.
My goal is to use the TFT 3.95'' cheap lcd for my project.

Could you confirm the lcd from the link below, is really compatible with my Mega board ?

We can find a lot of libraries official, unofficial, customized and others for some specific controller.

What's the right library for a ILI9488 controller. ?

I also read that TFT is slow with the mega2560.
Is that right ?

Also some guys have some troubles with the touch screen.

There is also a similar lcd shield here for the Uno & Mega board

I know this board is running good with the uno. But with a Mega ??
What's the difference between both expect the pinout.

We can read a lot claim for this kind of LCD since several months but is there anyway to use this kind of LCD now with my Mega 2560 without any problems or I have to wait ??

Any answer and advice should be appreciated.
Thanks in advance.


The first link claims to use a R61581 controller but shows a photo of a 3.95" pcb that says (ili9488)
This shield is designed for a MEGA2560. It should work fine on a MEGA2560 with UTFT library.
The microSD will probably be unreliable or useless.
The Touch controller will be fine.

The second link claims to use an ILI9488 controller AND shows a photo of a 3.95" pcb that says (ili9488)
This shield is designed for a UNO. It will work fine on a MEGA2560 with MCUFRIEND_kbv library.
The microSD will work fine on a UNO. It will work fine on a MEGA2560 with Software SPI.
The Resistive TouchScreen shares pins with the TFT and will work fine.

If you use the UTFT library, both will be about the same speed with a MEGA2560.
However, if you use a "better" library than UTFT, the first link shield will be very significantly faster than the second link.
If the microSD worked reliably, the first link would be your best choice.


Very good David, thanks for your answer.
I had read a lot of posts very useful from you, thanks again !!

You confirm that "ili9488" & "r61581" controllers run with UTFT library & MCUFRIEND_kbv library on a MEGA2560.
I could use either one or other with both librairies on both shields
In the UTFT Supported display modules infos, I do not find the "ili9488".

I was a little bit confused with the MCUFRIEND_kbv library because you said somewhere "It will work on a MEGA2560 but not very fast" and it was confirmed later in a previous post. Maybe this library (from you Hi...) is running better now.

With the LCD shield for uno, digital pins 2,3,4,5,6,7,8,9 should be used with the mega2560
With the LCD shield for mega2560, I don't know which pins are used. Is it still a 8 bits parallel or 16bits ? or via serial SPI ??
How the the same library can work with 2 different shields connected differently ?

Where I have to indicate the pins used for the differents LCD Shield in the library ?
I found contol pins definition A0->A4 for LCD_rs, LCD_rd ....... but not the others for LCD_d0..., LCD_d7.

So, I think it will be useful to have the microSD efficient with a TFT if possible

Moreover, in the next step of my project I would like to add my ethernet shield.
I already have this shield (wz5100) and works fine alone with the mega2560.
The ethernet shield uses the SPI pins (50 to 53) via the ISCP connector and pins 4 & 10 for chip select (SDcard or ethernet).
Maybe, I will have to use a couple of external wires if I can not connect them together with the pins

Could you confirm the both shield (LCD + Ethernet) are compatible on a MEGA2560.

Sorry for all these questions but I try to find the best way before to go head and buy the right LCD TFT TouchScreen compatible with the Mega2560
My final project is to be able to send some data (from different probes) to internet and to have a dashboard on a LCD
My sketch with the probes is ok.
Data from probes come via RF433 module. This sketch is ok.
My sketch with the ethernet shield is ok.
I'm able to send all data to the network.

If I can mix every things, I will be happy.


Be realistic. An Ethernet shield is probably going to use SPI and a whole load of GPIO pins.

Any display shield that uses a parallel data bus is going to use up 8 or 16 GPIO pins. Then you have some control pins as well.

A display shield that uses SPI is probably your best bet. Even so, I doubt if you get one that will fit on top of your Ethernet shield. I suspect that you will need to do a lot of hand wiring. But without knowing which Ethernet shield, we really cannot help much.

Most Ethernet shields have got a good microSD.


I use this shield:

This shield uses only 4 pins (50 to 53) for SPI and pin 4 & 10 (they can to be redefine if needed) for chip select (SDcard or Ethernet), not more. (expect Vcc & Gnd of course)

I know I can not use SPI for a other shield.

But that's why I asked you in my previous post, which pin are used on the LCD shield ?
And could I re-define these pins if already used ?

I also know, I can not fit on top of the ethernet shield a LCD shield, but that's not a major problem. All of my pcb are in a box. And I will do the hand wiring for sure.

Now I come back back to my first post.
You said this one

work fine with MEGA2560 & UTFT or MCUFRIEND_kbv libraries.

Which pins are used with this shield ??
Can I re-define them ??
Is it a 8 or 16bits parallel data bus ?? or via SPI bus ?
Why, there is a specific LCD shield for mega2560 if the LCD shield for the uno works fine with it ?


The 16-bit mcufriend shield uses pins 22-41 from memory for the LCD. And 3-7 for the Touch controller.

So you can possibly sit the display shield on top of the Ethernet. You need to make an extender for the 18x2 header to mate with the display. This is fairly simple with some long male header and some female header. Solder them together by hand. You will have a very robust "adapter". Use some spare header strip to keep everything in line while soldering.

Digital #4 looks like the only problem. You may need to route this differently. e.g. snip the shield pin and run a wire to an unused pin like 42-49.

No, I did not suggest that you use MCUFRIEND_kbv library with the 16-bit shield (although possible). I said that you could use UTFT. And UTouch for the Touch library.

No, I have never constructed an assembly like this. I bet that another member has done something similar.


Ok david, thanks your review.

I just bought this one, hopefully to get the ILI9488, now have to wait 3 or 4 weeks. :((
Then will try with UTFT libs or MCUFRIEND_kbv library

But why the SDCard should be unreliable or useless as you said before ?
SDcard is connected via the SPI bus.

I also found this picture (see in attachment).
It's for the 3.5'', 3.95'' seems to be exactly the same.
It looks like a 8-bit bus
What are the top pin D_busy, D_clk, ..... ?


Your Aliexpress photo looks like a 320x480 with a R61581 / ILI9481 / ILI946 / ILI9488 using a 16-bit bus.

Your JPEG looks like a 240x400 or 320x480 with an 8-bit bus.

When the Aliexpress shield arrives, it is possible to do some guesswork about the controller. In fact, R61581 and ILI9481 are very similar. ILI9486 and ILI9488 are similar.

You can drive 8-bit or 16-bit bus easily. Let me know what your pcb looks like.
The microSD is unreliable because it has series resistors that are too high in resistance.
The D_BUSY etc pins are for the XPT2046 Touch Controller chip.


Hi David,

I'm using an 2560 Board with the 3,95" mcufriend TFT. The display and also e.g. the touch calibration works fine. But, since two days, everthing I try to read the DS card, does not work :confused:
I trie to setup soft SPI, the pins 10,11,12,13 are right connected to the SD card (also printed on the TFT board)...

What I tried:
#define MEGA_SOFT_SPI 0 not set to zero --> #define MEGA_SOFT_SPI 1 --> error while compiling
also tried:
#define USE_SPI_LIB --> //#define USE_SPI_LIB --> error while compiling

So, maybe can you tell me what is wrong?

Thank's in advance and have a good week

The regular "SD.h" library that comes with your Arduino installation can only do hardware SPI.

A third party "SdFat.h" library can probably do software SPI on these pins.
The only problem is that there are several SdFat.h versions out there. Some will manage the software SPI but not handle all SD cards.


Hi David,

I tried to modify the SD2Card files...ok, I will try SDfat. Thank's for your advice!

All the best

Hi David,

I received a 3.5 inch TFT LCD Arduino Mega shield via Aliexpress.,searchweb201602_1_505_506_503_504_10020_502_10001_10002_10017_10010_10005_10011_10006_10003_10021_10004_10022_10009_10008_10018_10019,searchweb201603_8&btsid=ebb3cf19-2d87-4174-b8ae-e83fafd747f5

It says in back that the controller chip is ili9488. (It is very similar shield like Romeo's first link but only 3.5 inch size.) Thank for your post I even didn't try the R61581 thing.

I tried to revive it with UTFT as well as mcufriend_kvb libraries with so many different setup but it always shows me "white screen".
I downloaded the ili9488 libraries from but it even doesn't allow to choose ili9488 chip.
Could you write me which version of these libraries are good for this shield and with which setup?
I spent two days with this screen and still nothing.

Thank you for any advice.


I am amazed by some of the "sales" that are appearing on AliExpress. I am beginning to think that these are deliberate fraud.

Your "sale" shows a Mega clone + shield for $16. Text that says R61581. Example code that says SPI. And no photo of the pcb side of the "shield". The single "buyer's comment" says that it came without a plastic film on the screen.

So it is quite possible that the Vendor sells you broken goods and hopes that you do not ask for your money back.

Does your pcb "look like" the photo in romeo01's link, i.e. same components, similar pcb traces, same header pins?
Can you find the exact photo of the pcb on Ebay or Alixpress? And post the link.
If not, please take a photo of your pcb and post it here.

If it is a 16-bit interface. Worth trying Bodmer's TFT_HX8357 library.
Or trying UTFT with ILI9481 or ILI9486.

Somehow, $16 seems too cheap for a $12 Mega2560 + an $11 shield. Does the Arduino work ok?
AliExpress used to have a very good reputation for honesty and service.


Thanks for your very fast reply. :slight_smile:
I took a picture about the back side:

I ordered two from this type and you are right, one of Arduino Mega doesn't work. :slight_smile:

I'm developing a product and now we have to choose a TFT touch screen with Mega compatibility and around 3.5 inch size.
I could revive all of ordered except this ili9488


I have a Red shield that matches your photo exactly.

The TFT has got a standard 16-bit interface and works with UTFT as ILI9486.
The Touch XPT2046 works fine with UTouch.

The microSD has got NO chance of working reliably. The 10k series resistors are too high.

To be honest, I am not sure what TFT controller it actually contains. It responds to the ILI9486's 0xE6 command. So I am pretty sure it is an Ilitek controller.
However, the 0x36 command register does not behave like a genuine ILI9486.

UTFT does not exercise the power of modern TFT controllers. But it is easy to get working.
Delete your current UTFT folder and re-install a fresh copy of the UTFT library.

If you have a duff Mega and a duff display, there is clearly something wrong. I would complain to AliExpress. It sounds like they are intentionally supplying broken goods.

I do not always complain. Sometimes things get damaged in transit. I would be upset if the Vendor was deliberately selling counterfeits or "Quality Control Failures".


p.s. what is the green pcb shield?

Oh, sorry. :slight_smile:

This is the best so far (with green PCB).

The picture is viable from wide angle and it is working fine with UTFT, the touch panel is accurate, and the SD slot also works.
The only problem is the resolution: 400x240

Hello Romeo,
I am about to use the same screen with an arduino mega. did you find it reliable ?


Hello David
I am french and i do not speak nor read english google is my friend
Since several months I try to run two screen 3.95 "I bought on aliexpress without success here the linkhttps: // -TFT-LCD-screen-for-Arduino-MEGA2560-Board / 1681818932.html? DetailNewVersion = & categoryId = 400401
And I came across one of your post and found it: MCUFRIEND_kbv-use-mega-8-bit-shield I tried to paste graphictest_kbv and the surprise my screen is turned on with any The color the pinguin ect ..
The only thing that is wrong is when portrait mode the writing is upside down and TouchScreen_Calibr_kbv does not work
Thank you for the work that you do j learn a little to progammer but I am still very novice and I am far from understand everything if you could give me some indication to be able to use it in a progamme and in turn if I can bring Indication that can be useful to you it will be with pleasure
Soyer not too hard with my writing as I told you it is google translated
I thank you for your response and for this fabulous work
Cordially pilgreen

Your link does not work.

If you have a Mega2560 Shield, it is not possible to read the ID.
You have to guess the ID. You have to use a SPECIAL driver.

Without an accurate link or photo of the pcb, it is not possible to help.


Hello David
Sorry for the link I put pictures of the pcb and the screen in function