ILI9486 problem reading display memory

I have a 3.95" TFT from 3.95"/4.0" inch 320*480 ILI9488 / ST7796S TFT Color LCD Display Module Screen with Touch Panel For Arduino UNO Mega2560 8/16 Bit|LCD Modules| - AliExpress (photo attached). They sell that unit as being an ILI9488 controller but according to Mr. David_Prentice the controller is an ILI9486 compatible. I am using it forcing tft.begin(0x6814) and every thing is working well under MCUFRIND_kbv library (last version).

Now I am trying to read the display memory contents using readPixel(x,y) command but all I have as result is the value 0x2E2E for every x & y coordinates…

Does anybody have an idea about what is happening ? Thanks

The display is badly designed. It is not possible to read memory (or ID)

It would have been easy for the manufacturer to design it properly. There are existing schematics that they could have copied.
It would use the same components and cost exactly the same to manufacture.

Hey-ho. Such is life.


Wow... It is bad... So I am in a big trouble since I have already design the plastic case and everyting else using that display mechanics & dimensions... Do you know the second model from that same supplier with ST7796 controller (in theory)? Do you think it would works well ? It would be a solution since it has the same mechanics & dimensions. I could not find this ST7796 definition in the MCUFRIEND_kbv library. I am affraid the library do not support ST7796...

ST7796 is supported by MCUFRIEND_kbv

Surenoo are as mendacious as Mcufriend. Do not believe the "controller part number"

The display will work fine as write-only. Most apps never read GRAM. They read the ID as a one-off in setup().

If it is in a finished product, you know the controller when you manufacture it. So you can force the correct ID e.g. 0x7796, 0x9486, 0x6814, ...
e.g. if ID reads as 0xD3D3 assign ID to 0x7796


Ok. Thanks