Colour TFT and Touch Screen Support

Status
Not open for further replies.

jomac

Member
Appologies if some of the answers to my questions have been posted elsewhere, but ive been unable to find them.

Weve been working on a project which is a controller for an amateur radio transceiver. The heart of the unit is an Arduino DUE, colour TFT with touch screen. The graphics are pretty simple, touch buttons and data on the screen.

The DUE is a little big really for what we want, and wondered if this project could be ported over to the Teensy 3.1, what support is there for colour touch TFT's available?

ANy other comments and/or idea's would be very welcome.

John
 
wondered if this project could be ported over to the Teensy 3.1, what support is there for colour touch TFT's available?

Adafruit's 1.8 and 2.2 inch TFTs work. There's a Teensy3-optimized library for the 1.8 inch one (probably much better than what you'll get with Due). I'm planning to optimize their 2.2 inch library soon. It uses Arduino's SPI library which is not terribly slow, but not as fast as native code.

The UTFT library has been ported with Teensy3 optimization for 8 and 16 bit wide I/O. Use the copy from here on the forum or the one that comes with the Teensyduino installer. (I sent hardware to the UTFT author.... he's planning to publish the Teensy3 support soon). If you need *really* fast updates, a TFT that is supported by the UTFT library would be best, but it is a lot more wires to connect. I've been told UTOUCH also works, but I haven't tried it myself.

The u8glib library was also recently ported, but I have not personally tested it yet.
 
Thank you for the reply Headroom, i looked at the link you gave, and thats not an issue, or a problem at all. All of the things mentioned are available and open source as we intend to share this project.

A little background on this, the DUE with colour touch TFT is being used as a graphical front end for a radio project, initially a radio called the BITX which has a large worldwide following (4000+ members on a handful of forums) There are a small group of us working on this and we currently have this working in a very VERY BETA form, weve concentrated on getting the hardware controlled and not the 'pretty' front end as yet. Ive not updated the site in over 10 days and the software has moved on a lot since original postings, im hoping to bring this up to date in the next couple of days or so, with code, pictures and video's of whats been done.

Although a DUE was used, principally because of cost and availability at the time, the DUE is a little large, and ive never been a really great fan of Arduino's. more of a 'PIC' man myself. The Teensy 3.1 i like, because it can be programmed using compilers i understand, and its a cute small device which i believe has a big future as an embedded MCU within many homebrew projects.

Currently, its hoped to develop a Teensy version of what we are doing with the DUE, and eventually replace the DUE with the Teensy if we can match what the DUE does with the TFT.

The link to the project is here www.jomac.asia under amateur radio, but as of posting this, its yet to be updated.

John
 
Currently Paul, we use both UTFT and the Utouch libraries, i will look into this and get back to you.

J
 
I am assuming THIS is the thread you are referring to ?
Very interesting project including all sorts of analog magic!

I have no personal experience with connecting displays to the Teensy, however, most external devices such as displays, sensors etc. use one or more standard interfaces that most modern microprocessors offer. SPI, I2C, UART etc.
Most libraries that are associated with a specific piece of hardware wrap a higher level abstraction or API around that.

I'd believe that libraries that work on a Due if they don't work out of the box already should be relatively easy to port to the Teensy.
For some of the Arduino/Atmel specific libraries that is not the case, however Paul has done a stellar job to provide a compatibility layer to even get a lot of that out of the way.

Also if you don't like the Arduino IDE for developing software, there are several real IDE alternatives, unless you want to go the rather painful make file path. The Arduino Eclipse IDE for example provides a very nice full featured IDE while it still allows to use the Arduino and Teensyduino libraries.
 
Probably a bit overkill for what you want to achieve, but THIS was just posted.
The Gameduino2 features a TFT touch screen.
 
Here is a small circuit board I made for testing the UTFT library with Teensy 3.1.

http://www.oshpark.com/shared_projects/oAan5qEo

OSH Park takes a couple weeks, but if you can wait for the PCB (and spend $13.40), it's a lot easier to solder than 40 wires. I built that PCB here and I can confirm it does work.

If you're in a hurry, of course you can just connect all those wires the normal way.


Here's the old thread where the UTFT library was discussed.

http://forum.pjrc.com/threads/18002-Teensy-3-0-driving-an-SSD1289-with-utft/page3

The latest Teensyduino installer has this Teensy-compatible copy of UTFT. When you run the installer to get Teensy support in your copy of Arduino 1.0.5, just make sure you check UTFT on the page with the list of optional libraries to install.

Pin connection info can be found in the example, from File > Examples > UTFT > Teensy3 > UTFT_Demo_320x240

Since it's the same UTFT library, everything you've done already on Arduino Due should automatically work on Teensy 3.1.

Here's the connection info you'll find in that example:

Code:
// For 8 bit mode, these connections are required
//  LCD    Teensy3
//  ---    -------
//  DB8       2
//  DB9      14
//  DB10      7
//  DB11      8
//  DB12      6
//  DB13     20
//  DB14     21
//  DB15      5

// For 16 bit mode, these connections are *also* required
//  LCD    Teensy3
//  ---    -------
//  DB0      16
//  DB1      17
//  DB2      19
//  DB3      18
//  DB4       0
//  DB5       1
//  DB6      32  (bottom side)
//  DB7      25  (bottom side)

// These 4 signals can connect to any unused digital pins
#define RS  23
#define WR  22
#define CS  3
#define RST 4

UTFT myGLCD(ITDB28, RS, WR, CS, RST);  // Remember to change the model parameter to suit your display module!
 
Last edited:
Status
Not open for further replies.
Back
Top