tft.readID() returns 0, 41 or 4141

I am a complete novice at all things Arduino, so I thank you in advance for your patience with my ignorance.

I am using this Elegoo 2.8" Touch Screen. When I run graphictest.ino (attached), the command:

uint16_t identifier = tft.readID();

returns 0, 41 or 4141 at seemingly random intervals, when read by the line:

Serial.println(identifier, HEX);

These values do not appear to be valid, and I get the following message on the serial monitor:

“TFT LCD test
Using Adafruit 2.8” TFT Arduino Shield Pinout
TFT size is 240x320
Unknown LCD driver chip: 0 (or 41 or 4141)
If using the Adafruit 2.8" TFT Arduino shield, the line:
should appear in the library header (Adafruit_TFT.h).
If using the breakout board, it should NOT be #defined!
Also if using the breakout, double-check that all wiring
matches the tutorial."

I have configured Adafruit_TFTLCD.h with the line:


or the line:


But I get the same results in all cases.

I have attempted to find Adafruit_TFT.h so I can substitute it for Adafruit_TFTLCD.h to see if that solves the problem, but I have had no luck so far.

If anyone can give me some suggestions of how to troubleshoot this issue, I would appreciate your help greatly.


graphicstest.ino (10.5 KB)