Go Down

Topic: Own a SSD1289 TFT display and looking for more speed? Check this out!! (Read 519 times) previous topic - next topic

casemod

Just as I was preparing to port my code to mbed I've come across this:

http://www.youtube.com/watch?v=vcBGjGpcyEg
http://gizmogarage.net

The implementation removes unnecessary stuff from the library, so only the SSD1289 Driver is present.
This is good for ITDB32S and TFT320_QVT panels. Most functions are coded in assembler, and it runs faster than in the video (It was clocked at only 10Mhz)!

I downloaded the file and made the required changes to work on an arduino mega with the TFT above and adapter shield Elecfreaks "TFT LCD Mega Shield v2.2". Pinout must be similar to other shields and can be found on the attached pdf below "UTFT_Requirements", Arduino Mega/Due Shield (Note: this code does not work in the Due).

Now I will see if I can modify it to drive the display in 8 bits as well.

The code uses  some low level functions, not exactly the same as UTFT. There is an example attached, along with the complete library.

Note: Check post #3 for the code

casemod

Further updates;

I made some additional changes, so code working with the original UTFT library *should* now be compatible.
Check the attached example, the includes before setup must be present on your sketch.

Here's also a demonstration.
http://www.youtube.com/watch?v=wUh0S3tlHOQ


The Real speed without delays:


  • Standard UTFT on Arduino Mega
    21100ms


  • This version of UTFT, also on Arduino Mega
    9900ms (80% of the time spent on the random dots, otherwise comparable (actually faster) to the due)


  • UTFT on arduino DUE (ARM version)
    4100ms





avr_fred

I wanted to see it for myself so I did some timing tests using the standard UTFT demo code. I removed the random 10,000 pixel draw routine and just focused on the graphics calls. My results are similar to the OP's.

On a 16mhz standard Mega, with UTFT version 2.76, the test code ran in 10361 ms.

The identical test code with the SSD1289 speed ups ran in 843 ms.

Demo code attached. Unzip as a library, you'll need to remove any previous versions of UTFT since due to the naming conflict. Tested on 1.5.6-r2.  Mega + ElecFreaks2.2 + 3.2"TFT w/SSD1289

Casemod: Would you post your latest version? I'd like to see it run on a Due! Thank you for your efforts.

casemod


I wanted to see it for myself so I did some timing tests using the standard UTFT demo code. I removed the random 10,000 pixel draw routine and just focused on the graphics calls. My results are similar to the OP's.

On a 16mhz standard Mega, with UTFT version 2.76, the test code ran in 10361 ms.

The identical test code with the SSD1289 speed ups ran in 843 ms.

Demo code attached. Unzip as a library, you'll need to remove any previous versions of UTFT since due to the naming conflict. Tested on 1.5.6-r2.  Mega + ElecFreaks2.2 + 3.2"TFT w/SSD1289

Casemod: Would you post your latest version? I'd like to see it run on a Due! Thank you for your efforts.


Thanks for mentioning, I forgot to update the latest version. Surprised you got the first code working.

The above wont run on a due, it makes low level calls to the hardware (8bit AVR), currently configured to run on a Mega.

Code below

vile

Hi,

this is really interesting! I am using a DUE with a 7 inch touch tft with the SSD1963.
What do I have to do if I wanted to adapt your optimized library? Or what should I do with the UTFT library to increase speed?

I looked through your files in the library, but I don't understand that much...

I hope you can give some advice :)

Vile

Go Up