Getting started with seeed round display

I want to setup seeed round display according to this wiki

but I get this error message

In file included from /Users/jw/Documents/Arduino/libraries/TFT_eSPI/TFT_eSPI.h:96,
from /Users/jw/Documents/Arduino/libraries/TFT_eSPI/TFT_eSPI.cpp:16:
/Users/jw/Documents/Arduino/libraries/TFT_eSPI/Processors/TFT_eSPI_ESP32_S3.c: In function ‘void dc_callback(spi_transaction_t*)’:
/Users/jw/Documents/Arduino/libraries/TFT_eSPI/Processors/TFT_eSPI_ESP32_S3.h:203:22: error: ‘GPIO’ was not declared in this scope
203 | #define DC_D GPIO.out_w1ts = (1 << TFT_DC)//;GPIO.out_w1ts = (1 << TFT_DC)
| ^~~~
/Users/jw/Documents/Arduino/libraries/TFT_eSPI/Processors/TFT_eSPI_ESP32_S3.c:807:28: note: in expansion of macro ‘DC_D’
807 | if ((bool)spi_tx->user) {DC_D;}
| ^~~~
/Users/jw/Documents/Arduino/libraries/TFT_eSPI/Processors/TFT_eSPI_ESP32_S3.h:202:22: error: ‘GPIO’ was not declared in this scope
202 | #define DC_C GPIO.out_w1tc = (1 << TFT_DC)//;GPIO.out_w1tc = (1 << TFT_DC)
| ^~~~
/Users/jw/Documents/Arduino/libraries/TFT_eSPI/Processors/TFT_eSPI_ESP32_S3.c:808:9: note: in expansion of macro ‘DC_C’
808 | else {DC_C;}
| ^~~~
/Users/jw/Documents/Arduino/libraries/TFT_eSPI/TFT_eSPI.cpp: In member function ‘void TFT_eSPI::begin_tft_write()’:
/Users/jw/Documents/Arduino/libraries/TFT_eSPI/Processors/TFT_eSPI_ESP32_S3.h:247:22: error: ‘GPIO’ was not declared in this scope
247 | #define CS_L GPIO.out_w1tc = (1 << TFT_CS); GPIO.out_w1tc = (1 << TFT_CS)
| ^~~~
/Users/jw/Documents/Arduino/libraries/TFT_eSPI/TFT_eSPI.cpp:80:5: note: in expansion of macro ‘CS_L’
80 | CS_L;
| ^~~~
/Users/jw/Documents/Arduino/libraries/TFT_eSPI/TFT_eSPI.cpp: In member function ‘virtual void TFT_eSPI::begin_nin_write()’:
/Users/jw/Documents/Arduino/libraries/TFT_eSPI/Processors/TFT_eSPI_ESP32_S3.h:247:22: error: ‘GPIO’ was not declared in this scope
247 | #define CS_L GPIO.out_w1tc = (1 << TFT_CS); GPIO.out_w1tc = (1 << TFT_CS)
| ^~~~
/Users/jw/Documents/Arduino/libraries/TFT_eSPI/TFT_eSPI.cpp:92:5: note: in expansion of macro ‘CS_L’
92 | CS_L;
| ^~~~
/Users/jw/Documents/Arduino/libraries/TFT_eSPI/TFT_eSPI.cpp: In member function ‘void TFT_eSPI::end_tft_write()’:
/Users/jw/Documents/Arduino/libraries/TFT_eSPI/Processors/TFT_eSPI_ESP32_S3.h:248:22: error: ‘GPIO’ was not declared in this scope
248 | #define CS_H GPIO.out_w1ts = (1 << TFT_CS)//;GPIO.out_w1ts = (1 << TFT_CS)
| ^~~~
/Users/jw/Documents/Arduino/libraries/TFT_eSPI/TFT_eSPI.cpp:106:7: note: in expansion of macro ‘CS_H’
106 | CS_H;
| ^~~~
/Users/jw/Documents/Arduino/libraries/TFT_eSPI/TFT_eSPI.cpp: In member function ‘virtual void TFT_eSPI::end_nin_write()’:
/Users/jw/Documents/Arduino/libraries/TFT_eSPI/Processors/TFT_eSPI_ESP32_S3.h:248:22: error: ‘GPIO’ was not declared in this scope
248 | #define CS_H GPIO.out_w1ts = (1 << TFT_CS)//;GPIO.out_w1ts = (1 << TFT_CS)
| ^~~~
/Users/jw/Documents/Arduino/libraries/TFT_eSPI/TFT_eSPI.cpp:121:7: note: in expansion of macro ‘CS_H’
121 | CS_H;
| ^~~~
/Users/jw/Documents/Arduino/libraries/TFT_eSPI/TFT_eSPI.cpp: In member function ‘void TFT_eSPI::begin_tft_read()’:
/Users/jw/Documents/Arduino/libraries/TFT_eSPI/Processors/TFT_eSPI_ESP32_S3.h:247:22: error: ‘GPIO’ was not declared in this scope
247 | #define CS_L GPIO.out_w1tc = (1 << TFT_CS); GPIO.out_w1tc = (1 << TFT_CS)
| ^~~~
/Users/jw/Documents/Arduino/libraries/TFT_eSPI/TFT_eSPI.cpp:141:5: note: in expansion of macro ‘CS_L’
141 | CS_L;
| ^~~~
/Users/jw/Documents/Arduino/libraries/TFT_eSPI/TFT_eSPI.cpp: In member function ‘void TFT_eSPI::end_tft_read()’:
/Users/jw/Documents/Arduino/libraries/TFT_eSPI/Processors/TFT_eSPI_ESP32_S3.h:248:22: error: ‘GPIO’ was not declared in this scope
248 | #define CS_H GPIO.out_w1ts = (1 << TFT_CS)//;GPIO.out_w1ts = (1 << TFT_CS)
| ^~~~
/Users/jw/Documents/Arduino/libraries/TFT_eSPI/TFT_eSPI.cpp:161:7: note: in expansion of macro ‘CS_H’
161 | CS_H;
| ^~~~
/Users/jw/Documents/Arduino/libraries/TFT_eSPI/TFT_eSPI.cpp: In member function ‘void TFT_eSPI::writecommand(uint8_t)’:
/Users/jw/Documents/Arduino/libraries/TFT_eSPI/Processors/TFT_eSPI_ESP32_S3.h:202:22: error: ‘GPIO’ was not declared in this scope
202 | #define DC_C GPIO.out_w1tc = (1 << TFT_DC)//;GPIO.out_w1tc = (1 << TFT_DC)
| ^~~~
/Users/jw/Documents/Arduino/libraries/TFT_eSPI/TFT_eSPI.cpp:984:3: note: in expansion of macro ‘DC_C’
984 | DC_C;
| ^~~~
/Users/jw/Documents/Arduino/libraries/TFT_eSPI/TFT_eSPI.cpp: In member function ‘void TFT_eSPI::writedata(uint8_t)’:
/Users/jw/Documents/Arduino/libraries/TFT_eSPI/Processors/TFT_eSPI_ESP32_S3.h:203:22: error: ‘GPIO’ was not declared in this scope
203 | #define DC_D GPIO.out_w1ts = (1 << TFT_DC)//;GPIO.out_w1ts = (1 << TFT_DC)
| ^~~~
/Users/jw/Documents/Arduino/libraries/TFT_eSPI/TFT_eSPI.cpp:1047:3: note: in expansion of macro ‘DC_D’
1047 | DC_D; // Play safe, but should already be in data mode
| ^~~~
/Users/jw/Documents/Arduino/libraries/TFT_eSPI/TFT_eSPI.cpp: In member function ‘uint8_t TFT_eSPI::readcommand8(uint8_t, uint8_t)’:
/Users/jw/Documents/Arduino/libraries/TFT_eSPI/Processors/TFT_eSPI_ESP32_S3.h:202:22: error: ‘GPIO’ was not declared in this scope
202 | #define DC_C GPIO.out_w1tc = (1 << TFT_DC)//;GPIO.out_w1tc = (1 << TFT_DC)
| ^~~~
/Users/jw/Documents/Arduino/libraries/TFT_eSPI/TFT_eSPI.cpp:1084:3: note: in expansion of macro ‘DC_C’
1084 | DC_C; tft_Write_8(0xD9);
| ^~~~
/Users/jw/Documents/Arduino/libraries/TFT_eSPI/TFT_eSPI.cpp: In member function ‘virtual uint16_t TFT_eSPI::readPixel(int32_t, int32_t)’:
/Users/jw/Documents/Arduino/libraries/TFT_eSPI/Processors/TFT_eSPI_ESP32_S3.h:248:22: error: ‘GPIO’ was not declared in this scope
248 | #define CS_H GPIO.out_w1ts = (1 << TFT_CS)//;GPIO.out_w1ts = (1 << TFT_CS)
| ^~~~
/Users/jw/Documents/Arduino/libraries/TFT_eSPI/TFT_eSPI.cpp:1247:3: note: in expansion of macro ‘CS_H’
1247 | CS_H;
| ^~~~
/Users/jw/Documents/Arduino/libraries/TFT_eSPI/TFT_eSPI.cpp: In member function ‘void TFT_eSPI::readRectRGB(int32_t, int32_t, int32_t, int32_t, uint8_t*)’:
/Users/jw/Documents/Arduino/libraries/TFT_eSPI/Processors/TFT_eSPI_ESP32_S3.h:248:22: error: ‘GPIO’ was not declared in this scope
248 | #define CS_H GPIO.out_w1ts = (1 << TFT_CS)//;GPIO.out_w1ts = (1 << TFT_CS)
| ^~~~
/Users/jw/Documents/Arduino/libraries/TFT_eSPI/TFT_eSPI.cpp:2257:3: note: in expansion of macro ‘CS_H’
2257 | CS_H;
| ^~~~
/Users/jw/Documents/Arduino/libraries/TFT_eSPI/TFT_eSPI.cpp: In member function ‘virtual void TFT_eSPI::setWindow(int32_t, int32_t, int32_t, int32_t)’:
/Users/jw/Documents/Arduino/libraries/TFT_eSPI/Processors/TFT_eSPI_ESP32_S3.h:202:22: error: ‘GPIO’ was not declared in this scope
202 | #define DC_C GPIO.out_w1tc = (1 << TFT_DC)//;GPIO.out_w1tc = (1 << TFT_DC)
| ^~~~
/Users/jw/Documents/Arduino/libraries/TFT_eSPI/TFT_eSPI.cpp:3480:5: note: in expansion of macro ‘DC_C’
3480 | DC_C; tft_Write_8(TFT_CASET);
| ^~~~
/Users/jw/Documents/Arduino/libraries/TFT_eSPI/TFT_eSPI.cpp: In member function ‘void TFT_eSPI::readAddrWindow(int32_t, int32_t, int32_t, int32_t)’:
/Users/jw/Documents/Arduino/libraries/TFT_eSPI/Processors/TFT_eSPI_ESP32_S3.h:202:22: error: ‘GPIO’ was not declared in this scope
202 | #define DC_C GPIO.out_w1tc = (1 << TFT_DC)//;GPIO.out_w1tc = (1 << TFT_DC)
| ^~~~
/Users/jw/Documents/Arduino/libraries/TFT_eSPI/TFT_eSPI.cpp:3556:3: note: in expansion of macro ‘DC_C’
3556 | DC_C; tft_Write_8(TFT_CASET);
| ^~~~
/Users/jw/Documents/Arduino/libraries/TFT_eSPI/TFT_eSPI.cpp: In member function ‘virtual void TFT_eSPI::drawPixel(int32_t, int32_t, uint32_t)’:
/Users/jw/Documents/Arduino/libraries/TFT_eSPI/Processors/TFT_eSPI_ESP32_S3.h:202:22: error: ‘GPIO’ was not declared in this scope
202 | #define DC_C GPIO.out_w1tc = (1 << TFT_DC)//;GPIO.out_w1tc = (1 << TFT_DC)
| ^~~~
/Users/jw/Documents/Arduino/libraries/TFT_eSPI/TFT_eSPI.cpp:3756:7: note: in expansion of macro ‘DC_C’
3756 | DC_C; tft_Write_8(TFT_CASET);
| ^~~~
/Users/jw/Documents/Arduino/libraries/TFT_eSPI/Processors/TFT_eSPI_ESP32_S3.h:202:22: error: ‘GPIO’ was not declared in this scope
202 | #define DC_C GPIO.out_w1tc = (1 << TFT_DC)//;GPIO.out_w1tc = (1 << TFT_DC)
| ^~~~
/Users/jw/Documents/Arduino/libraries/TFT_eSPI/TFT_eSPI.cpp:3763:7: note: in expansion of macro ‘DC_C’
3763 | DC_C; tft_Write_8(TFT_PASET);
| ^~~~
/Users/jw/Documents/Arduino/libraries/TFT_eSPI/Processors/TFT_eSPI_ESP32_S3.h:202:22: error: ‘GPIO’ was not declared in this scope
202 | #define DC_C GPIO.out_w1tc = (1 << TFT_DC)//;GPIO.out_w1tc = (1 << TFT_DC)
| ^~~~
/Users/jw/Documents/Arduino/libraries/TFT_eSPI/TFT_eSPI.cpp:3769:3: note: in expansion of macro ‘DC_C’
3769 | DC_C; tft_Write_8(TFT_RAMWR);
| ^~~~
Multiple libraries were found for “SD.h”
Used: /Users/jw/Library/Arduino15/packages/esp32/hardware/esp32/3.0.0-alpha2/libraries/SD
Not used: /Users/jw/Library/Arduino15/libraries/SD
exit status 1

Compilation error: exit status 1

The error message suggests that there are issues with the TFT_eSPI library. The GPIO identifier is not recognized in your code, which is causing these errors. Make sure that you have the correct version of the TFT_eSPI library installed.

203 |


Can’t figure out, where i can use the wrong library. brjoachim

We recommend that you use our tested and stable versions of the libraries

how do you download the files?

Hi there,
So this is the main TRIP up for users of the Round Display,
The TFT_eSPI.lib original that is installed by default in Arduino IDE is NOT compatible with the round display. The USER is required to remove current one and Install older compatable one from the LINK Seeed_Seraphina is giving. Or go look at the DEMO here I uploaded after following the directions to the LETTER (a MUST)
HTH
GL :slight_smile: PJ

the link to the gethub does not have a download zip file like the other… i literally dont know how to download the files from the link…

do you know what is wrong with it? Arduino keeps telling me i need to upgrade if i use older libs… is seems all the new libs are being corrupted by people trying to write them for raspberry pi and micropython… what da? I am pretty good at following directions and am still having problems… it seems rebooting and opening and closing the Arduino IDE is important

my most recent lesson was

in User_Setup_Select.h

// Example User_Setup files are stored in the “User_Setups” folder. These can be used
// unmodified or adapted for a particular hardware configuration.

///////////////////////////////////////////////////////
// User configuration selection lines are below //
///////////////////////////////////////////////////////

// Only ONE line below should be uncommented to define your setup. Add extra lines and files as needed.

//#include <User_Setup.h> // Default setup is root library folder

//#include <User_Setups/Setup1_ILI9341.h> // Setup file for ESP8266 configured for my ILI9341
//#include <User_Setups/Setup2_ST7735.h> // Setup file for ESP8266 configured for my ST7735

#include <User_Setups/Setup66_Seeed_XIAO_Round.h> // Setup file for Seeed XIAO with GC9A01 240x240

Its important to uncomment the #include <User_Setups/Setup66_Seeed_XIAO_Round.h>
BUT ALSO TO COMMENT //#include <User_Setup.h> // Default setup is root library folder

also its important lv_conf.h is placed OUTSIDE the directory in
C:\Arduino\libraries … this is very unusual

Seeed really needs to invest some time in solving this problem… otherwise people will be returning and complaining about products being defective and will take a bad public relations hit…

Hi there,
Yea, it’s NOT the GitHub, but from the LINK in the Wiki. That’s the one I used and Works.
HTH
GL :slight_smile: PJ
Look at the compiler output text to see the version. (seeed has submitted it I believe to be updated)
just hasn’t propagated through. :v: :smiley:

thats my point the link in the Seeed_Seraphina comment above is to this gethub
the link she provided is the image i provided… i dont know why it is trying to let me upload files

The download link to gethub that works is for a fork of TFT_eSPI
the link is for a fork of lvgl, the wiki says ti use lvgl from direct install in Arduino IDE

one of the problems is links are constantly changing

Yes thanks for the demo… I was able to get your demo to work last night

Hi there,
Great no Problem,
If you navigate to the links you can download the whole ZIP and install it from the tools menu, after removing the newer or current one of course , The RED arrows are the pertinent areas.



I followed the Wiki initially to a “T” and It worked first time around.
the touch portion was the only area I had to look twice at and edit the .h file for the correct driver.
YMMV
HTH
GL :slight_smile: PJ

FYI I was able to get your PG clock program to work last night and today, but the examples from the
C:\Arduino\libraries\Seeed_Arduino_Round_display\examples\HardwareTest.ino give only black screen
if your code works on my computer it seems the library install is somewhat correct but something maybe in the code is mis-matched or something

Just to clarify i am using XIAO ESP32C3

FYI according to

\examples\Test and diagnostics\Read_User_Setup

GPIO 21 is assigned to backlight… but i think GPIO 21 is SD Chip Select on XIAO ESP32S3
this may cause a confilct… i think Backlight is controled on XIAO Round Display by dip switch to pin 0

Its very confusing on ESP32S3 the chip pins and physical pins are different and sometime only 1 number different

Hi there,
So AFAIK, this still works for me, It is using the ESPC3 Xiao,

Your post is confusing me? Is the issue with the S3 or C3 I would suggest we
stick to one MCU Variation and start New threads for the others.
Seeed This is why “Xiao” :point_up: name for everything is WACK! None of the MCU’s are the same “exactly”
so I rest my Case.
HTH
YMMV
GL :slight_smile: PJ :vulcan_salute:

Hi I’m late
Actually, what I want to tell you is that you need to use this code. To use this example, you need to open the main folder (Seeed-Studio-XIAO-Round-Display-lvgl8.3.5), and then click on “code.” Below that, you will find an option to “download zip.”

Hello everyone, I’m reopening the discussion because I really need help.
I’m trying to get the xiao ESP32C3 to work with the seeed round display.
I’ve repeated the wiki tutorial many times, and I’ve tried ALL the demos and tips I could find on the internet. I know that the screen and the xiao work because I can display text with the GFX ADAFRUIT library.
The problem with the TFT-ESPi library, downloaded from the GITHUB mentioned above, is that my XIAO keeps rebooting without displaying anything on the screen. If a kind soul would like to help me, I would be very grateful…

Hi there,
and Welcome…
So those particular demo’s require a high attention to the fine details for the edits to the TFT-ESPI to work out. To eliminate and Cockpit issues or problems between the Keyboard and the floor :grinning:

this link has a zip file that contains a DRAG and DROP Uf2 file , follow(read) the thread and download the zip, unzip uf2 file and place the Xiao in Bootloader mode,(reset & boot) when the drive appears drag the uf2 file (unzipped) to it. WAIT … it will reset the Xiao and if you have the chimp-wink.GIF on the sd card (32G) max. you will see it on the display.
HTH
GL :slight_smile: PJ
This will verify your hardware and get you closer to the Answer.
here is an adtional demo & code “rolo” for round display.