open-smart tft wth driver chip 9320, anybody tried it before ?

I got this tft, here is part of the sample program it is supposed to work

#include <Adafruit_GFX.h> // Core graphics library
#include <MCUFRIEND_kbv.h>
MCUFRIEND_kbv tft;

so it has all the libraries it is supposed to work with (the program works with mcufriend screen, tested)

it looks like it has the same pins like mcufriend but I am getting only white screen

Am I missing something or it is broken.

The guy on ebay has no clue and he never tested them.

From the extras/mcufriend_how_to.txt:

19. OPEN-SMART Shields have different wiring to regular Uno Shields:
    Edit mcufriend_shield.h:  #define USE_SPECIAL
    Edit mcufriend_special.h: #define USE_OPENSMART_SHIELD_PINOUT

The RM68090 is very similar to ILI9320. It looks as if I do support it by default.

Note that Open-Smart provide a hacked version of an obsolete MCUFRIEND_kbv. I strongly recommend that you remove the directory. Then install the proper library via the Library Manager. Yes, you have to make those edits with any new library installation.


I did some editing modifications but it is mess if you use other displays and try to load again nothing works.

There are two styles of Mcufriend Shields:

Mcufriend Red Uno Shield: 2.4" 240x320, 3.5" 320x480, 3.6" 240x400, 3.95" 320x480 Mcufriend Blue/White Uno 2.8" 240x320 shields have a 9x2 CON1 footprint for an external header. Blue Uno Shield: 3.5" 320x480

Mcufriend Red Mega Shield: 3.5" 320x480 Blue Mega Shield: 3.2" 320x480

The library was designed for the Uno style shields. They "plug and go" on Uno, Mega, Zero, Due, Nucleo, ...

The Mega shields only mate with Mega or Due. They require USE_SPECIAL, USE_MEGA_16BIT_SHIELD

If you own a Mega, you will probably buy a Mega shield. (The Uno shield is pretty SLOW on a Mega) You can use regular Uno shields on Uno, Zero, Nucleo, ... at the same time as Mega shield on Mega, Due. The USE_MEGA_16BIT_SHIELD only works with Mega and Due.

There are several SPECIALs for unusual hardware. I will help you with extra SPECIALs if you verify your wiring first.

We now come to the subject of OPEN-SMART. 1. Open-Smart has different hardware wiring to Mcufriend 2. Open-Smart have never asked to use my library 3. If they asked, I would be happy to help them. 4. Open-Smart have hacked an obsolete version of my library. 5. Open-Smart examples are badly hacked.

If you enable a SPECIAL it will take preference to the regular Shield. e.g. USE_OPENSMART_SHIELD_PINOUT will override Uno, Due, Mega but regular will work on a Nucleo.

If you want to run a Open-Smart on one Uno with a Mcufriend on a second Uno, you must build the Open-Smart with USE_SPECIAL and the regular without USE_SPECIAL.

If you want to run a Open-Smart on a Uno with a Mcufriend on a Mega, it is not beyond the wit of man to create a USE_OPENSMART_SHIELD_PINOUT_ON_UNO macro.

I either get a negative response or a sycophantic response. I get very little practical feedback e.g. suggested improvements.

What exactly do you want to do?


it is nice display with temperature sensor on it, so it could be good for bunch of projects. I just got the display from ebay without knowing what I am getting exactly until I saw it. it took 2 months to arrive from China.

they gave me some libraries which I see now are hacked versions of the mcufriend, which is a big mess because they have the same names, which is confusing.

lesson learnt. looks like I will be avoiding them in future, each time you have to switch the libraries and you make bunch of mess.

this was a real frustration to get it working because I though it would run on original mcufriend, adafruit library. and I did not know what was wrong.

Upgrade to the proper MCUFRIEND_kbv library.

I either get a negative response or a sycophantic response. I get very little practical feedback e.g. suggested improvements.

What exactly do you want to do?

The hacked OPEN-SMART library means that every UNO, MEGA, DUE will only work on OPEN-SMART. They have used my class name.

I could create a "SMART_kbv" class to differentiate from the MCUFRIEND_kbv class. You would need a different constructor. So you still need to edit .

Or you could specify which SPECIAL e.g.:


If you explained what displays you want to use on what targets, we could probably reach a satisfactory solution.


I will stay with mcufrined because they work now on Nucleo too which is a big plus.

I do not know how popular the open-smart are.

I am just new and I just did not know what I was buying.

But some new open-smart library could be solution too if the displays are popular so we do not confuse it with mcufriend.

The problem is that you buy something on ebay, they have no clue what they sell and takes you for ever to find out how to make it working. I am learning now so it will be easier next time.

So you can run the Open-Smart on Uno, Mega, Due. And run regular Uno shields on Nucleos.

I presume that you are using the ST Core for the Nucleos. Roger does not approve of Nucleos. So he cripples the Maple Core.

Seriously, you would get practical help if you adopt a less secretive approach.


I tested that fixed mcufriend library for open-smart on uno and mega, it works but I will not be messing with it anymore. Except doing some project on the hardware I already have

the regular uno shield works with the new mcufrined library on nucleo

mcufriend works fine

honestly I do not know what it is (maybe ST Core) but it is some support for Nucleo boards on arduino IDE and it works fine and with the new support for mcufriend TFT it is really amazing.

Perhaps I did not hint hard enough.

Your Open-Smart should work on Uno, Mega, Due. The LM75 is a bit pointless but it does work. The microSD has shared pins with the TFT. It requires attention on a Uno (but is fixable).

Which Nucleo(s) do you have? Which regular Mcufriend Shield(s) do you have? If you have items that I do not have, I would appreciate your help.

The ILI9320 or RM68090 would be too slow for a Cortex-4 Nucleo (even if the Nucleo header sockets lined up with Open-Smart).