Screen seems to be dead

USING ARDUINO:
I have the library installed, the board manager installed also
I have selected the Seeeduino Wio Terminal as the board.
I have selected the Port (in my case 21) (Seeeduino Wio Terminal)
I open the serial monitor ok
I can write very simple programs like print etc and they run correctly, but any program trying to use the tft will hang. Here is your sample program modified with println statements to the serial console:
println statements stop after tft.init();
then the program hangs.
Please help.
Thanks

// Diagnostic test for the displayed colour order
//
// Writen by Bodmer 17/2/19 for the TFT_eSPI library:
// https://github.com/Bodmer/TFT_eSPI

#include <SPI.h>

#include <TFT_eSPI.h> // Hardware-specific library

TFT_eSPI tft = TFT_eSPI(); // Invoke custom library

void setup(void) {
Serial.begin(115200);
while(!Serial);
for(int i=0;i<10;i++)
Serial.println(i);
Serial.println(“TFT Init”);
tft.init();
Serial.println(“screen to black”);
delay(2000);
tft.fillScreen(TFT_BLACK);
delay(2000);
// Set “cursor” at top left corner of display (0,0) and select font 4
tft.setCursor(0, 0, 4);
delay(2000);
// Set the font colour to be white with a black background
tft.setTextColor(TFT_WHITE, TFT_BLACK);
delay(2000);
// We can now plot text on screen using the “print” class
tft.println(“Intialised default\n”);
tft.println(“White text”);
Serial.println(“white text”);
tft.setTextColor(TFT_RED, TFT_BLACK);
tft.println(“Red text”);

tft.setTextColor(TFT_GREEN, TFT_BLACK);
tft.println("Green text");

Serial.println(“green text”);
tft.setTextColor(TFT_BLUE, TFT_BLACK);
tft.println(“Blue text”);

delay(5000);

}

void loop() {
Serial.println(“In loop”);
tft.invertDisplay(false); // Where i is true or false

tft.fillScreen(TFT_BLACK);

tft.setCursor(0, 0, 4);

tft.setTextColor(TFT_WHITE, TFT_BLACK);
tft.println("Invert OFF\n");

tft.println("White text");

tft.setTextColor(TFT_RED, TFT_BLACK);
tft.println("Red text");

tft.setTextColor(TFT_GREEN, TFT_BLACK);
tft.println("Green text");

tft.setTextColor(TFT_BLUE, TFT_BLACK);
tft.println("Blue text");

delay(5000);


// Binary inversion of colours
tft.invertDisplay(true);   // Where i is true or false

tft.fillScreen(TFT_BLACK);

tft.setCursor(0, 0, 4);

tft.setTextColor(TFT_WHITE, TFT_BLACK);
tft.println("Invert ON\n");

tft.println("White text");

tft.setTextColor(TFT_RED, TFT_BLACK);
tft.println("Red text");

tft.setTextColor(TFT_GREEN, TFT_BLACK);
tft.println("Green text");

tft.setTextColor(TFT_BLUE, TFT_BLACK);
tft.println("Blue text");

delay(5000);

}

Hi,

Did the LCD screen light up at first when you received the Wio Terminal(the retro game)?

Yes it had the game running ok when i first received it. The next thing i did was to install micropython with your bootloader from instructions at https://www.seeedstudio.com/blog/2020/07/08/circuitpython-now-supports-native-lcd-of-wio-terminal/
the screen works in micropython ardupy
from machine import LCD

lcd = LCD() # Initialize LCD and turn the backlight
lcd.fillScreen(lcd.color.BLACK) # Fill the LCD screen with color black
lcd.setTextSize(2) # Setting font size to 2
lcd.setTextColor(lcd.color.GREEN) # Setting test color to Green
lcd.drawString(“Hello World!”, 0, 0) # Printing Hello World at (0, 0)

Okay so that hardware is good, then it should be the library issues. Please can you check what your Seeed ArduinoSAMD core version. And may be you have an old version of Seeed_Arduino_LCD somewhere?

Seeed_Arduino_LCD lib?
Your examples for wio terminal all use:
#include <TFT_eSPI.h> // Hardware-specific library
TFT_eSPI tft = TFT_eSPI(); // Invoke custom library
I checked and had a version that wasnt the latest, then updated to latest and it no longer hangs at tft.init, and using serial monitor i can see that it runs all of the code without hanging, but i cant see anything on the screen.

UF2 Bootloader v3.7.0-79-gd73dd64 SFHWRO
Model: Wio Terminal
Board-ID: SAMD51P19A-WioTerminal-v0

Okay, try do something with the screen such as tft.fillScreen(TFT_RED)?

A. Your suggestion doesnt work.
the only thing i see is the backlight.
note i have tried this with tft.begin() and tft.init() and both at the same time. i have seen both in different of your code samples. I have the latest of the TFT_eSPI library installed.

#include <TFT_eSPI.h>
TFT_eSPI tft = TFT_eSPI(); // Invoke library

void setup() {
tft.begin(); // what is this?
tft.init(); // what is this?

tft.fillScreen(TFT_RED); // Black screen fill

Serial.println(“Backlight On”);
// Turning on the LCD backlight
digitalWrite(LCD_BACKLIGHT, HIGH);
}

I also tried using code from the Arduino\libraries\TFT_eSPI\examples\320x240
none of them work.

I checked the Arduino\libraries\TFT_eSPI\User_Setup.h and it defines:

// Only define one driver, the other ones must be commented out
#define ILI9341_DRIVER

I assume that this is the correct one

Would you please send me a simple arudino sketch to do some very basic screen that you know works on your wioterminal

1 Like

I am also replying here, because I am facing the same issue.

1 Like

Can you try the circuitpython firmware here: https://wiki.seeedstudio.com/Wio-Terminal-CircuitPython/

The screen showing properly?

This one works!!! The screen is showing properly

Good to hear :smiley: that cleared the hardware problem out, so it’s more likely that your library is not correct for Arduino side.

oh, any tips, I downloaded every library that the wiki mentioned to get started with Arduino.

I can get the micropython library to work.
I can also get the arduino platformio to work.
I cannot get the arduino ide to work. my tft library and all others are up to date.
Something is missing here…

Have you used the TFT library else where before, may be you have an old verison of TFT library somewhere and Arduino IDE is compiling that instead of our latest one.

I had faced this problem.
you can clean the other TFT_eSPI package , will correct this problem.
I think Arduino IDE build chain will miss right version if multi version exist.

1 Like