Unknown TFT LCD driver

Hi friends!

I have a Chinese 2 inch 160*128 TFT LCD that has only 16/8 i80 interface. It doesn't have any datasheet or part-number. I tried to read its ID from reg 0x00 but it returns 0. So I read all registers to find driver ID, you can see the non-zero registers:

Expr Value Location Type

regs 0x20002018 uint32_t[250]
[1] 0x00000002 0x2000201C uint32_t
[5] 0x000000BB 0x2000202C uint32_t
[9] 0x000000DB 0x2000203C uint32_t
[13] 0x000000DB 0x2000204C uint32_t
[17] 0x000000DC 0x2000205C uint32_t
[23] 0x00000066 0x20002074 uint32_t
[24] 0x00000054 0x20002078 uint32_t
[25] 0x00000001 0x2000207C uint32_t
[26] 0x00000044 0x20002080 uint32_t
[27] 0x00000022 0x20002084 uint32_t
[29] 0x00000032 0x2000208C uint32_t
[30] 0x00000032 0x20002090 uint32_t
[31] 0x00000003 0x20002094 uint32_t
[34] 0x000000A4 0x200020A0 uint32_t
[35] 0x00000040 0x200020A4 uint32_t
[36] 0x0000001C 0x200020A8 uint32_t
[37] 0x00000034 0x200020AC uint32_t
[38] 0x000000A0 0x200020B0 uint32_t
[39] 0x000000B3 0x200020B4 uint32_t
[41] 0x00000088 0x200020BC uint32_t
[42] 0x00000008 0x200020C0 uint32_t
[43] 0x00000008 0x200020C4 uint32_t
[44] 0x00000038 0x200020C8 uint32_t
[45] 0x0000000F 0x200020CC uint32_t
[46] 0x00000080 0x200020D0 uint32_t
[47] 0x00000011 0x200020D4 uint32_t
[49] 0x00000006 0x200020DC uint32_t
[50] 0x00000006 0x200020E0 uint32_t
[52] 0x00000001 0x200020E8 uint32_t
[64] 0x00000070 0x20002118 uint32_t
[65] 0x00000051 0x2000211C uint32_t
[66] 0x00000036 0x20002120 uint32_t
[67] 0x00000004 0x20002124 uint32_t
[68] 0x0000003B 0x20002128 uint32_t
[69] 0x0000000E 0x2000212C uint32_t
[70] 0x00000001 0x20002130 uint32_t
[71] 0x0000001D 0x20002134 uint32_t
[72] 0x00000009 0x20002138 uint32_t
[80] 0x00000072 0x20002158 uint32_t
[81] 0x00000020 0x2000215C uint32_t
[82] 0x00000060 0x20002160 uint32_t
[83] 0x00000001 0x20002164 uint32_t
[84] 0x00000033 0x20002168 uint32_t
[85] 0x0000000E 0x2000216C uint32_t
[86] 0x00000002 0x20002170 uint32_t
[87] 0x00000073 0x20002174 uint32_t
[97] 0x00000006 0x2000219C uint32_t
[99] 0x000000D9 0x200021A4 uint32_t
[102] 0x00000049 0x200021B0 uint32_t
[103] 0x00000091 0x200021B4 uint32_t
[104] 0x00000010 0x200021B8 uint32_t
[105] 0x00000028 0x200021BC uint32_t
[106] 0x00000003 0x200021C0 uint32_t
[109] 0x0000003F 0x200021CC uint32_t
[112] 0x00000028 0x200021D8 uint32_t
[113] 0x00000010 0x200021DC uint32_t
[115] 0x00000038 0x200021E4 uint32_t
[117] 0x00000094 0x200021EC uint32_t
[118] 0x00000040 0x200021F0 uint32_t
[119] 0x00000004 0x200021F4 uint32_t
[128] 0x00000004 0x20002218 uint32_t
[132] 0x00000080 0x20002228 uint32_t
[146] 0x00000003 0x20002260 uint32_t
[147] 0x00000049 0x20002264 uint32_t
[148] 0x00000001 0x20002268 uint32_t
[158] 0x00000038 0x20002290 uint32_t

I can not found which one is ID, Do you have any idea? How can I found LCD driver with these values of registers?

Thanks!

Post a link to the actual item that you have bought e.g. Ebay sale.
Or post a clear photo of the pcb side.

If you want to report some "output" you need to paste / attach / link the program hat generated the output.

David.

Unfortunately I don't have any information or link to its manufacture. But I attached the pins of LCD.
I ran LCL_ID_readreg.ino.
When I connected IM0 to the VDD, I got this output :

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) 00 00 ID: ILI9320, ILI9325, ILI9335, ...
reg(0x0004) 04 04 04 04 Manufacturer ID
reg(0x0009) 09 09 09 09 09 Status Register
reg(0x000A) 0A 0A Get Power Mode
reg(0x000C) 0C 0C Get Pixel Format
reg(0x0061) 61 61 RDID1 HX8347-G
reg(0x0062) 62 62 RDID2 HX8347-G
reg(0x0063) 63 63 RDID3 HX8347-G
reg(0x0064) 64 64 RDID1 HX8347-A
reg(0x0065) 65 65 RDID2 HX8347-A
reg(0x0066) 66 66 RDID3 HX8347-A
reg(0x0067) 67 67 RDID Himax HX8347-A
reg(0x0070) 70 70 Panel Himax HX8347-A
reg(0x00A1) A1 A1 A1 A1 A1 RD_DDB SSD1963
reg(0x00B0) B0 B0 RGB Interface Signal Control
reg(0x00B4) B4 B4 Inversion Control
reg(0x00B6) B6 B6 B6 B6 B6 Display Control
reg(0x00B7) B7 B7 Entry Mode Set
reg(0x00BF) BF BF BF BF BF BF ILI9481, HX8357-B
reg(0x00C0) C0 C0 C0 C0 C0 C0 C0 C0 C0 Panel Control
reg(0x00C8) C8 C8 C8 C8 C8 C8 C8 C8 C8 C8 C8 C8 C8 GAMMA
reg(0x00CC) CC CC Panel Control
reg(0x00D0) D0 D0 D0 Power Control
reg(0x00D2) D2 D2 D2 D2 D2 NVM Read
reg(0x00D3) D3 D3 D3 D3 ILI9341, ILI9488
reg(0x00D4) D4 D4 D4 D4 Novatek ID
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

And when I connected it to GND, I got this output:

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

It is frustrating when I ask for a link or photo and get neither.

I have no idea where your PNG has come from. Does it have any relation to your display?

At a guess, you would connect:

GND         to GND
IM0         to GND
3V3D        to 3.3V
3V6D        to 3.3V  (or 5V via a 100R series resistor)
M_D8..M_D15 to LCD_D0..LCD_D7
RST_OUT     to LCD_RESET
WE          to LCD_WR
CS_LCD      to LCD_CS
M_A1        to LCD_RS
OE          to LCD_RD

Run LCD_ID_readreg sketch on a proper 3.3V Arduino.
Copy-paste the Serial Terminal

If you get garbage, you can try:

M_D0..M_D7  to LCD_D0..LCD_D7

Quite honestly, if your display is 128x160 it seems a lot of wires for a tiny display. It is so much simpler with SPI.

There are 132x162 controllers from every maker. Many work like a ST7735S. It is a bit of a struggle identifying them. MIPI-style e.g. ST7735 have an ID in reg(0x0004). ILI9320-style have an ID in reg(0x0000)

I repeat. If I make the effort to read and reply to your questions, it is only fair that you make an effort to provide a link or photo.

David.

Hi
Take some photos to your lcd, on front, on rear on pcb, on pinhead, on flexwire, etc, and upload here

Sometimes there a reference in the flexwire, other times if you un-stick carefully lcd from pcb shield, on rear of this there an reference.

Post more information.