Skip to main content
Minor fixes
Source Link
Greenonline
  • 3.1k
  • 7
  • 34
  • 48

I think something is wrong with this LCD board. This is because in my case the display works sometimes perfectly with the ILI9481 driver but after some times somthing hangessometimes something hangs and startthe display starts to flickeringflicker. It looks like a chip charging problem. Anyway I solved the problem with flickering problem by tuning the ILI9488 registers. Simply you have to change the initlcd.hinitlcd.h for ili9481ILI9481 driver in UTFT library.

enter code here

case ILI9481:


LCD_Write_COM(0x11);
delay(70);

LCD_Write_COM(0x38);//Idle Mode OFF
LCD_Write_COM(0x13);//Normal mode

LCD_Write_COM(0x36); // Memory Access Control  crucial
LCD_Write_DATA(0x0A);



LCD_Write_COM(0x55);
LCD_Write_DATA(0x22);//High enhancment of CE ratio



LCD_Write_COM(0xB1);
LCD_Write_DATA(0x70);
LCD_Write_DATA(0x10);

LCD_Write_COM(0xB4);
LCD_Write_DATA(0x10);

LCD_Write_COM(0xB5);
LCD_Write_DATA(0x00);
LCD_Write_DATA(0x12);

LCD_Write_COM(0xB6);        // Display Function Control
LCD_Write_DATA(0x00);
LCD_Write_DATA(0x21);       // 0x42 = Rotate display 180 deg.
LCD_Write_DATA(0x3B);


LCD_Write_COM(0xC0);
LCD_Write_DATA(0x1F);//0X1F
LCD_Write_DATA(0x01);//0X10

LCD_Write_COM(0xC1);
LCD_Write_DATA(0x00);
LCD_Write_DATA(0x10);

LCD_Write_COM(0xC2);
LCD_Write_DATA(0x00);//0X44 lower better
LCD_Write_COM(0xC4);
LCD_Write_DATA(0x00);//0X10

LCD_Write_COM(0xC5);
LCD_Write_DATA(0x00);//0X10
LCD_Write_DATA(0x80);//optimum
LCD_Write_DATA(0x80);//0X10


LCD_Write_COM(0x3A);//Interface Pixel Format
LCD_Write_DATA(0x55);

LCD_Write_COM(0x2A);//Column Address Set
LCD_Write_DATA(0x00);
LCD_Write_DATA(0x00);
LCD_Write_DATA(0x01);
LCD_Write_DATA(0xDF);//320

LCD_Write_COM(0x2B);//Page Address Set
LCD_Write_DATA(0x00);
LCD_Write_DATA(0x00);
LCD_Write_DATA(0x01);
LCD_Write_DATA(0x3F);//480


delay(60);

LCD_Write_COM(0x29);//Display ON
delay(30);

LCD_Write_COM(0x2C);//Memory Write
delay(30);
break;

I think something is wrong with this LCD board. This is because in my case the display works sometimes perfectly with ILI9481 driver but after some times somthing hanges and start to flickering. It looks like chip charging problem. Anyway I solved the problem with flickering by tuning ILI9488 registers. Simply you have to change the initlcd.h for ili9481 driver in UTFT library.

enter code here

case ILI9481:


LCD_Write_COM(0x11);
delay(70);

LCD_Write_COM(0x38);//Idle Mode OFF
LCD_Write_COM(0x13);//Normal mode

LCD_Write_COM(0x36); // Memory Access Control  crucial
LCD_Write_DATA(0x0A);



LCD_Write_COM(0x55);
LCD_Write_DATA(0x22);//High enhancment of CE ratio



LCD_Write_COM(0xB1);
LCD_Write_DATA(0x70);
LCD_Write_DATA(0x10);

LCD_Write_COM(0xB4);
LCD_Write_DATA(0x10);

LCD_Write_COM(0xB5);
LCD_Write_DATA(0x00);
LCD_Write_DATA(0x12);

LCD_Write_COM(0xB6);        // Display Function Control
LCD_Write_DATA(0x00);
LCD_Write_DATA(0x21);       // 0x42 = Rotate display 180 deg.
LCD_Write_DATA(0x3B);


LCD_Write_COM(0xC0);
LCD_Write_DATA(0x1F);//0X1F
LCD_Write_DATA(0x01);//0X10

LCD_Write_COM(0xC1);
LCD_Write_DATA(0x00);
LCD_Write_DATA(0x10);

LCD_Write_COM(0xC2);
LCD_Write_DATA(0x00);//0X44 lower better
LCD_Write_COM(0xC4);
LCD_Write_DATA(0x00);//0X10

LCD_Write_COM(0xC5);
LCD_Write_DATA(0x00);//0X10
LCD_Write_DATA(0x80);//optimum
LCD_Write_DATA(0x80);//0X10


LCD_Write_COM(0x3A);//Interface Pixel Format
LCD_Write_DATA(0x55);

LCD_Write_COM(0x2A);//Column Address Set
LCD_Write_DATA(0x00);
LCD_Write_DATA(0x00);
LCD_Write_DATA(0x01);
LCD_Write_DATA(0xDF);//320

LCD_Write_COM(0x2B);//Page Address Set
LCD_Write_DATA(0x00);
LCD_Write_DATA(0x00);
LCD_Write_DATA(0x01);
LCD_Write_DATA(0x3F);//480


delay(60);

LCD_Write_COM(0x29);//Display ON
delay(30);

LCD_Write_COM(0x2C);//Memory Write
delay(30);
break;

I think something is wrong with this LCD board. This is because in my case the display works sometimes perfectly with the ILI9481 driver but sometimes something hangs and the display starts to flicker. It looks like a chip charging problem. Anyway I solved the flickering problem by tuning the ILI9488 registers. Simply you have to change the initlcd.h for ILI9481 driver in UTFT library.

enter code here

case ILI9481:


LCD_Write_COM(0x11);
delay(70);

LCD_Write_COM(0x38);//Idle Mode OFF
LCD_Write_COM(0x13);//Normal mode

LCD_Write_COM(0x36); // Memory Access Control  crucial
LCD_Write_DATA(0x0A);



LCD_Write_COM(0x55);
LCD_Write_DATA(0x22);//High enhancment of CE ratio



LCD_Write_COM(0xB1);
LCD_Write_DATA(0x70);
LCD_Write_DATA(0x10);

LCD_Write_COM(0xB4);
LCD_Write_DATA(0x10);

LCD_Write_COM(0xB5);
LCD_Write_DATA(0x00);
LCD_Write_DATA(0x12);

LCD_Write_COM(0xB6);        // Display Function Control
LCD_Write_DATA(0x00);
LCD_Write_DATA(0x21);       // 0x42 = Rotate display 180 deg.
LCD_Write_DATA(0x3B);


LCD_Write_COM(0xC0);
LCD_Write_DATA(0x1F);//0X1F
LCD_Write_DATA(0x01);//0X10

LCD_Write_COM(0xC1);
LCD_Write_DATA(0x00);
LCD_Write_DATA(0x10);

LCD_Write_COM(0xC2);
LCD_Write_DATA(0x00);//0X44 lower better
LCD_Write_COM(0xC4);
LCD_Write_DATA(0x00);//0X10

LCD_Write_COM(0xC5);
LCD_Write_DATA(0x00);//0X10
LCD_Write_DATA(0x80);//optimum
LCD_Write_DATA(0x80);//0X10


LCD_Write_COM(0x3A);//Interface Pixel Format
LCD_Write_DATA(0x55);

LCD_Write_COM(0x2A);//Column Address Set
LCD_Write_DATA(0x00);
LCD_Write_DATA(0x00);
LCD_Write_DATA(0x01);
LCD_Write_DATA(0xDF);//320

LCD_Write_COM(0x2B);//Page Address Set
LCD_Write_DATA(0x00);
LCD_Write_DATA(0x00);
LCD_Write_DATA(0x01);
LCD_Write_DATA(0x3F);//480


delay(60);

LCD_Write_COM(0x29);//Display ON
delay(30);

LCD_Write_COM(0x2C);//Memory Write
delay(30);
break;
added 337 characters in body
Source Link
Dan
  • 11
  • 2

I think something is wrong with this LCD board. This is because in my case the display works sometimes perfectly with ILI9481 driver but after some times somthing hanges and start to flickering. It looks like chip charging problem. Anyway I solved the problem with flickering by tuning ILI9488 registers. Simply you have to change the ili9481 init fileinitlcd.

case ILI9481:

LCD_Write_COM(0x11); delay(70);

LCD_Write_COM(0x38);//Idle Mode OFF LCD_Write_COM(0x13);//Normal mode

LCD_Write_COM(0x36); // Memory Access Control crucial LCD_Write_DATA(0x0A);

LCD_Write_COM(0x55); LCD_Write_DATA(0x22);//High enhancment of CE ratio

LCD_Write_COM(0xB1); LCD_Write_DATA(0x70); LCD_Write_DATA(0x10);

LCD_Write_COM(0xB4); LCD_Write_DATA(0x10);

LCD_Write_COM(0xB5); LCD_Write_DATA(0x00); LCD_Write_DATA(0x12);

LCD_Write_COM(0xB6); // Display Function Control LCD_Write_DATA(0x00); LCD_Write_DATA(0x21); // 0x42 = Rotate display 180 degh for ili9481 driver in UTFT library. LCD_Write_DATA(0x3B);

LCD_Write_COM(0xC0); LCD_Write_DATA(0x1F);//0X1F LCD_Write_DATA(0x01);//0X10

LCD_Write_COM(0xC1); LCD_Write_DATA(0x00); LCD_Write_DATA(0x10);

LCD_Write_COM(0xC2); LCD_Write_DATA(0x00);//0X44 lower better LCD_Write_COM(0xC4); LCD_Write_DATA(0x00);//0X10

LCD_Write_COM(0xC5); LCD_Write_DATA(0x00);//0X10 LCD_Write_DATA(0x80);//optimum LCD_Write_DATA(0x80);//0X10

LCD_Write_COM(0x3A);//Interface Pixel Format LCD_Write_DATA(0x55);

LCD_Write_COM(0x2A);//Column Address Set LCD_Write_DATA(0x00); LCD_Write_DATA(0x00); LCD_Write_DATA(0x01); LCD_Write_DATA(0xDF);//320

LCD_Write_COM(0x2B);//Page Address Set LCD_Write_DATA(0x00); LCD_Write_DATA(0x00); LCD_Write_DATA(0x01); LCD_Write_DATA(0x3F);//480

delay(60);

LCD_Write_COM(0x29);//Display ON delay(30);

LCD_Write_COM(0x2C);//Memory Write delay(30); break;

enter code here

case ILI9481:


LCD_Write_COM(0x11);
delay(70);

LCD_Write_COM(0x38);//Idle Mode OFF
LCD_Write_COM(0x13);//Normal mode

LCD_Write_COM(0x36); // Memory Access Control  crucial
LCD_Write_DATA(0x0A);



LCD_Write_COM(0x55);
LCD_Write_DATA(0x22);//High enhancment of CE ratio



LCD_Write_COM(0xB1);
LCD_Write_DATA(0x70);
LCD_Write_DATA(0x10);

LCD_Write_COM(0xB4);
LCD_Write_DATA(0x10);

LCD_Write_COM(0xB5);
LCD_Write_DATA(0x00);
LCD_Write_DATA(0x12);

LCD_Write_COM(0xB6);        // Display Function Control
LCD_Write_DATA(0x00);
LCD_Write_DATA(0x21);       // 0x42 = Rotate display 180 deg.
LCD_Write_DATA(0x3B);


LCD_Write_COM(0xC0);
LCD_Write_DATA(0x1F);//0X1F
LCD_Write_DATA(0x01);//0X10

LCD_Write_COM(0xC1);
LCD_Write_DATA(0x00);
LCD_Write_DATA(0x10);

LCD_Write_COM(0xC2);
LCD_Write_DATA(0x00);//0X44 lower better
LCD_Write_COM(0xC4);
LCD_Write_DATA(0x00);//0X10

LCD_Write_COM(0xC5);
LCD_Write_DATA(0x00);//0X10
LCD_Write_DATA(0x80);//optimum
LCD_Write_DATA(0x80);//0X10


LCD_Write_COM(0x3A);//Interface Pixel Format
LCD_Write_DATA(0x55);

LCD_Write_COM(0x2A);//Column Address Set
LCD_Write_DATA(0x00);
LCD_Write_DATA(0x00);
LCD_Write_DATA(0x01);
LCD_Write_DATA(0xDF);//320

LCD_Write_COM(0x2B);//Page Address Set
LCD_Write_DATA(0x00);
LCD_Write_DATA(0x00);
LCD_Write_DATA(0x01);
LCD_Write_DATA(0x3F);//480


delay(60);

LCD_Write_COM(0x29);//Display ON
delay(30);

LCD_Write_COM(0x2C);//Memory Write
delay(30);
break;

I think something is wrong with this LCD board. This is because in my case the display works sometimes perfectly with ILI9481 driver but after some times somthing hanges and start to flickering. It looks like chip charging problem. Anyway I solved the problem with flickering by tuning ILI9488 registers. Simply you have to change the ili9481 init file.

case ILI9481:

LCD_Write_COM(0x11); delay(70);

LCD_Write_COM(0x38);//Idle Mode OFF LCD_Write_COM(0x13);//Normal mode

LCD_Write_COM(0x36); // Memory Access Control crucial LCD_Write_DATA(0x0A);

LCD_Write_COM(0x55); LCD_Write_DATA(0x22);//High enhancment of CE ratio

LCD_Write_COM(0xB1); LCD_Write_DATA(0x70); LCD_Write_DATA(0x10);

LCD_Write_COM(0xB4); LCD_Write_DATA(0x10);

LCD_Write_COM(0xB5); LCD_Write_DATA(0x00); LCD_Write_DATA(0x12);

LCD_Write_COM(0xB6); // Display Function Control LCD_Write_DATA(0x00); LCD_Write_DATA(0x21); // 0x42 = Rotate display 180 deg. LCD_Write_DATA(0x3B);

LCD_Write_COM(0xC0); LCD_Write_DATA(0x1F);//0X1F LCD_Write_DATA(0x01);//0X10

LCD_Write_COM(0xC1); LCD_Write_DATA(0x00); LCD_Write_DATA(0x10);

LCD_Write_COM(0xC2); LCD_Write_DATA(0x00);//0X44 lower better LCD_Write_COM(0xC4); LCD_Write_DATA(0x00);//0X10

LCD_Write_COM(0xC5); LCD_Write_DATA(0x00);//0X10 LCD_Write_DATA(0x80);//optimum LCD_Write_DATA(0x80);//0X10

LCD_Write_COM(0x3A);//Interface Pixel Format LCD_Write_DATA(0x55);

LCD_Write_COM(0x2A);//Column Address Set LCD_Write_DATA(0x00); LCD_Write_DATA(0x00); LCD_Write_DATA(0x01); LCD_Write_DATA(0xDF);//320

LCD_Write_COM(0x2B);//Page Address Set LCD_Write_DATA(0x00); LCD_Write_DATA(0x00); LCD_Write_DATA(0x01); LCD_Write_DATA(0x3F);//480

delay(60);

LCD_Write_COM(0x29);//Display ON delay(30);

LCD_Write_COM(0x2C);//Memory Write delay(30); break;

I think something is wrong with this LCD board. This is because in my case the display works sometimes perfectly with ILI9481 driver but after some times somthing hanges and start to flickering. It looks like chip charging problem. Anyway I solved the problem with flickering by tuning ILI9488 registers. Simply you have to change the initlcd.h for ili9481 driver in UTFT library.

enter code here

case ILI9481:


LCD_Write_COM(0x11);
delay(70);

LCD_Write_COM(0x38);//Idle Mode OFF
LCD_Write_COM(0x13);//Normal mode

LCD_Write_COM(0x36); // Memory Access Control  crucial
LCD_Write_DATA(0x0A);



LCD_Write_COM(0x55);
LCD_Write_DATA(0x22);//High enhancment of CE ratio



LCD_Write_COM(0xB1);
LCD_Write_DATA(0x70);
LCD_Write_DATA(0x10);

LCD_Write_COM(0xB4);
LCD_Write_DATA(0x10);

LCD_Write_COM(0xB5);
LCD_Write_DATA(0x00);
LCD_Write_DATA(0x12);

LCD_Write_COM(0xB6);        // Display Function Control
LCD_Write_DATA(0x00);
LCD_Write_DATA(0x21);       // 0x42 = Rotate display 180 deg.
LCD_Write_DATA(0x3B);


LCD_Write_COM(0xC0);
LCD_Write_DATA(0x1F);//0X1F
LCD_Write_DATA(0x01);//0X10

LCD_Write_COM(0xC1);
LCD_Write_DATA(0x00);
LCD_Write_DATA(0x10);

LCD_Write_COM(0xC2);
LCD_Write_DATA(0x00);//0X44 lower better
LCD_Write_COM(0xC4);
LCD_Write_DATA(0x00);//0X10

LCD_Write_COM(0xC5);
LCD_Write_DATA(0x00);//0X10
LCD_Write_DATA(0x80);//optimum
LCD_Write_DATA(0x80);//0X10


LCD_Write_COM(0x3A);//Interface Pixel Format
LCD_Write_DATA(0x55);

LCD_Write_COM(0x2A);//Column Address Set
LCD_Write_DATA(0x00);
LCD_Write_DATA(0x00);
LCD_Write_DATA(0x01);
LCD_Write_DATA(0xDF);//320

LCD_Write_COM(0x2B);//Page Address Set
LCD_Write_DATA(0x00);
LCD_Write_DATA(0x00);
LCD_Write_DATA(0x01);
LCD_Write_DATA(0x3F);//480


delay(60);

LCD_Write_COM(0x29);//Display ON
delay(30);

LCD_Write_COM(0x2C);//Memory Write
delay(30);
break;
Source Link
Dan
  • 11
  • 2

I think something is wrong with this LCD board. This is because in my case the display works sometimes perfectly with ILI9481 driver but after some times somthing hanges and start to flickering. It looks like chip charging problem. Anyway I solved the problem with flickering by tuning ILI9488 registers. Simply you have to change the ili9481 init file.

case ILI9481:

LCD_Write_COM(0x11); delay(70);

LCD_Write_COM(0x38);//Idle Mode OFF LCD_Write_COM(0x13);//Normal mode

LCD_Write_COM(0x36); // Memory Access Control crucial LCD_Write_DATA(0x0A);

LCD_Write_COM(0x55); LCD_Write_DATA(0x22);//High enhancment of CE ratio

LCD_Write_COM(0xB1); LCD_Write_DATA(0x70); LCD_Write_DATA(0x10);

LCD_Write_COM(0xB4); LCD_Write_DATA(0x10);

LCD_Write_COM(0xB5); LCD_Write_DATA(0x00); LCD_Write_DATA(0x12);

LCD_Write_COM(0xB6); // Display Function Control LCD_Write_DATA(0x00); LCD_Write_DATA(0x21); // 0x42 = Rotate display 180 deg. LCD_Write_DATA(0x3B);

LCD_Write_COM(0xC0); LCD_Write_DATA(0x1F);//0X1F LCD_Write_DATA(0x01);//0X10

LCD_Write_COM(0xC1); LCD_Write_DATA(0x00); LCD_Write_DATA(0x10);

LCD_Write_COM(0xC2); LCD_Write_DATA(0x00);//0X44 lower better LCD_Write_COM(0xC4); LCD_Write_DATA(0x00);//0X10

LCD_Write_COM(0xC5); LCD_Write_DATA(0x00);//0X10 LCD_Write_DATA(0x80);//optimum LCD_Write_DATA(0x80);//0X10

LCD_Write_COM(0x3A);//Interface Pixel Format LCD_Write_DATA(0x55);

LCD_Write_COM(0x2A);//Column Address Set LCD_Write_DATA(0x00); LCD_Write_DATA(0x00); LCD_Write_DATA(0x01); LCD_Write_DATA(0xDF);//320

LCD_Write_COM(0x2B);//Page Address Set LCD_Write_DATA(0x00); LCD_Write_DATA(0x00); LCD_Write_DATA(0x01); LCD_Write_DATA(0x3F);//480

delay(60);

LCD_Write_COM(0x29);//Display ON delay(30);

LCD_Write_COM(0x2C);//Memory Write delay(30); break;