prenticedavid / MCUFRIEND_kbv

MCUFRIEND_kbv Library for Uno 2.4, 2.8, 3.5, 3.6, 3.95 inch mcufriend Shields
Other
364 stars 181 forks source link

LCD ID 1325 Not Supported #39

Closed DidymusRex closed 6 years ago

DidymusRex commented 6 years ago

Diagnose whether this controller is supported There are FAQs in extras/mcufriend_how_to.txt

tft.readID() finds: ID = 0x1325

This ID is not supported look up ID in extras/mcufriend_how_to.txt you may need to edit MCUFRIEND_kbv.cpp to enable support for this ID e.g. #define SUPPORT_8347D

New controllers appear on Ebay often If your ID is not supported run LCD_ID_readreg.ino from examples/ Copy-Paste the output from the Serial Terminal to a message in Displays topic on Arduino Forum or to Issues on GitHub

========================================================= 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) 13 25 ID: ILI9320, ILI9325, ILI9335, ... reg(0x0004) 00 00 00 00 Manufacturer ID reg(0x0009) 00 00 00 00 00 Status Register reg(0x000A) 00 00 Get Power Mode reg(0x000C) 00 00 Get Pixel Format reg(0x0061) 00 00 RDID1 HX8347-G reg(0x0062) 00 00 RDID2 HX8347-G reg(0x0063) 00 00 RDID3 HX8347-G reg(0x0064) 00 00 RDID1 HX8347-A reg(0x0065) 00 00 RDID2 HX8347-A reg(0x0066) 00 00 RDID3 HX8347-A reg(0x0067) 00 00 RDID Himax HX8347-A reg(0x0070) 00 00 Panel Himax HX8347-A reg(0x00A1) 00 00 00 00 00 RD_DDB SSD1963 reg(0x00B0) 00 00 RGB Interface Signal Control reg(0x00B4) 00 00 Inversion Control reg(0x00B6) 00 00 00 00 00 Display Control reg(0x00B7) 00 00 Entry Mode Set reg(0x00BF) 00 00 00 00 00 00 ILI9481, HX8357-B reg(0x00C0) 00 00 00 00 00 00 00 00 00 Panel Control reg(0x00C8) 00 00 00 00 00 00 00 00 00 00 00 00 00 GAMMA reg(0x00CC) 00 00 Panel Control reg(0x00D0) 00 10 00 Power Control reg(0x00D2) 06 00 06 00 06 NVM Read reg(0x00D3) 00 00 00 00 ILI9341, ILI9488 reg(0x00D4) 00 00 00 00 Novatek ID reg(0x00DA) 00 00 RDID1 reg(0x00DB) 00 00 RDID2 reg(0x00DC) 00 00 RDID3 reg(0x00E0) 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 GAMMA-P reg(0x00E1) 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 GAMMA-N reg(0x00EF) 00 00 00 00 00 00 ILI9327 reg(0x00F2) 00 00 00 00 00 00 00 00 00 00 00 00 Adjust Control 2 reg(0x00F6) 00 00 00 00 Interface Control

I can supply a sample board if needed for troubleshooting

DidymusRex commented 6 years ago

img_20180307_201556417

Image for above logged issue

prenticedavid commented 6 years ago

It looks like an ILI9325 with a bad connection to LCD_D7 i.e. bit#7 always reads as 0

Try forcingtft.begin(0x9325); Bit#7 might write ok even if it does not read correctly.

The first step is to plug the shield into the Uno. You would be amazed by how many people buy a shield and then connect with unreliable flying wires.

David.

jsweet13 commented 6 years ago

This is the same display I have too, got it to work with 9325 driver, but also freed up the lcd_rd pin for a USB Host Shield to use and also developed a custom font to print to the screen mapping out pixels backwards to get chars to show up correctly. I'm sure there's a bit you can set to flip horizontal/vertical orientation but it was fun figuring out the x,y grid.

prenticedavid commented 6 years ago

It is not uncommon for LCD_D7 or LCD_D6 to read "high" because the Touch panel often shares either D6, D7 or D0, D1 Since LCD_D7 is reading "low", I suspect there is some unusual wiring. Run the Diagnose_TouchPins or the Beta TouchScreen_Calibr_native sketch.

It is simple enough to change the pixel mapping for a custom Panel. I can show you how to print a font at 0, 90, 180, 270 degrees in hardware.

Regular test is drawn by the GFX class in software rather than using the hardware.

David.