MCUFriend 3.5 inch LCD with ILI9488 and Touchscreen

Hello All,

Bought some MCUFriend 3.5 inch LCD with touchscreen.
I’ve since then gotten it to work with the example Touch_shield_kbv sketch.

Because I didn’t have any info for it and could not find it on the MCUFriend website,I decided to send an email to the company. Didn’t expect much from them but to my surprise, they actually responded to my email a week later!

My lcd seems to be using ILI9488 as driver. For the touchscreen to work I had to change some code in the example:

uint8_t YP = A2;  // A1 must be an analog pin, use "An" notation!
uint8_t XM = A1;  // A2 must be an analog pin, use "An" notation!
uint8_t YM = 6;   // 7 can be a digital pin
uint8_t XP = 7;   // 6 can be a digital pin

Info and schematic is attached, hope it is useful to someone.

The output I got from the serial monitor looks like this:

Found ILI9488 LCD driver
Screen is 320x480
Calibration is: 
LEFT = 915 RT  = 185
TOP  = 950 BOT = 185
Wiring is: PORTRAIT
YP=16 XM=15
YM=6 XP=7

Edit: Sorry got the sketches mixed up the above is now exactly what I did
Edit2: The attached info is what I got from the manufacturer, I told them it identifies as ILI9488

3.5 lcd info MCUFriend with (18.3 KB)

I note that your ZIP seems to refer to an Ilitek ILI9481 and a Renesas R61581.

These controllers are VERY different to the ILI9488.

I suggest that you Upgrade your MCUFRIEND_kbv to the new Release.
And then run the new TouchScreen_Calibr_native sketch.

Paste the output from the Serial Terminal to your message.


I did what you asked and uploaded the new TouchScreen_Calibr_native sketch (2.9.7)

The Touchscreen doesnt work now even when I change the code to:

int XP = 7, YP = A2, XM = A1, YM = 6;  //most common configuration

Which worked for my earlier test sketch.

the Serial Monitor output is this:

TouchScreen.h GFX Calibration
Making all control and bus pins INPUT_PULLUP
Typical 30k Analog pullup with corresponding pin
would read low when digital is written LOW
e.g. reads ~25 for 300R X direction
e.g. reads ~30 for 500R Y direction

Testing : (A1, D7) = 25
Testing : (A2, D6) = 33
Diagnosing as:-
XM,XP:  (A1, D7) = 25
YP,YM:  (A2, D6) = 33
ID = 0x9488

Haven't investigated further but the sketch hangs at the "Touch screen to continue" message.

Thanks for the feedback.

Well, at least we know that you have got a real ILI9488.
The Touch pins look normal.

I am surprised that you don't get any further when you touch the screen.
You would use a stylus rather than a finger but you do not need to press hard.


I tried with stylus from another touchscreen I got, but it just didn't work.
The stylus worked with the before mentioned example.

I have no explanation. It is usig the same pins as you used in the Original Post.

I was hoping that the new sketch would be more reliable than the previous one.
And the results easier to understand.

At least you have a choice of sketches to use.
You can uncomment the print statement in the readResistiveTouch() function.