Arduino MCUFRIEND hite screen only


I am using a MCUFRIEND 2.4" touch LCD shield on a UNO R3 Duinotech clone and the example I am using the graphictest_kbv sketch with no modifications, but getting nothing on the screen other than a white screen. The sketch returns an ID of 0xD3D3 in serial monitor.

I suspect the pins used for both the touchscreen and LCD are not configured properly for my screen.

Running the LCD_IDread reg sketch I get the following print out:

Read Registers on MCUFRIEND UNO shield controllers either read as single 16-bit e.g. the ID is at readReg(0) or as a sequence of 8-bit values in special locations (first is dummy)

reg(0x0000) C0 C0 ID: ILI9320, ILI9325, ILI9335, ... reg(0x0004) C4 C4 C4 C4 Manufacturer ID reg(0x0009) C9 C9 C9 C9 C9 Status Register reg(0x000A) CA CA Get Powsr Mode reg(0x000C) CC CC Get Pixel Format reg(0x0061) E1 E1 RDID1 HX8347-G reg(0x0062) E2 E2 RDID2 HX8347-G reg(0x0063) E3 E3 RDID3 HX8347-G reg(0x0064) E4 E4 RDID1 HX8347-A reg(0x0065) E5 E5 RDID2 HX8347-A reg(0x0066) E6 E6 RDID3 HX8347-A reg(0x0067) E7 E7 RDID Himax HX8347-A reg(0x0070) F0 F0 Panel Himax HX8347-A reg(0x00A1) E1 E1 E1 E1 E1 RD_DDB SSD1963 reg(0x00B0) F0 F0 RGB Interface Signal Control reg(0x00B4) F4 F4 Inversion Control reg(0x00B6) F6 F6 F6 F6 F6 Display Control reg(0x00B7) F7 F7 Entry Mode Set reg(0x00BF) FF FF FF FF FF FF ILI9481, HX8357-B reg(0x00C0) C0 C0 C0 C0 C0 E0 E0 E0 E0 Panel Control reg(0x00C8) C8 C8 C8 E8 E8 E8 E8 E8 E8 E8 E8 E8 E8 GAMMA reg(0x00CC) CC CC Panel Control reg(0x00D0) D0 D0 D0 Power Control reg(0x00D2) D2 D2 D2 D2 F2 NVM Read reg(0x00D3) D3 D3 D3 D3 ILI9341, ILI9488 reg(0x00DA) DA DA RDID1 reg(0x00DB) DB DB RDID2 reg(0x00DC) DC DC RDID3 reg(0x00E0) E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 GAMMA-P reg(0x00E1) E1 E1 E1 E1 E1 E1 E1 E1 E1 E1 E1 E1 E1 E1 E1 E1 GAMMA-N reg(0x00EF) EF EF EF EF EF EF ILI9327 reg(0x00F2) F2 F2 F2 F2 F2 F2 F2 F2 F2 F2 F2 F2 Adjust Control 2 reg(0x00F6) F6 F6 F6 F6 Interface Control

It looks as if 0xD3D3 ID sets the ID to 0x9481. The only error / warning I get is

Low memory available, stability problems may occur.

So is the issue the memory or have I missed something that I should have commented out/in in the sketch?

Thanks Andrew

Please post a link to the actual MCUFRIEND 2.4" touch LCD shield Especially the printed legends on the pcb. e.g. where does it say LCD_D2 ?

DuinoTech just looks like a regular Uno. Have you tested whether the 3.3V pin works?


Hi David,

Attached is photos of the board I have. next to the UNO showing what pins are what

I have it a while, but believe this is the link.

Looks like the Board may be the problem. 3.3V is 4.57V with the Shield plugged in and 3.28V just on the UNO alone.

Your photos show the regular pinout. Most of the Mcufriend shields use 74HC245 chips which are not input voltage tolerant. Hence the 3.3V output gets a back feed. I would expect 3.8V or 3.9V. 4.57V seems rather high.

Yes, HC245 is completely wrong but it seems to work ok. Tens of thousands of these shields have been sold. It would add $0.20 to use the correct type of 245 buffer. Hey-ho, this is unlikely to happen.

You could plug the shield into a Due or Zero. These are 3.3V logic and are fine with HC245. Or place a 1k0 resistor between 3.3V and GND. This will reduce the back-fed voltage.

There is obviously something wrong with your readeg output. Bits 7, 6 are always read as high due to the touch panel. Bits 5..0 must be floating. Hence you read the reg number and not its value(s)

I would try the Shield on a different Arduino. Inspect the soldering of the header pins and sockets.


OK Thanks

I will get hold of one and try with that.