Go Down

Topic: mcufriend 3.5 LCD TFT ILI9327 with Arduino atmega328P , Need help plz! (Read 2301 times) previous topic - next topic


It looks like we're talking about different boards - sorry.  I was referring to this comment you made:

At the same time,   I ordered an ILI9488 display: http://www.aliexpress.com/item/1pcs-3-95-inch-LCD-Display-Module-TFT-LCD-screen-for-Arduino-UNO-R3-Board/32412273145.html
The pcb says "www.mcufriend.com 3.95" TFT LCD for arduino uno"

I did succeed in adding "ILI9488_8" support to UTFT.   This runs ok.    The Resistive Touchscreen works perfectly. 
It looks like it has a 9 or 10-pin flex cable connector for the touchscreen.  Your comment above makes it sounds like you were able to get the touchscreen to work.  How did you connect this 9/10-pin flex cable to Arduino?

On the shield, D6, D7, A1 and A2 are marked LCD_D6, LCD_D7, LCD_WR and LCD_RS.  Are you saying these pins are used for both the TFT display and the touchscreen?




My bad!  I took my shield apart to better understand how it is wired.  The 9/10 pin flex cable that I thought was for the touchscreen is actually the LED backlight connector.

I'm not able to see exactly where the 4-pin touchscreen flex cable goes, but I did see connections from it to pins D6 and D7 - so most likely what David wrote is correct.  I'll have to try this out later today.

Thanks for the help David!



Yes,  these mcufriend Shields are very convenient for a Uno.    However,  you only have A5 available for the outside world.

Mind you,   the microSD can supply an infinite amount of pictures / data.    The TouchScreen allows you some User Input.    The TFT can display your pictures / data attractively.

The Touch wires are shared with the regular TFT connections.

The alternative would be for an external Touch controller on the SPI bus with the microSD.    This could use A5 as its /CS pin.   But you would not have anywhere for a Touch_IRQ pin on a UNO.    (Actually,  I have an ILI9325 +  ADS7946 screen which makes use of A6 pin on a Seeeduino)



David was correct.  D6, D7, A1 and A2 are shared between the LCD display and the touchscreen.

Thanks!  :)


It is a resistive touchscreen.    Use the <Touchscreen.h> library from Adafruit.   Likewise,   earlier in this thread there is a modified Adafruit_TFTLCD.h library that supports the ILI9327 and ILI9488.

You should be able to use the examples from the Touchscreen library.    Or the example "tftpaint2.ino" from diger67's modified "Adafruit_TFTLCD.h" library.
Code: [Select]

TouchScreen ts = TouchScreen(6, A1, A2, 7, 300);   // for mcufriend shield

Incidentally,   the fillTriangle() method goes wrong with the larger screens.   Edit the Adafruit_GFX.cpp file to use int32_t for sa, sb

I have now got the UTFT library to support ILI9488 and R65109V on the 8-bit bus used by the Uno shields.
My R65109 Problem was that UTFT assumes 8-bit commands.    The Renesas controllers use registers like 0x200, 0x400, 0x600, ...
I just had to change the argument type for LCD_Write_COM() family of methods.

Note that UTFT does not understand the /RD pin on controllers.    Make sure that you make the A0 pin ouput high before any UTFT example will work.
Note that <UTouch.h> library expects an intelligent controller.   The mcufriend Uno shields do not have a touch controller.

I will also measure the pins on my 240x400 shield to see what the touch problem is.


Edit. added constructor()
David can you please share the library and code for R61509 tft driver.

Go Up