I am using the screen on my WIO Terminal as a log so I can see what happens without the Serial interface.
At the moment, to add a line at the bottom, I clear each line and re-draw the whole screen. This is a bit slow an the refresh flickers the screen (ugly).
I would use a SPRite but I have the WIFI connected so I keep running out of ram. Is there any news on when an update for this will be delivered? I am making calls to an NTP server once a day as the RTC is a little flaky. It often fails and this is why I need to log.
So is there any way to MOVE the contents of the screen UP by N pixels. This would allow me to just draw the bottom line.
We have written an Arduino Library for Wio Terminal that allows you to display text and numbers on the Wio Terminal LCD just like you would display on the serial monitor of the Arduino IDE. So by using this, you could scroll text and numbers vertically on the LCD.
Please download and install the following library first:
It allows you to:
Print numbers and strings
Set the screen orientation
Set background color
Set text color
Here is an example code for your reference:
#include "grove_terminal.h" //include grove terminal library
#include "TFT_eSPI.h" //include TFT LCD library
TFT_eSPI tft; //TFT LCD initialization
grove_terminal terminal; //grove terminal initialization
void setup(){
terminal.begin(true,3); //start LCD and set screen rotation
terminal.global_foreground(TFT_BLUE); //set text color
terminal.global_background(TFT_WHITE); //set background color
}
void loop(){
terminal.println("First Row"); //print text and bring cursor to new line
delay(500); //delay between lines
terminal.println("Second Row");
delay(500);
terminal.println("Third Row");
delay(500);
}
However it does not do any more than the code I have written (except it is nicely packaged in a lib). I use tft.drawChar to print my char buffer to the screen and I am managing my back light using “lcd_backlight” package.
My code is not as generic as yours (or as nicely written) but all I want is a simple log.
What I find is a problem is that I have to draw the whole screen. What I want is to shift the screen up 1 line and just print the latest line in the space created.
I was also trying to make a point to the Seeed developers that their WIFI module reduces the usefulness of the WIO as it consumes too much memory. If I want to use a full screen sprite I need the memory.
At the moment I cant have sprites and WIFI!
I understand the attraction of RTOS but it breaks the model as it uses loads of ram that is no longer available to my code. More resources are the reason for using the SAMD51 over the ESP32…
My screen was sprite based, it looked good and was fast (no tearing). I simply imported “AtWiFi.h” and it stopped working. I had to remove the full screen sprite to save ram.
The Seeed developers seem unresponsive on these issues at the moment.
We are very sorry to say that, at the moment, the above method of clearing the lines and redrawing the whole screen seems to be the only solution, despite having the refresh flicker.
However, we are currently working on a new framework for Wi-Fi functionality, which could potentially fix the existing issues. We will keep you informed when the new Wi-Fi framework releases.
Great to hear that you are already having fun with it. We are continuing to bring support to the Wio Terminal by bringing new functionalities in the future! So stay tuned with us
I would also recommend you to have a look at the Wio Terminal Classroom video series on YouTube, if you haven’t already. It can be a good place to start with the Wio Terminal!