I’ve been looking for a way to add a touchscreen UI to my projects. To this end, I purchased a UCTronics 3.2″ TFT LCD Arduino Shield. Most of the cheap TFT touchscreens that I found need about 38 pins, and therefore, need to interface with an Arduino Mega. What makes this UCTronics shield unique is that it uses an onboard latch to convert the onboard SSD1289 TFT driver data bus from 16-bits to 8-bits. This allows it to connect to an Arduino Duemilanove or UNO. The board I received is a RevB board, and it looks somewhat different from the board pictured in the UCTronics product description. The resistive touch panel on top of the TFT very similar to the touch panel used in the Nintendo DS. Below is the board running UTFT’s demo:
Here is a bottom view of the shield:
At right is the integrated micro SD card reader, which is handy for storing bitmap data to load into the screen.
Below is the UTouch button demo sketch:
I was able to operate the buttons by pressing firmly with my fingers.
At first, I was disappointed by the bitmap display. This is the output of the UTFT_Read_BMP demo sketch supplied by UCTronics:
I modified UCTronic’s modified UTFT library to display .raw files generated by UTFT’s ImageConverter 565, and got this output:
It actually looks a lot better than the photo above. The photo contains screening and moire patterns that you don’t see with the naked eye. To create a RAW file, first create a 240×320 pixel jpg,png, or GIF file. Run in through either imageconverter565.exe or the online ImageConverter 565 make sure to select Convert to .raw file and Target Platform Arduino (AVR).
Below is my dispRaw() function for displaying .raw files:
void UTFT::dispRaw(File inFile)
int i,j = 0;
for(i = 0; i < 320; i++)
for(j = 0; j < 240; j++)
VL = inFile.read();
VH = inFile.read();
It takes about 6 seconds to load a fullscreen RAW file. I’m not sure if the bottleneck is the SD or the display itself. Clearing the screen takes almost 1 second. The speed is acceptable when running UTFT_Demo_240x320. This is board is no speed demon, but the speed seems adequate for implementing a graphic touchscreen control panel. If you need a fast display, look elsewhere.