Beispiel für Hardware-Scroll auf Touch-Display mit ILI9341 gesucht

Hallo,

für eine kontinuierliche grafische Anzeige von Messwerten suche ich eine Möglichkeit, das Hardware-Scrolling des ILI9341-Ansteuer-IC zu nutzen. In den Bibliotheken bin ich nicht fündig geworden. Hier das Display:

(2,4 Zoll TFT LCD Touch Display Shield Module SPI XPT2046 240x320 Pixel ILI9341)

Grüße,
itsnotard

Google translate says :

Hi there,

For a continuous graphic display of measured values, I am looking for a way to use the hardware scrolling of the ILI9341 control IC. I didn't find anything in the libraries. Here is the display:

It is always wise to post a link to the actual display that you bought.
And to quote which library and library example sketch(es) you have tried.
Most TFT controllers can do hardware scrolling e.g. ILI9341.
but the ST7781 has a bug (if you enable the undocumented vertical scroll)

David.

Thanks for answer.

ok, here the Links:
AZDelivery 2,4 Zoll TFT LCD Touch Display Shield Module SPI XPT2046 240x320 Pixel ILI9341 5V 3,3V kompatibel mit Arduino inklusive E-Book! : Amazon.de: Computer & Zubehör

(the display on the photo)

also:
Geekcreit UNO R3 Verbesserte Version + 2.8TFT LCD Touchscreen + 2.4TFT Touchscreen Sale - Banggood Deutschland

Libraries:
Adafruit_GFX, Adafruit_TFTLCD: Examples run, but there ist no example with hardware scrolling
Adafruit_ILI9341: These examples not run.

If I knew how to send commands to the ILI9341 using the library Adafruit_TFTLCD, I would copy from Adafruit_ILI9341.

Best regards,
itsnotard

The AZDelivery link is untrue. There is no XPT2046.
The BangGood link might contain different TFT controllers.

Anyway, please install the MCUFRIEND_kbv library via the IDE Library Manager.
It will work with most TFT controllers (more than Adafruit_TFTLCD)
Please check the ID that is reported. e.g. 0x9341, 0x9340, 0x9325, ...
And it has examples that show vertical scrolling.

David.

1 Like

Cool!

It seems to work. More on success.

Best regards,
itsnotard

It works. Thank you. However, the parameters of tft.vertScroll() were a bit strange. Anyway, problem solved, thanks again.

Correction: The parameters are not strange after all. :slightly_smiling_face:

Greetings,
itsnotard

Yes, at the 2.8 inch the 0x9325 is displayed as ID. With "vertScroll()" the parameter "scrollines" seems to have no effect.

vertScroll() should work with a genuine ILI9325.

If you have a non-Ilitek "9325" it may be wise to run LCD_ID_readreg.ino from the examples.
Copy-paste the Serial output to your message.

Oh, scroll only works on the full screen with these "older" controllers.

1 Like

That's the 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) 93 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 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) 12 31 12 31 12 31 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

Yes, that is how it is. Thanks.

Ah-ha. So you can "scroll".

This is my ILI9325 readreg report:

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) 93 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 0A 00 0A 00 0A 00 0A 00 0A 00 0A 00	GAMMA
reg(0x00CC) 00 04	Panel Control
reg(0x00D0) 00 33 00	Power Control
reg(0x00D2) 00 FF 00 FF 00	NVM Read
reg(0x00D3) 00 3F 00 3F	ILI9341, ILI9488
reg(0x00D4) 00 6F 00 6F	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) 12 31 12 31 12 31	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

So I suspect that your chip is non-Ilitek. Does not matter as long as it works the same as Ilitek.

David.

That's right. :slightly_smiling_face:

Regards,
itsnotard