MCUFRIEND 2.4" TFT Screen on Arduino Nano -Solid White Display

I notice that this is the second recent post on this type of display, that isn't a good sign!

I recently purchased one of these displays (I mostly chose it because it was cheap and more easily available where I live than the adafruit ones, which I would have to wait a few weeks for).

The exact display I purchased is this one:

2.4" Arduino Compatible TFT Screen

I am using an arduino nano on a breadboard, so I simply wired it up that way, instead of placing it as a shield.

I wired it up correctly, checked and double checked my wiring, and installed a few test sketches to figure out what driver I was using. It reported back that I was using "0x9341", which matches what is printed on the back.

I ran every sketch and library, and every combination thereof, and I still get a blank white screen. Currently, I am just running a very simple sketch to set the entire screen to one colour.

But, here is the interesting part. If I take the 3.3v cable from where it is plugged in on the screen (next to the 5V cable) and plug it in right next to that, on a jumper that is supposed to be empty, and then HOLD the reset button, the display works. Perfectly. Sometimes I need to fiddle with the wires a bit, but this is consistently reproducible.

My first thought was, obviously, a loose wire, but I checked and rechecked everything, I even rewired it with another arduino nano and tried that, but got the same results.

So, I am guessing, I am missing some kind of resistor divider? Or I am supplying a low voltage somewhere where it is meant to be high, or vice versa? I am guessing this is not a software issue, if I am getting the right code from the screen, and I am seeing the correct colour on the screen.

Any ideas?

That's a 3v3 display? - which will not work as expected in a 5V system.
Reduce to 3..4V (cell-phone battery)

The exact display I purchased is this one:

2.4" Arduino Compatible TFT Screen

I am using an arduino nano on a breadboard, so I simply wired it up that way, instead of placing it as a shield.

The Ebay listing shows a photo of the pcb and describes the controller as SPFD5408. I have never come across a real SPFD5408. That pcb photo does not mention ILI9341. These "listings" are seldom accurate.

Please could you describe exactly what you have got in your hands. i.e. compare it with the Ebay photo.

@knut_ny,
These shields contain level-shifters and should work perfectly with a UNO board. They will work with Arduino-compatible boards from any source. e.g. many ARM Cortex Evaluation boards.

@JackStone,
I suggest that you plug the Shield into a regular UNO or clone. The current Adafruit libraries should work with both UNO or MEGA2560.. Of course, it should also work with a breadboarded Nano but you will have to rely on the quality of 20 individual jumper wires.

In simple terms. The Adafruit software should identify the controller. The current official Adafruit library supports ILI9341. There are several other controllers on these boards that are only supported by hacked <Adafruit_TFTLCD.h> libraries. (e.g. the one that you are using)

I would like to buy one of these shields with a ILI9341 controller. When did you buy your shield?
I have ordered one from DealExtreme that shows a photo with ILI9341 legend on the pcb. I will not know exactly which controller is installed until the board arrives. I have 0% confidence in any advertisements / descriptions from most companies.

David.

Hello,

The ebay photo matches mine exactly, except mine actually has "9341" written on it in brackets after "2.4" tftlcd shield". 9341 also matches what I'm getting from the libraries that I have run.

The position of the chips, and the general look of the product is exactly the same as the ebay photo.

I can well believe that the description isn't fully accurate, and I did expect to have to fiddle with this a bit to get it to work. It is described in the listing as being 5V tolerant though, so at least that shouldn't be an issue, should it?

I don't actually have an UNO, I only have two nano's and a Due. I guess I could try it with the due...

The software does successfully identify the controller, it just doesn't seem to make use of it properly?

I've tried the official adafruit drivers, in addition to many others, I will have another try, and see if I can make it work.

I bought this... maybe a week or so ago? Less?

Maybe when you get yours you might figure out where I'm going wrong.

Yes, it is very important to mention a white printed (9341) on the pcb legend. Some pcbs may have a black rubber stamp for the controller type.

As far as I can see, the official <Adafruit_TFTLCD.h> dated nov 2014 on GitHub supports both ILI9341 and DUE.

I do not have my parallel 9341 shield yet. I do not own a DUE. But I would have 99.9% confidence in Adafruit software.

I believe you are using a hacked library. It may or may not be as well tested as the official Adafruit.

The Shield should work fine with the DUE.
I suggest that you buy a UNO clone. They are very cheap. Multiple wires from a NANO do not sound very reliable.

David.

Hello,

Yes, I should have mentioned that sooner, I thought it was on the picture on the ebay listing.
I have tried the latest Adafruit libraries, and the serial monitor output is as expected, it picks up the correct driver, and runs all of the tests, but I don't see anything...

I have ordered an Adafruit LCD display, I think that will end up being more reliable, if I can't get this one to work.

I know that using wire from a breadboard isn't ideal, but it shouldn't be a major issue. The adafruit boards support being used in this way.

Just plug the shield into the DUE. The example TFT sketches should all work straight out of the box.
The disk examples will need you to check how the Due uses #10, 11, 12, 13.

I have a M0_PRO. This defaults to SPI on the 3x2 header. I altered my core to use SPI on 10, 11, 12, 13. So any of my sketches just compile out of the box. Whether they use disk or not. Mind you, I have not got the Touch screen working on the M0 Pro yet.

David.

David,
the Adafruit library doesn't work with my TFT shield with ILI9325, altough ILI9325 is supported. I had to change few lines in the initial setup following the library modified by buhosoft.

I think there is a basic problem with "official" and "hacked". I am as guilty as anyone else. i.e. I hacked Adafruit_TFTLCD to support extra controllers several years ago. Most of the hacked versions give little explanation of what has been changed or by whom.

I have several ILI9325 boards of different types. The Adafruit code works on all of them. Other libraries are not always successful. It basically comes down to the initialisation settings for the Power control registers.

Note that Adafruit has two options for the 8-bit data bus. i.e. Shield or Breakout. Obviously you select shield for the Mcufriend shields because they use the same pins as the Adafruit shield.

David.

Hi,

I didn't actually know that shields for the UNO could be used with the Due, (provided they are designed for 3.3V), thanks for that information!

Unfortunately, connecting the display to the Due didn't work either. I tried commenting/uncommenting the #Define USE_ADAFRUIT_SHIELD_PINOUT, but I got the same white screen as before.

This time, it didn't even pick up on the LCD Driver, it said "Unknown LCD driver chip" (I tried hardcoding that, still no luck).

Could this be just a faulty display?

have you tried this library?

http://www.moleandroid.com/arduino-tutorial-2-how-to-setup-mcufriend-2-4-lcd-tft-libraries-and-avoid-white-screen/

this is the only one that worked for me and tried 6 of them. There are still issues though with paint app - looks like my x/y axes are inversed but the graphics tests worked properly.

My 9341 looks like yours on a picture

Hello,

I just tried it there, and unfortunately got the same results! This is bizarre! It didn't even pick up the LCD Driver with those libraries! Thanks a lot though!

Of course, it should also work with a breadboarded Nano but you will have to rely on the quality of 20 individual jumper wires.

david_prentice

It does work with Nano. No issues. However, I would like to use the A4 (and A5) pin for I2C sensors and therefore I attached the LCD pin to A6 on Nano...does not work...white screen. Can you please guide david_prentice

Thanks

A6 on a Nano is an Analog pin. You can only use it for input.

If you have a modern controller like ILI9341, you can snip off the A4 pin from the Shield and solder a 10k pull-up resistor to the top of the snipped A4.

This subject (I2C) has been discussed several times.

David.

Great. 10k pull-up resistor works like a charm.

I do have ILI9341 controller which has a SD card socket. Do your library also work for it?

Thanks,
Babar