Using a 3.97inch bits module with an Arduino MEGA?

Good Morning All,

I recently acquired a 3.97 TFT module (800x480).
This exact model: 3.97inch 16BIT Module OTM8009A SKU:MRB3971 - LCD wiki
I thought this was a "MEGA Shield" but realized too late my mistake.

So I am aware that if I am going to make it work, I will need to to the wiring myself.
Have have taken good note as, per a post from ZinggJM, that the screen needs +5v VCC but the data lines are 3.3v

Reading through various posts (mostly from ZinggJM & david_prentice) I have seen that people have managed to make the screen work but using a STM32). I would like to make it work with a MEGA.

That being the case, I have two questions:
/1/ Does one of the libraries support this screen (either the MCUFriends library or the GxTFT library). Some posts and ".h" files leave me to believe that there is some support but may be not for an Arduino (only an STM2?).
/2/ If the libraries can be made to work with an Arduino MEGA I am not sure how to sort out the wiring. Reading the code of one of the library I could see where the CD, RST,... pins would map but I could not see the mapping for the various data lines (the 16 data lines).

So any assistance/guidance on how to make my screen talk to an Arduino mega will be greatly appreciated.

Why would anyone want to use a 34-pin 3.3V display with a 5V MEGA2560 ?

There are 40-pin Adapter Shields for popular 40-pin displays.
I have never seen a 34-pin Adapter Shield but a recent Thread showed a package that had 34-pin screen + 34-pin Adapter Shield.

So someone, somewhere must make the 34-pin Adapter Shield.

If someone can find this 34-pin Adapter I might buy the OTM8009A display.
I have no intention of wiring a 16-bit display by hand to a 3.3V board.
I certainly don't want to wire up 21 channels of level shifters just for a MEGA2560.



I remember that I used one of the two different OTM8009A displays with an Arduino Due.
I am not sure if this was a combination I used with bit-bashing and a long tail connector with some bent pins.

Your 3.97inch 16BIT Module OTM8009A SKU:MRB3971 doesn't look the same as any of my TFTs.

The driver code of my 2 TFTs is considerably different. OTM8009A has many configuration registers.
So you might need to change at least the initialization code to use yours with GxTFT.

I am busy with several things, so I can't give you much assistance, sorry.
But thanks to your link I might consider to order that same display, to play with later.


Hi David,

Many thanks for the fast answer.

Why would anyone want to use a 34-pin 3.3V display with a 5V MEGA2560 ?
"Want" may not be the right term here.... I have ended up here (my mistake)

Any way, you are right it is easy to see 40 pins adaptors but 34 pins are few and far between.
I have found one supplier: TFT LCD Expansion Board Adapter 34pins V3.0 3.2" 4.3" 5.0" Shield Mega 2560



If you were to look for that same panel, I found it here:


"OTM8009a" (28 Results) searched on AliExpress.

I am a bit confused. I thought LCDWiki is somehow related with Surenoo, as it supports TFTs from Surenoo stores,
but the search results are more related to Ruijia Industries / Maithoga / Ecyberspaces shop.
e.g. maithoga IPS 3.97 inch 34P 16.7M HD TFT LCD Screen with Adapter Board (Touch/No Touch) OTM8009A Drive IC 480(RGB)*800

I have business cards from the same sales person with combinations of these three names.
And I got the driver code for OTM8009A from them.


I have received the 2 displays I have ordered through the above link.

But unfortunately I got the SKU:MRB3973 version which has the controller NT35510.

The web-page is not really clear about this. Maybe it is because I ordered the version with touch.
I contacted the seller, and I certainly will get an answer; this shop is trustworthy, and I have good experience with their support.

See also this post: Re: MRB3971 on NodeMcu

This is a preliminary post, intended to be extended with more info or links.

Maybe I ordered 2 with the intention to try modification, e.g. for 8 bit interface.
Maybe I should order 2 more, but without touch. Not decided yet.


This TFT with OTM8009A is no longer available; Ecyberspaces shop have updated their web-page.

I found my box with the older versions of this display with OTM8009A.
2 boards have an LDO and need 5V VCC to work, on the pins for VCC that usually are for 3.3V.
1 board has the low drop switching regulator that works with either 5V or 3.3V.
But my board is currently modified for 8bit bus, which I never got working.

I got the new TFTs with NT35510 working (with 16bit bus so far). Will be supported in the next version of GxTFT.


Hi dude,

I have bought the same 34 Taft display as you and now I am wondering how to use it.
I see you got a 34pin shield on a website.
Did you manage to make this display work or not?

If yes, could you please share the library?


Hi Pietro,

Thanks for reaching out.
You could have a look at the thread here:

To make the screen work you need an adaptor:

I have found a library that works here:

Look for the link under "Program Download". You will get a large Zip file there (4.0inch_Arduino_Mega2560_8&16BIT_Module_NT35510_800x480_MAR4018_V1.0)

If you look into it, you will find a folder with Arduino code:

That should work on a MEGA 2560.
I managed to make it work for a DUE also but the code needed a bit of changes.

Good luck!!

I nearly forgot about this display, as I used it with STM32F407V. This combination works with two of my libraries. See: