david_prentice Open Smart TFT R61503 Controller

Hi David,

Here I have a 2" TFT display from ebay.
Ive been through your library trying to make it work with my uno.

Wired using 13x, series connected, 10K resistors to uno GPIOs.

3.3V - 3V3
GND - GND
GND - LED

(through series 10k)
A0 - RD
A1 - WR
A2 - RS
A3 - CS
A4 - RST
D8 - DB0
D9 - DB1
D2 - DB2
D3 - DB3
D4 - DB4
D5 - DB5
D6 - DB6
D7 - DB7

The display on this site is almost identical to mine.
riyas.org

Here is the link to the data sheet for the driver I believe I have. R61503

Following mcufriend_how_to.txt

note 10

  • Ran "diagnose_TFT_support" before and after #define USE_SPECIAL, returned tft.readID() finds: ID = 0xC000
  • Couldn't find an ID match in note 10.

note 17

  • edited shield.h - uncommented #define USE_SPECIAL
  • edited special.h - uncommented #USE_OPENSMART_SHIELD_PINOUT
  • Ran "graphic test_kbv" before and after #define USE_SPECIAL, (serial monitor gave ID = 0xC000) display remained white.

note 18

  • Ran "LCD_ID_readreg.ino" before and after #define USE_SPECIAL, returned:

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) 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 00 00 Power Control
reg(0x00D2) 00 00 00 00 00 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

Thanks in advance for your time.
Matt

First off. I prefer using proper 3.3V GPIO. But your 13 10k resistors might work ok with your 5V GPIO.

Connect your pins according to the scheme in #0.

Run LCD_ID_readreg.ino.
I would expect to see

reg(0x0000) 15 03   ID: ILI9320, ILI9325, ILI9335, ...

There is no point in doing anything unless you get a valid response.

Do you have a GitHub account?
Do you know how to Fork a project?
Or change to a different Branch?

It looks fairly simple to support R61503 in MCUFRIEND_kbv

If you get valid ID and are ok with GitHub, I will create a test_1503 Branch.
Rotations, InvertDisplay are different to regular ILI9320 style controllers.

You have regular wiring in #0. You do not need USE_SPECIAL
Do you have a 3.3V Arduino e.g. Zero or Due?
The Touch Panel on your display will prevent correct read when you have 10k series resistors.
It will also interfere with write. 10k series resistors are not much good when you have 500R between XM and XP pin.

David.