8 bit RM68090 driver not working on 3.2" lcd and Arduino Pro Mini

I have bought a 3.2" TFT lcd from aliexpress with a RM68090 controller.
Unfortunately my screen stays white. The ID returned is 0.
I have also tried the library from Henning Karlsen but no luck.
What is a bit strange maybe is that the data channels are denoted as DB08-DB15 instead of DB0-DB7.
There are only 8 data lines.

I would really appreciate any pointers.

The module and pinout:

Well, it appears to cost over $10 with delivery. You will need to supply at least 13 channels of level-shifter if you want to use it with a UNO.

For £10 ($15.50) you can buy a brand new UNO clone with a 2.4" TFT Shield. That has both Touch and microSD.


The uno was mentioned erroneously I use a 3.3V Pro Mini.

In which case, your troubles are over.

Just use any 8-bit ILI9341 library. e.g. the ones for mcufriend shields should work if you copy the pin-out.

Having verified that everything works ok with the shield wiring, change the data bus to D0-D7 pins and the appropriate macro in the library. Your TFT will work VERY fast and efficiently.

Life is so much simpler if you just say which Arduino you are using. Mind you, I still think that a ready-made UNO and Shield is better value.


Thanks for your input David.
Unfortunately the 9341 ID I got was hardcoded in some obscure library I found.
The actual ID returned is 0. So maybe the lcd is broken.
Or could it be caused by something else?
I cannot use a shield because I have to fit a 3.2" lcd in a small enclosure 8cm wide.

For some unknown reason, the RDID command for an ILI9341 is an "extended command". Unless you set a hardware pin, the extended commands are not accessible.

The cheap 2.2" SPI ILI9341 boards can not read their own ID. Perhaps you have not enabled the extended commands.

Incidentally, I have just downloaded the RM68090 data sheet. It is very similar to an ILI9325.

The ILI9341 registers are completely different to the RM68090 / ILI9325 ones.
The module pin-outs might vary too.
Does your module correspond to the drawings in the AliExpress link ?

I know that your eventual target might be different. But the first stage is to develop the software on a prototype. For this, you use whatever dev board or display is the most convenient.
I just measured a 3.2" diagonal screen. You will struggle to get it inside an 8cm hole with its Touch panel.


The RM68090 is indeed compatible with the ILI9325. So i have hardcoded the 9325 ID in the tft.begin line of the Adafruit lib, but no luck.
The 3.2" panel fits exactly in my enclosure with a little bit of cutting away excess plastic.
It corresponds 100% to the Aliexpress drawing. I would like to check if these panels will work on an Arduino Pro Mini before I start working on the software itself.
Isn’t there some simple generic code to check if an lcd controller is working?

The first thing is to read the ID. As I said, wire up the module to a 3.3V Pro Mini according to the mcufriend pinout. This means connecting RD, WR, DC, CS, RESET as well as the data bus. You do not need any level shifters.

I have posted sketches that will read the ID. At least you would discover whether it is a RM68090 or not.

Regarding generic TFT libraries. For a start, you need to specify the correct control and data pins. Then, having identified the controller ID, the library code is fairly universal.

Persuading people to check wiring or soldering is not easy. Most are determined to connect 5V GPIO to 3.3V electronics. They are often allergic to 100nF capacitors or external pull-up resistors.


The ID returned by the lcd_id_reader is 0.
Wiring has been checked again.
Which lines need a pullup resistor?

thanks again,


I do not believe you. Try the sketch in mcufriend 3.5 LCD TFT ILI9327 with Arduino atmega328P , Need help plz! - #36 by david_prentice - Displays - Arduino Forum

Most importantly, wire up your display correctly to the Pro Mini. e.g.

1: GND
2. 3.3V
3. 3.3V
4. CS
5. RS
6. WR
7. RD
9-16. DB8-DB15
17. GND
22-29.   BACKLIGHT via small resistor.

Nothing needs a pull-up resistor if the library controls everything. The diagnostic sketch must have RD connected to LCD_RD pin on the Pro Mini.
RD and RESET need pull-ups if you use a write-only library. e.g. UTFT

The micro-flex ribbon is very small. Do you have a push-fit receptacle or have you soldered it?

Can you post a photo?

I suspect that if AliExpress say it is RM68090 module and it looks like the photo, then that is what you have got. If it was Ebay, I would not believe anything.


Stupidly I had connected the reset to A5 instead of A4.
Now i do get the ID on the Adafruit lib: 0x6809 so i's definitely a RM68090. But still a white screen.
I hardcode 0x9325 in the init.
The pullups didn't help. The ribbon is soldered, but since i get the ID I can be sure that the module is connected correctly right?

What did my sketch report?

You have clearly got a genuine RM68090 but this test does not verify all the pins on the data bus. e.g. bits 1,2,4,7 might be stuck at 0. At least all the control pins are in working order.

The controller looks very similar to a ILI9325. So when we have seen that all the pins on the data bus are operational, you should be able to run any of the mcufriend / Adafruit style libraries except for SWTFT.

Read the ID. Report it to Serial. Use tft.begin(0x9325) in the example sketches.

There may be some slight differences in the Registers. Until you verify the data bus, there is little point in studying the data sheet closely.


For some reason adding a resistor to the backlight blew up the controller because now ID is back to 0 again.
I'll have to order a new one, so I'll report back in 2-3 weeks.
Anyway thanks for your help David

I really can't see how you can damage anything from the backlight.

You would normally connect LED-A to 3.3V and all the LED-cathodes to GND via resistors. e.g. 5 x 100R.

If you want to control the backlight current, you can switch it via a transistor. In practice, the backlight is always running if you are mains-powered.

Are your backlight LEDs working ok?
Are you sure that the read_ID sketches are not working?
Do you have good soldered joints?


The voltage is 0.1V higher without the extra current load for the backlight (3.28V to 3.38V). Maybe the extra 0.1V was too much for the controller.
It’s a long shot, but it’s the only thing I can think of. I have tested all the connections with a multimeter several times. They’re fine.

Let your display get a good night's rest. And check your wiring tomorrow.

I would guess that pin #29 GND is not connected to the backlight in any way but it might need to be connected to the other GND pins. You can see with your multimeter. Obviously you need to avoid ground current loops. i.e. keep LED currents physically separate from the logic.

For the purposes of checking the data bus, running my sketch does not need the backlight.

If the backlight is damaged, there is no point in continuing with a display that is not visible.


I have the controller ground connected to the kathode of the backlight. That can't be the problem right? How else can I power the backlight. The backlight still works btw.

I am happy to report that I managed to get the RM68090 LCD working with the Adafruit lib. (tft.begin(0x9325):wink:
The problem was the flexible printed circuit connector that was not soldered properly.
Under the magnifying glass it appeared to be fine, but underneath not all of the connects made contact.
And pressing the probe of a multimeter on a connect made them make contact so that also threw me off.
The trick is to press the connects down one by one and then heat them with the soldering iron a bit longer than you would normally do (2-3 seconds). And of course use flux.

Congratulations. I am too much of a wimp to handle the microflex by hand. I suppose that I would be happy to solder onto a factory-made pcb but not a home made one.

Anyway, does it behave exactly like an ILI9325? i.e. are the voltage generation registers the same?

The regular GRAM manipulation registers look the same.


I have attached more info on the RM68090 David.
Thanks for your help.
Next project will be an SPI lcd with a STM32F103 for more speed.

RM68090.txt (4.37 KB)