Go Down

Topic: TFT image Mirrored. Please Help (Read 6557 times) previous topic - next topic


Got 2.8 TFT, running with UTFT Library & its ILI9325D chip.

But image on TFT is like vertically mirrored(flipped) so the text is from right to left.

Any ideas how do i fix it? Can it be pins problem? any help appreciated


A display module is composed of the display controler and a display. Interconnection between the display and its controller is done by the display module maker. So, also you have  the same display and the same controller you might need a different software for each display module. Usually the controller has powerful commands to switch between different interconection modes: You need to look at the controller datasheet, look for the mirror command and change the init sequence of your library.



you can also patch the library replacing every    x   =>   wide-x    (not as trivial as it sounds :)
Rob Tillaart

Nederlandse sectie - http://arduino.cc/forum/index.php/board,77.0.html -
(Please do not PM for private consultancy)


Hey having troubles with the same display and library. Except that its just getting it to work on the MEGA. Tested it on the UNO with the code provided with the "Arduino 2.8 TFT Touch shield" which is the UTFT library. Triple checked the pins on the MEGA even probed then to make sure they weren't broken. I'm using the same shield that I used on UNO with the MEGA but it just doesn't like it. Also, I had to mod the HW_AVR.h to make sure the pins went where they were meant to.
I'm sure its something easy as I've never transferred a project from one to the other before.


Under similar conditions i found, that there is a conflict between the TFT communication and the UART communication of the UNO. Solution was to disable the UART:

Code: [Select]
UCSR0B = 0;  // disable USART 0

Expect some problems with the upload of new ino files. If you disable the USART in the setup() procedure then upload of new ino files is only possible shortly after reset.



Thanks olikraus, tried that but no luck. Just ordered some jumpers so I'm going to run it from the suggested pins PORTA instead of pins the shield fits to on the board. Which were digital pin 0 - 7. Doing it this way made it about 3 times slower anyway from 1FPS to about .33FPS. So thanks anyway :)



I have the same problem with a 7" TFT (model I082510 with SSD1963 controller).
I can use with the uTFT library succesfully, but the image is mirrored...

I dont use any shield, I just connect every pin to an Arduino MEGA.
I have a 2,4" and a 5" TFT's too, and works fine... the problem is only with this 7" TFT...

Please, any suggestion??

Thank you in advance!


TFT driver chips usually have either input pins or config register bits to set the vertical and horizontal scan directions.

For the ILI9325 its bit 8 in register 0x01 that controls source scan direction and bit 15 of register 0x60 sets the gate scan direction - the UTFT library no doubt has provision for adjusting the various scan direction bits, haven't checked though.

For the SSD1963 command 0x0B has various bits for setting the scan direction of display and RAM addressing.
[ I will NOT respond to personal messages, I WILL delete them, use the forum please ]


TFT driver chips usually have either input pins or config register bits to set the vertical and horizontal scan directions.


For the SSD1963 command 0x0B has various bits for setting the scan direction of display and RAM addressing.

There are a couple of us having issues with this IC and a TFT both with 7" TFT screens

I've looked at the data sheet and 0x0B is "Get the frame buffer to the display panel read order"

I've tried changing it by writing 0x40 or 0x80 to it but neither seems to have any affect.  Any ideas?


Please check my thread I've FIXED this issue:



I have a same problem.
I'm using an Arduino Due with 2.8 TFT shield. I created Arduino Uno to Arduino mega converter (http://blog.ozzie.web.id/?p=1014) in order to connect 2.8 TFT shield to Arduino Due, downloaded a latest UTFT lib.
Opened a demo sketch and changed an initial string to "UTFT myGLCD(ITDB28,38,39,40,41);".
When I uploaded demo sketch to my Due board I was happy to see, that all works fine. But when I disconnect Due from USB and connect it again, I was surprised: image on a screen was inverted (mirrored). Colors was inverted too...
After assaulting google I didn't find a fix for my problem. After 2 hr's of brain storming I find a solution: add delay before display initializing.

Code: [Select]

void setup()
// Setup the LCD

It help's me to fix problem.


I had the same with a ILI9844.
I spedified a R61581 (I found it is a simular driver)
And in the file  UTFT\tft_drivers\r61581\initlcd.h

where it mentioned

I changed the old value LCD_Write_DATA(0xA0);  into
(I found that value in another driver which gave an image which was to small but not morrored.

Good luck


Even if you are using the default rotation, you should still set it, this fixed the issue for me.

There's a little video demonstration here:


Hope it helps.

Go Up

Please enter a valid email to subscribe

Confirm your email address

We need to confirm your email address.
To complete the subscription, please click the link in the email we just sent you.

Thank you for subscribing!

via Egeo 16
Torino, 10131