Page 2 of 9

Re: Need sample code for ILI9488 LCD on SPI Interface

Posted: Sat Apr 22, 2017 11:07 am
by Ritesh
loboris wrote:
Ritesh wrote:Anyone has any update on this?
I have one ILI9488 based LCD Display module and will test it this weekend or early next week...
Have you checked ILI9488 based LCD using SPI Master Example? Let me know once you check and get success into it.

Re: Need sample code for ILI9488 LCD on SPI Interface

Posted: Sat Apr 22, 2017 8:31 pm
by loboris
Ritesh wrote:Have you checked ILI9488 based LCD using SPI Master Example? Let me know once you check and get success into it.
I'm working on it, but I don't have much free time at the moment.
Apart from different init sequence, ILI9488 require 3 byte per color pixel...
You can look at some Arduino library and try to port it yourself. Good example is https://github.com/jaretburkett/ILI9488.
When I finish it, it will be available on my GitGub repository https://github.com/loboris/ESP32_SPI_MA ... MA_EXAMPLE
Please be patient.
Ritesh wrote:I have also checked SPI Clock which is not getting proper after running above example as set 500 KHz, 1 MHz, 10 MHz.
ILI9341 can work with spi clock up to 40MHz (tested for 8h working without errors). I'll test ILI9488 max speed and report it here.

Re: Need sample code for ILI9488 LCD on SPI Interface

Posted: Mon Apr 24, 2017 12:52 am
by Ritesh
loboris wrote:
Ritesh wrote:Have you checked ILI9488 based LCD using SPI Master Example? Let me know once you check and get success into it.
I'm working on it, but I don't have much free time at the moment.
Apart from different init sequence, ILI9488 require 3 byte per color pixel...
You can look at some Arduino library and try to port it yourself. Good example is https://github.com/jaretburkett/ILI9488.
When I finish it, it will be available on my GitGub repository https://github.com/loboris/ESP32_SPI_MA ... MA_EXAMPLE
Please be patient.
Ritesh wrote:I have also checked SPI Clock which is not getting proper after running above example as set 500 KHz, 1 MHz, 10 MHz.
ILI9341 can work with spi clock up to 40MHz (tested for 8h working without errors). I'll test ILI9488 max speed and report it here.
Thanks for quick reply..

I think it will support up to 80 MHz.correct?

Also what should be proper SPI mode. It's mode 0 or other?

Also, I will first try with other board to verify that LCD is working properly or not.

Let me know if you find any update for ILI9488

Re: Need sample code for ILI9488 LCD on SPI Interface

Posted: Tue Apr 25, 2017 10:26 am
by Ritesh
loboris wrote:
Ritesh wrote:Have you checked ILI9488 based LCD using SPI Master Example? Let me know once you check and get success into it.
I'm working on it, but I don't have much free time at the moment.
Apart from different init sequence, ILI9488 require 3 byte per color pixel...
You can look at some Arduino library and try to port it yourself. Good example is https://github.com/jaretburkett/ILI9488.
When I finish it, it will be available on my GitGub repository https://github.com/loboris/ESP32_SPI_MA ... MA_EXAMPLE
Please be patient.
Ritesh wrote:I have also checked SPI Clock which is not getting proper after running above example as set 500 KHz, 1 MHz, 10 MHz.
ILI9341 can work with spi clock up to 40MHz (tested for 8h working without errors). I'll test ILI9488 max speed and report it here.
Have you checked on ILI9488 LCD with your Non DMA example?

Also, you have checked into ILI9341 LCD using 4 Wire SPI Interface. correct?

Re: Need sample code for ILI9488 LCD on SPI Interface

Posted: Tue Apr 25, 2017 5:07 pm
by Ritesh
Hi loboris,

I have checked your SPI non DMA source code into ILI9488 LCD into ESP32 but not got any success yet.

We just observed initial some colored lines over LCD while LCD was going to initialize. But, After that there is no any effect over LCD.

I have checked using SPI Master example and effect remains same. Also, checked all MISO lines over CLI which are work fine without any issue.

We have also tried with different Arduino code but still not getting any success yet. We are using 4 wire LCD SPI interface.

Let me know if any idea or clue for this non working stuffs which we are facing now.

Re: Need sample code for ILI9488 LCD on SPI Interface

Posted: Tue Apr 25, 2017 7:05 pm
by loboris
I've had ILI9488 working on STM32F4. Still no time to check it on ESP32.
Basically, all you have to do is make shure the initialization sequence is correct (always include soft reset (0x01) as the first command + delay 100 ms) and replace in every function which sends 16-bit color (RGB565) with 3-byte color (RGB 6-6-6).
I'll try to test it this week.
Have you checked https://github.com/jaretburkett/ILI9488, it's a good starting point.

Re: Need sample code for ILI9488 LCD on SPI Interface

Posted: Wed Apr 26, 2017 1:58 am
by Ritesh
loboris wrote:I've had ILI9488 working on STM32F4. Still no time to check it on ESP32.
Basically, all you have to do is make shure the initialization sequence is correct (always include soft reset (0x01) as the first command + delay 100 ms) and replace in every function which sends 16-bit color (RGB565) with 3-byte color (RGB 6-6-6).
I'll try to test it this week.
Have you checked https://github.com/jaretburkett/ILI9488, it's a good starting point.
Can you please share code example for STM32F4?

So, That we have also STM32 boards and will check LCD with that.

Please share code example ASAP

Re: Need sample code for ILI9488 LCD on SPI Interface

Posted: Wed Apr 26, 2017 3:39 pm
by loboris
@Ritesh

I have tested ILI9488 based display (http://www.buydisplay.com/default/lcd-3 ... kout-board) with ESP32 (SparkFun ESP32 Thing) and it is working with my non-dma spi driver.
GitHub repository is updated with fully working example for ILI9488.
Works with spi clocks up to 40MHz.
Read from display RAM doesn not work at the moment, I'll check it later

Please check at https://github.com/loboris/ESP32_SPI_MA ... MA_EXAMPLE.

Image

Re: Need sample code for ILI9488 LCD on SPI Interface

Posted: Thu Apr 27, 2017 8:11 am
by Ritesh
loboris wrote:@Ritesh

I have tested ILI9488 based display (http://www.buydisplay.com/default/lcd-3 ... kout-board) with ESP32 (SparkFun ESP32 Thing) and it is working with my non-dma spi driver.
GitHub repository is updated with fully working example for ILI9488.
Works with spi clocks up to 40MHz.
Read from display RAM doesn not work at the moment, I'll check it later

Please check at https://github.com/loboris/ESP32_SPI_MA ... MA_EXAMPLE.

Image
Thanks for update into NODMA driver.

I have checked your driver with some modifications like SPI Pin configurations and its working fine without any issue. But, Right Now, Some boxes, random colored window, patterned color patterned and few other window are coming after running that example,

So, As you told that " display RAM" is not working. so does it related to speed point of view. Also, I have checked Arduino based ILI9488 example in which it seems to be faster even in 8 MHz SPI clock because ESP32 is running on 240 MHz and maximum SPI clock supported is 40 MHz.

So, that is my concern regarding your NoDMA driver as you told that it is 10 times faster than actual spi_master driver.

Please find following output which i got after executing your example.
-------------
Disp clock = 6.15 MHz (requested: 6.00)
Lines = 2089 ms (320 lines of 480 pixels)
Pixels = 4974 ms (480x320)
Cls = 704 ms (480x320)
-------------
-------------
Disp clock = 8.00 MHz (requested: 8.00)
Lines = 1948 ms (320 lines of 480 pixels)
Pixels = 4096 ms (480x320)
Cls = 563 ms (480x320)
-------------
-------------
Disp clock = 16.00 MHz (requested: 16.00)
Lines = 1712 ms (320 lines of 480 pixels)
Pixels = 2633 ms (480x320)
Cls = 331 ms (480x320)
-------------
-------------
Disp clock = 20.00 MHz (requested: 20.00)
Lines = 1665 ms (320 lines of 480 pixels)
Pixels = 2337 ms (480x320)
Cls = 284 ms (480x320)
-------------
-------------
Disp clock = 26.67 MHz (requested: 24.00)
Lines = 1618 ms (320 lines of 480 pixels)
Pixels = 2053 ms (480x320)
Cls = 237 ms (480x320)
-------------
-------------
Disp clock = 40.00 MHz (requested: 40.00)
Lines = 1571 ms (320 lines of 480 pixels)
Pixels = 1757 ms (480x320)
Cls = 191 ms (480x320)
-------------
Also, is there any plan to display words and digits on LCD in your examples?

Let me know once you update your example. Again thanks for your support.

Re: Need sample code for ILI9488 LCD on SPI Interface

Posted: Thu Apr 27, 2017 9:42 am
by loboris
To clear the screen you have to send 320*480*3*8 = 3686400 bits to the display.
At 40 MHz spi clock (1 bit time is 25 ns) the theoretical minimum time is 92.16 ms.
With some optimization I've got 160 ms for clear screen function, I don't think you can get much faster clear screen with any driver on any microcontroller.

Code: Select all

-------------
 Disp clock = 40.00 MHz (requested: 40.00)
      Lines =  1574  ms (320 lines of 480 pixels)
     Pixels =  1757  ms (480x320)
        Cls =   160  ms (480x320)
-------------
Some optimization can still be made for other functions.
In pixel writing functions color values are converted from 16-bit RGB565 to 24-bit values, which take some time. If you use 3-byte RGB color values as a base for display functions, write time can be improved.

I have the complete set of optimized graphics functions (drawing, fonts, images etc) implemented as part of Lua-RTOS-ESP32 project.
Look at https://github.com/loboris/Lua-RTOS-ESP ... les/screen.
Video: https://www.youtube.com/watch?v=esOO3fN1xDw
You can easily extract needed functions to use in any project. If I find some time, I'll make it independent library to use with esp-idf.

Reading from display RAM does not work on my display (returns all zeroes).
You can check if it is working on yours by setting #define DISPLAY_READ 1 in spi_master_demo.c.
You can also uncomment the lines

Code: Select all

		/*
		for (int i=25; i<48; i+=3) {
			printf("[%02x,%02x,%02x] ",rbuf[i],rbuf[i+1],rbuf[i+2]);
		}
		printf("\r\n");
		*/
in disp_spi_read_data function in tftfunc.c to get first 16 color values read printed on screen.