how to use a not arduino LCD shield on Arduino

hi everyone.
well i have a rather general question then we go for more specific terms :slight_smile:

the question is can i use screens that are not made for arduino with arduino, in general, like using LCD screens from coffee machine? is there any kit or hack for that?!?

and as a more specific example I bought one TFT LCD like the link below that seems is not for arduino even when it looks like Mega Shields, i used multiple TFT Shields to change it as i saw on some website but no success there too. can i make like a converting kit myself to run it with arduino? since it has ILI9341 with existence libraries?

i have this and i like to use it with UNO or MEGA


Using an LCD off a coffee machine is always possible - to varying degrees - but usually too silly to be worth the effort. The LCD you link to is surely not off a coffee machine but looks exactly like the sort of thing that is used on an Arduino, and the "ILI9341" strongly suggests that it is. What you need is a shield that goes between it and Arduino, which should be available from the same supplier. If they don't have a shield, they obviously don't know what they are doing, and you should get the same or similar display - with shield - from someone who does. The same supplier should also be able to recommend a library.
I don't know anything about that display. It may be only be good for use on a Mega.

Uno does not have enough pins.
Mega has enough pins but you need twenty one level shifters for the TFT.

There are Adapter shields for 40 pin displays.
I have never seen an Adapter for 34 pin displays. You have to make your own e.g. with Protoshield and level shifters.

Or buy the specific STM32 dev boards described in the Wiki.


Uno does not have enough pins.
Mega has enough pins but you need twenty one level shifters for the TFT.

Funny, I count only 17!

Take your socks off. (and underpants)

DB0-DB15 = 16
RD + WR + CS + RS + RST = 5

and that is 21 pins just for the TFT.

If you use the Flash Memory chip, SD card or Touch controller you need more level converters for a Mega2560.

Of course a 3.3V Due does not need any level converters. But it is still a lot of connecting wires. Which is why I suggest that you make an "Adapter"


Why do you need 16 data pins?

Because the display uses 8080-16 interface.
And there is no user way to alter the interface.

So why does the datasheet quoted above give you that option?

My apologies. A user can configure 8080-8 or 8080-16 with R4, R5.

If you select 8080-8 interface you need 8 + 5 = 13 level shifters for a Uno, Mega.
The Uno has enough pins. There are several libraries that support 8-bit ILI9341. e.g. Adafruit_TFTLCD, ...

Life is a lot simpler if you buy an Arduino Shield in the first place. It will have the appropriate wire routeing and level shifting.