Flip/mirror a TFT LCD screen

Let me ask you this: if I wanted to test for this particular chip, what would I check? Is there a particular combination of register values?

Not knowing what it is and not being able to get some sort of manufacturer id (I assume), I'd like to test for it and handle it in the same build that would normally work for ST7735's.

If you are using TFT_eSPI, I will show you later.

I have an urgent appointment with the pub.


I figure it is a variation of Read_ID_bitbash...

I wondered if the following information would be of use to someone.

I am having a problem with an 'ST7735' 128*160 display in use with an ESP8266 and TFT_eSPI. When running any of the TFT_eSPI example sketches the screen image is reversed, left to right, i.e. as if viewed in a mirror.

I have read through this thread, and others, and tried all of Bodmer's "#define ST7735..." tab settings and tried editing the cases within the Rotation file. The problem persists.

The ST 7735 was purchased on Amazon. https://www.amazon.co.uk/AZDelivery-Display-Pixels-Arduino-Raspberry/dp/B078J5TS2G

When I run Bodmer's diagnostic I get this:-

TFT driver register values:

Register 0x01: 0x00 Register 0x04: 0x00 Register 0x09: 0xFFFFFFFF Register 0x0A: 0x00 Register 0x0B: 0xFF Register 0x0C: 0x00 Register 0x0D: 0xFF Register 0x0E: 0x00 Register 0x0F: 0xFF Register 0x2E: 0x00 Register 0x3F: 0xFFFFFFFF Register 0xDA: 0x00 Register 0xDB: 0xFF

Register 0xDC: 0x00

Looks like driver chip is: Unknown

The screen does display sketches correctly when configured with the Adafruit's GFX and ST7735 libraries. However, I would prefer to make use of Bodmer's libraries and associated fonts.

From here on I don't know how to progress this screen working correctly with TFT_eSPI.

Regards Simon

Every Silicon manufacturer seems to have a 132x162 controller "like ST7735" Some of them even return the ST7735 values for registers 0xDA, DB, DC

It is easy enough to alter the mirroring. Write to MADCTL (36h) register.

However it is possible that there is a Manufacturer register that will XOR the panel bits. e.g. SDOCTR (B7h) or GDOCTR (B8h) on a NT39103

Incidentally, the Amazon advert boasts about a document and example programs.


David, you must be, at times, the most vague forum replier I have come across.

When someone says "it's easy" but doesn't include the details as to how to accomplish this supposedly "easy" thing.... It stays perplexing for the people looking for solutions. I know this doesn't add to the solution, but It grinds me to see replies like that. I have a similar problem and would most likely pick BrownJd's brain before I did anyone else...

I have the T10 v2.0 esp32 with st7735 like tft... My solution runs mirrored... I'll find a solution

I have the T10 v2.0 esp32 with st7735 like tft... My solution runs mirrored... I'll find a solution

Please post links to the actual hardware that you have bought. e.g. Ebay sale page(s).

Quoting an official Arduino board "by name" is fine. Any display or processor board that is "custom" needs to be identified by real photos e.g. link to sale page. If you make links clickable you get far better response. e.g. readers on Tablet, phone, ...

From TFT_eSPI examples: run examples/320x240/Read_ID_bitbash Copy-paste the Serial Terminal to your message. e.g. like #16 and #23

David, you must be, at times, the most vague forum replier I have come across.

Different punters have different technical knowledge and requirements. e.g. run an unknown display normally. e.g. intentionally run a known display mirrored

Some punters just want to know how to use TFT_eSPI library: 1. run Read_ID_bitbash for 128x128 or 128x160 displays. 2. select the appropriate defines in your User_Setup e.g. ST7735_DRIVER, ST7735_BLACKTAB

Others want to understand the hardware. e.g. set manufacturer Panel register, set appropriate rotation bits in user MADCTL register.