Pages: [1]   Go Down
Author Topic: Own a SSD1289 TFT display and looking for more speed? Check this out!!  (Read 325 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
God Member
*****
Karma: 10
Posts: 671
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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


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
« Last Edit: August 24, 2014, 06:32:48 am by casemod » Logged

Offline Offline
God Member
*****
Karma: 10
Posts: 671
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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.



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


« Last Edit: August 22, 2014, 12:33:11 pm by casemod » Logged

Offline Offline
Newbie
*
Karma: 1
Posts: 46
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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.

* UTFT.zip (30.52 KB - downloaded 5 times.)
« Last Edit: August 23, 2014, 09:38:26 pm by avr_fred » Logged

Offline Offline
God Member
*****
Karma: 10
Posts: 671
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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

* UTFT.rar (26.99 KB - downloaded 7 times.)
Logged

Pages: [1]   Go Up
Jump to: