[SOLVED] TFT 3,2" - SSD1298 - utft - blurry font

Hello,
I'm a total newbie in Arduino conception. I've bought an Arduino Mega1280 with a TFT-touchscreen 3,2" on dealextreme website:

This screen has a SSD1298 controller, I though it was nearly the same than a SSD1289
I've succeeded to connect these 2 boards without any shield (3,3v on both boards)
I use the UTFT library (last version v2.01). Everything works except that I always have characters surrounded by lines (see picture),
when I draw a line, it's a stair... It seems to me like a Vsync or Hsync problem
I really don't known where I have to look further
Any help please

Thanks

TFT.JPG

Hello and welcome :slight_smile:

I can't really help but give you a link to a library for the SSD1298,

http://www.coocox.org/driver_repo/305488dd-734b-4cce-a8a4-39dcfef8cc66/html/_s_s_d1298_8c_source.html#l00383

I think the init code is quite different than the SSD1289. You will have to adapt that library for arduino, or integrate it into UTFT, shouldn't be too hard.

Some sort of pixel addressing issue - if you can get both datasheets try reading them side-by-side carefully...

Thanks MarkT,

I couldn't agree more. I've been looking the adressing methods on both datasheet (SSD1289 and SSD1298) and for me there are no differences. I've tried to change the initialisation sequence without any success. I really don't known what's messing up the adressing command. I've looking more carefully the pattern problem and I've discover that there are no problem with Y but well with X when setting up the position on the screen. More problems occur when I change color between pixels or lines.

so, after several hours of investigation, it was indeed an initialisation problem.
You have to replace the initialisation sequence in initlcd.h of SSD1289 folder with this one:

case SSD1289:
case SSD1289LATCHED:
LCD_Write_COM_DATA(0x00,0x0001); delay(1);
LCD_Write_COM_DATA(0x01,0x3B3F); delay(1);
LCD_Write_COM_DATA(0x02,0x0600); delay(1);
LCD_Write_COM_DATA(0x0C,0x0007); delay(1);
LCD_Write_COM_DATA(0x0D,0x0006); delay(1);
LCD_Write_COM_DATA(0x0E,0x3200); delay(1);
LCD_Write_COM_DATA(0x1E,0x00BB); delay(1);
LCD_Write_COM_DATA(0x03,0x6A64); delay(1);
LCD_Write_COM_DATA(0x0F,0x0000); delay(1);
LCD_Write_COM_DATA(0x44,0xEF00); delay(1);
LCD_Write_COM_DATA(0x45,0x0000); delay(1);
LCD_Write_COM_DATA(0x46,0x013F); delay(1);

LCD_Write_COM_DATA(0x30, 0x0000); delay(1);
LCD_Write_COM_DATA(0x31, 0x0706); delay(1);
LCD_Write_COM_DATA(0x32, 0x0206); delay(1);
LCD_Write_COM_DATA(0x33, 0x0300); delay(1);
LCD_Write_COM_DATA(0x34, 0x0002); delay(1);
LCD_Write_COM_DATA(0x35, 0x0000); delay(1);
LCD_Write_COM_DATA(0x36, 0x0707); delay(1);
LCD_Write_COM_DATA(0x37, 0x0200); delay(1);
LCD_Write_COM_DATA(0x3A, 0x0908); delay(1);
LCD_Write_COM_DATA(0x3B, 0x0F0D); delay(1);

LCD_Write_COM_DATA(0x28,0x0006); delay(1);
LCD_Write_COM_DATA(0x10,0x0000); delay(50);
LCD_Write_COM_DATA(0x11,0x6070); delay(1);
LCD_Write_COM_DATA(0x07,0x0033); delay(100);
break;

Thanks MarkT for orientate me in the wright direction

  • Sorry I didn't read correctly -

Really sorry about this, thanks both guix and MarkT