I'm not yet sure what it is but I'm thinking that it might have something to do with the frame buffer settings re "set_address_mode command 0x36"

This is the relevant section:

In the library this is the relevant section of code:

The standard setting is 0x03 or 0x22 ??

Now looking at the data sheet I should be setting (as far as I can see)

bit 5=0 (horizontal)bit 6=0bit 7=1

This is based on being the horizontal opposite of 0x03 BUT it doesn't work and remains the same. I was convinced that making the changes wasn't working and it was reading from somewhere else but I "//"d the 'screen on' command and the screen stayed off so it is the right file and SHOULD be working.....

I've tried commenting the two lines out completely but it isn't doing anything whatsoever!!!

All these LCD drivers have a bit to control gate-scan direction and a bit to control source-scan direction,check the datasheet for where these are in the registers. Don't change the RAM addressing unless youwant to switch landscape <-> portrait - if I remember correctly.

Again if I remember rightly the usual set up is that the RAM addressing bit simply transposes X and Y, whichmeans a reflection about a diagonal. There are 8 combinations of these 3 bits giving access to everyrotation and refection sense. Rotating by 90 degrees involves changing the RAM addressing and oneof the other reflection bits.

[ I will NOT respond to personal messages, I WILL delete them, use the forum please ]

NOTHING happens no matter what I change the value to, in fact if I comment out the line it makes no difference.

Address mode only changes the behaviour on sending multiple pixels - IIRC the UTFT library sets up boundingrectangle before drawing lines / blocks and then sends the right number of pixels - the bounding rect ensuresall the pixels end up in the right place whatever scan-direction is used.

The gate-scan and source-scan bits are what you need to find.

[ I will NOT respond to personal messages, I WILL delete them, use the forum please ]

Well after doing some more research it appears that left/right direction is controlled by a pin on the LCD i/o bus.

On the actual LCD this pin is pin39 "L<>R" and this pin is connected directly to pin36 of the SSD1963 "GPIO0"

So it would appear that setting the value of GPIO0 to the opposite value that it currently is will reverse it.......

According to the specifications of the SSD1963 there are 4 commands that are to do with the GPIO and these are:

0xB8 = set_gpio_conf = Set the GPIO configuration. If the GPIO is not used for LCD, set the direction. Otherwise, they are toggled with LCD signals.0xB9 = get_gpio_conf = Get the current GPIO configuration0xBA = set_gpio_value = Set GPIO value for GPIO configured as output0xBB = get_gpio_status = Read current GPIO status. If the individual GPIO was configured as input, the value is the status of the corresponding pin. Otherwise, it is the programmed value.

0xB9 is used to read the port so that is irrelevant BUT 0xBB also appears to be to read the status....

0xB8 is used to set the port up BUT the IO code doesn't actually call this. I have tried messing with the 0xBA & 0xBB commands above but nothing seems to change. This is probably because of the lack of a command to actually set the port up.

SO......

It would appear that to fix the issue we need to set the direction of the GPIO port to OUTPUT & set the GPIO0 port to HIGH or LOW (not sure which one yet but if one doesn't work the other should!)

I have been speaking with the creator of the UTFT library Henning Karisen and it would appear that when I download the latest version from his site I am getting an old version, in fact a very old version. We cannot work out why this is happening but we only realised this when I sent him back a copy of the UTFT.cpp file which was 3 times the size of the current one. Henning was good enough to send me the latest version and I installed this just changing the TFT type......

Straight away the entire example program works flawlessly and it appeared a little quicker too.

So if it isn't working for you too then maybe it is an internet issue NOT a problem with the library itself.

If you think that this might apply to you then the latest version should have THIS as the last line of the version file...

2.01 05 Feb 2013 - fixed a bug that only shows up on linux-based systems

EDIT: I had placed the new library files into the library directory but didn't realise that the IDE was still using the modified CTE files I was using. When I removed all traces of UTFT, Utouch etc and replaced them with the ones from Henning it was no longer working. I have still not yet managed to get it to work so back to modified CTE files for the moment.

If you are then download the UTFT_DUE folder from CTE (http://www.ebay.com/itm/7-7-0-inch-TFT-LCD-module-Font-IC-800x480-SSD1963-arduino-DUE-MEGA2560-3-5-4-3-/111008432389?) and modify it as follows:

Make sure you are running IDE 1.52

Copy UTFT_DUE (the download) into your library folder.

Open file UTFT.cpp and modify it as per above ie delete line 1822 (#ifndef DISABLE_SSD1963_800) -1902 (#endif) {this is the first instance of the init routine} then replace what are now lines 2174 (case SSD1963_800_3:) to 2261 (break:) with the lines shown above.

Restart Arduino IDE.

Load example program CTE_70inch_800x480

In the function loop() delete everything from the start of the function up to but not including "int buf[798];"

Run it

It SHOULD now work.....

Note: There is a line " myGLCD.Swtich_LCD_TB_Bit(1); " which reverses the screen horizontally. Some of the example include it and some do not include it !! So, now that the UTFT demo works try the others BUT if any are backwards just add the above line straight after the first clear screen.

Henning's library is VERY tidy and looks really good. I am STILL trying to get it to work but I appear to have an unsupported 7" screen so at the moment I'm stuck with the CTE version. If I get Henning's latest one to work I will give step by step instructions as I have above.

DanyHdez

I followed all your instructions for my own sample code... I only drew a rectangle, a circle, and a line of text.In my code, I begin by clearing the screen, followed by this command: myGLCD.Swtich_LCD_TB_Bit(0);

If I ommited it, then my text was mirrored horizontally.

Thank you for your help, the CTE UTFT libraries now work with my 7" SSD1963 display. Looking forward to trying the 5 " model.I will be watching your work with the Henning's library too.

I have been speaking with the creator of the UTFT library Henning Karisen and it would appear that when I download the latest version from his site I am getting an old version, in fact a very old version. We cannot work out why this is happening but we only realised this when I sent him back a copy of the UTFT.cpp file which was 3 times the size of the current one.

Your browser is caching the old one? flush the caches and try again.

[ I will NOT respond to personal messages, I WILL delete them, use the forum please ]