ILI9341 TFT not recognized - Adafruit not working

This is the display i am trying to get working. But i t just refuses.
Tried every code on google page 1. Reinstalled arduino (and libs) multiple times.
Tried on different boards.

Nothing. Whitescreen.

The Screen is 5V Compatible. Using a Nano atm, wired like here:
(ILI9341 TFT Touch Screen - ProjectPages)

CONNECTOR NANO PIN
SDO(MISO) 12
LED VCC
SCK 13
SDI(MOSI) 11
D/C 9
RESET 8
CS 10
GND GND
VCC VCC

My code is (shortened):

#include "SPI.h"
#include "Adafruit_GFX.h"
#include "Adafruit_ILI9341.h"
 
// For the Adafruit shield, these are the default.
#define TFT_RST 8
#define TFT_DC 9
#define TFT_CS 10
 
// Use hardware SPI (on Uno, #13, #12, #11) and the above for CS/DC
Adafruit_ILI9341 tft = Adafruit_ILI9341(TFT_CS, TFT_DC, TFT_RST);
// If using the breakout, change pins as desired
//Adafruit_ILI9341 tft = Adafruit_ILI9341(TFT_CS, TFT_DC, TFT_MOSI, TFT_CLK, TFT_RST, TFT_MISO);


void setup() {
  Serial.begin(9600);
  Serial.println("ILI9341 Test!"); 
 
  tft.begin();

  // read diagnostics (optional but can help debug problems)
  uint8_t x = tft.readcommand8(ILI9341_RDMODE);
  Serial.print("Display Power Mode: 0x"); Serial.println(x, HEX);
  x = tft.readcommand8(ILI9341_RDMADCTL);
  Serial.print("MADCTL Mode: 0x"); Serial.println(x, HEX);
  x = tft.readcommand8(ILI9341_RDPIXFMT);
  Serial.print("Pixel Format: 0x"); Serial.println(x, HEX);
  x = tft.readcommand8(ILI9341_RDIMGFMT);
  Serial.print("Image Format: 0x"); Serial.println(x, HEX);
  x = tft.readcommand8(ILI9341_RDSELFDIAG);
  Serial.print("Self Diagnostic: 0x"); Serial.println(x, HEX); 
  
  Serial.println(F("Benchmark                Time (microseconds)"));
  delay(10);
  Serial.print(F("Screen fill              "));
  Serial.println(testFillScreen());
  delay(500);

[...]

  Serial.println(F("Done!"));

}


void loop(void) {
  for(uint8_t rotation=0; rotation<4; rotation++) {
    tft.setRotation(rotation);
    testText();
    delay(1000);
  }
}

unsigned long testFillScreen() {
  unsigned long start = micros();
  tft.fillScreen(ILI9341_BLACK);
  yield();
  tft.fillScreen(ILI9341_RED);
  yield();
  tft.fillScreen(ILI9341_GREEN);
  yield();
  tft.fillScreen(ILI9341_BLUE);
  yield();
  tft.fillScreen(ILI9341_BLACK);
  yield();
  return micros() - start;
}
[...]


unsigned long testFilledRoundRects() {
  unsigned long start;
  int           i, i2,
                cx = tft.width()  / 2 - 1,
                cy = tft.height() / 2 - 1;

  tft.fillScreen(ILI9341_BLACK);
  start = micros();
  for(i=min(tft.width(), tft.height()); i>20; i-=6) {
    i2 = i / 2;
    tft.fillRoundRect(cx-i2, cy-i2, i, i, i/8, tft.color565(0, i, 0));
    yield();
  }

  return micros() - start;
}

Which just returns:

ILI9341 Test!
Display Power Mode: 0x0
MADCTL Mode: 0x0
Pixel Format: 0x0
Image Format: 0x0
Self Diagnostic: 0x0

So basically nothing.

Any advice what i could try?
Maybe this is a library compatibility error?

Tried different versions of Adafruit GFX, i am using the most recent of any libraries at the moment.
Is there some Adafruit alternative?

I am much too close to hit that damn thing now

From your Tutorial link:

For this project I used a 2.4" 240 x 320 TFT Touch screen with SD Card holder the I got on Ebay from this seller for £2.99. The first phase of the is project is to try out the colour display. I used a 3.3V 8MHz Arduino Pro Mini to drive the display - also sourced very cheaply on Ebay. I chose this board because, although the seller of this display claims that it will work at both 5v and 3.3v, the majority of these display will not. So, rather than have to use level shifters of resistor dividers, I made the whole project run at 3.3v.

Follow his advice. i.e. 3.3V Pro Mini, 3.3V Zero, 3.3V Due, 3.3V BluePill, ...

If you are determined to use a 5V Nano, you will have to invest in level-shifters.

That particular Red ILI9341 SPI board must always have 3.3V logic signals. But you can "power" the display with 5V because there is an onboard voltage regulator.

From your BangGood link:

5V compatible, use with 3.3V or 5V logic

Ebay sellers will claim anything. Some are ignorant. Others deliberately LIE.
BangGood are not ignorant.

Personally, I do not understand this "business model". If you advertise goods accurately, you get many happy customers.

David.

1 Like

Dear David,

Thank you with all my heart.
I already was where nobody ever was before: page 2 on Google.
Tried everything codewise but i'd never have expected that the screen is NOT 5 V compatible if it says so I'm the fucking insert.
But this explains it - sad that it took me like 5 hours to find out.

Could you tell me where you found the information?
And even more interesting: can you explain me (electronicwhise) why the screen does not recognize 5v but 3,3? I'd understand it the other way around (say high is U>4V) but not this way. Or did i just destroy the screen already with my 5v logic?