Round display not working with all xiao modules

U have the Seeed Round Display and am trying to use it with the XIOA ESP32S3 SENSE, the XIAO SAMD21 and the XIAO RP2040.
I used the lvgl.h file from Seeed-Studio-XIAO-Round-Display-lvgl8.3.5-main\libraries\lvgl and copied it to the rooT of ARDUINO.
The RTC set time file from the tutorial works on all three boards.
The TFT_Epi_Clock program works on the XIOA_Samdi21 and XIAO RP2040 I get a error message "No such file or directory #include “esp32/spiram.h” using the XIAO_ESP32S3_SENSE.
The Hardware Test file compiles on all three boards but I get a blank screen when downloaded.
The demo_xiao file from Seeed-Studio-XIAO-Round-Display-lvgl8.3.5-main/libraries/TFT_eSPI/examplescompiles for all three boards and only works on the XIAO RP2040, the XIAO_Samdi21 and XIAO_ESP32s3_sense compile but shows a blank screen.
HELP APPRECIATED IN SORTING THIS OUT
Thanks
Bill

i will try to look into it…
I know there is alot of problems getting that to run on one board… so start with I

as far as samd… i think it is a little too weak in the horsepower department, but as you say, it will run some sketches

as for the S3 its a little too new to run, code needs to catch up

As for Rpi… Its a pi… nothing more needs to be said

known problem with some SD card slots

Your problem probably comes down to pin definitions, I am haveing similar problems with the tft_espi lib… it is way too confusing and doesnt support the processors correctly

Its a huge big coding problem… In short story… I say get a XIAO esp32C3… that is the most stable XIAO for the round display

XIAO gear is still on sale

Thanks for saying I’m not crazy.

Will the ESP32c3 run the round camera apps??

Bill

the C3 does not have the onboard camera

Hi there,
So I’m going to make some assumptions here, because you don’t say a lot of what the configs where,
So many in on thread. Woa. :smiley:
First understand, the Screen driver is a GA9XX , you know that yes?
you are dealing with Apples and Oranges of MCU’s there,
The BSP on the ESP32S3 side is What?
Did you make the necessary edits for the TFT_eSPI.LIB , ie the Setup.Config.h for the different from default ?
You can’t possibly expect to unplug one Xiao and insert another different Xiao and have the same code on them? Samd21 is nt a Risc MCU and the Nrf Xiao is an (M4) architecture you get that right?

THEY ALL WORK with the round display, some use different drivers than others.

next would be the BSP file used on the S3, Roll back to the 2.1.14 , current 3.0.1 is not supported yet by the Graphics drivers.

My advice would be any of the Blank screens that have Zero compiler errors are driver related.
either the edits are wrong, or the version is too new. Those darn demos almost always require specific LIB versions to run properly. Lots of moving parts. both in MCU and Driver areas, don’t even get me started with the TOUCH screen… LOL
HTH
GL :slight_smile: PJ
Take them one at a time and know this about TFT_eSPI stuff reloading or updating the version , Will WIPE the Setup_configs, so copy those to a backup folder. or incorporate a SETUPS folder like the wiki states.
You’ll get there, :v:
check out the other Round display threads, I have some with compiler output so you can see the lib versions required. :+1: like C3 Xiao

1 Like

Def not plug and play…

Hi there,
Yea for sure, but only because they jam so much stuff on there with it.
If it were just a display then Easy enough. PINS, PINS, and PINS…too
They (seeed) would be well served by putting out a version without the SD and RTC and more like a plain TFT with TouchScreen. SPI or I2C … my .02 they would sell more of those.
HTH
GL :slight_smile: PJ

the old adage , LESS is MORE! :stuck_out_tongue: :+1:

i just found out that SenseCAP rewrote all the grove libs… so they should make them available to us over here on the XIAO team… What da?

If you want to use the round display, first make sure you replace the library with the one that we recommend replacing here
And don’t add other redundant tft libraries

Getting Started with Seeed Studio Round Display for XIAO | Seeed Studio Wiki

Yes It will be weaker for samd21. It is not recommended to use XIAO SAMD21 to drive a round screen.

XIAO rp2040 works in theory. So I suggest you retry it after completely replacing the libraries we mentioned

For XIAO_ESP32s3_sense, you need to pay attention to what version of the package you have on board. Currently, versions 3.0.0 and above are not yet adapted to XIAO Round Display. Our engineer team is working on this. What you need to do now is to switch to an older version (esp32 2.0.x)

If you have completed the steps above and the screen is still not lit. Try re-powering and resetting the XIAO and make sure your switch is on

I hope this will help you.

2 Likes

can you say what is wrong with the older codes that throw the errors
I have been studying tft_espi… and it is overly complicated for no particular reason… can you sudgest another library?

Actually, according to the original method described in the wiki, it is also possible to normally use the tft library. It’s just that the method is too complex, and if any step is missing, it may result in the inability to normally use the tft library. So we generally recommend that users who are unable to use it directly use our tested stable version library, and you don’t even need to change the configuration within it to use it.

1 Like

sometimes it helps to know how the sausage is made…lol

Can you publish the user config files for each of the XIAO MCU-s
you can cut out all the unnecessary stuff…lol

Hi there,
I would agree with you on this. However I would like to see a table or something to indicate whats been tested?
I have NO issue’s . ZERO getting it to Work. It does the ONLY caveat I find is the BSP must Be 2.0.11 to have a clean experience.
i.e.

Go’s like this:
Download the 2 Libraries…Zips.
Seeed_Arduino_RoundDisplay-main.zip (Link from Wiki)
TFT_eSPI-master.zip (2nd Link from Wiki)
do the Include library from the Arduino Sketch menu, "Add ZIP Library " option.
copy lv_conf.h to your arduino Library folder from Seeed_Arduino_Round_display library added in the previous step.
Last is to edit the User_Setup_Select.h to comment out and IN the info directed from the Wiki.
"uncomment out the users setups and in the Xiao round display #66 save and compile , It works.
PERIOD!
Even better would be already compiled bins, for the demo’s already posted on the Wiki for those who are code Challenged. They can just flash and GO. Knowing the hardware does work.

Personally , USER don’t RTFM… that’s where most problems come from.
HTH
my .02
GL :slight_smile: PJ
:v:

I really think the Arduino IDE does crazy unpredictable things behind the scenes… And as for manuals, hard to find them… Too Many Dependencies … And Arduino will not let you put Libaries in Subfolders

Like the tft display thing we did, I broke out the Arduino Uno and still one sketch worked and another sketch threw compile errors… and I am so sick of seeing adafruit this and adafruit that… what da… I am all about giving credit where credit is due… Its hard enough keeping up with a handfull of Seeed Products without having to weed thru literally thousands of devices

and dont even get me started on the Arduino IDE that picks one of those thousands… instead of the ONE MCU i own and have plugged in! What da?

I got a million freekin Libs installed I think I would rather have static code that works, rather than dynamic updates… Having to roll back code is a classic example

Hi there,
NO, It does NOT , that’s YOUR imagination. LOL
Nothing behind the scenes, The Problem is between the Keyboard and the Floor.
and is indicative of a Lack of Knowledge and experience. That’s ALL it is , REALLY!

You can’t have both, static code and evolution, NEVER and nowhere can you give and example of that being the case. Suck it up and crack the books or Wiki’s in today’s world. Just having access to the hardware vendors and there take on it is differing, that’s why so much Fruitguys stuff exist . You see they tried what you want and all We’ got was a bigger BALL of yarn, worse was it only worked mostly on there stuff in the beginning , They saw the light too late. Now is a different story.
Grove is the same situation.

The best to be expected is that Seeed Tests and verify’s there stuff works. PERIOD!
if they choose NOT to update the demo’s then the onus is on YOU the user or maker.
That will never change , It can’t. IMO
unless rose colored glasses is a THING! :heart_eyes:
GL :slight_smile: PJ
:v:

II followed PJ_Grasso’'s instructions and got the error showwn below. I was aablle to fix it by updatiing to TFT_eSPI 2.5.43 as indicateed in my previous post.

If ther is a bettter fiix to clear the erroor then plese advise

In file included from c:\Users\Bill\Documents\Arduino\libraries\TFT_eSPI\TFT_eSPI.h:96,
                 from c:\Users\Bill\Documents\Arduino\libraries\TFT_eSPI\TFT_eSPI.cpp:16:
c:\Users\Bill\Documents\Arduino\libraries\TFT_eSPI\Processors/TFT_eSPI_ESP32_S3.c: In function 'void dc_callback(spi_transaction_t*)':
c:\Users\Bill\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)
      |                      ^~~~
c:\Users\Bill\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;}
      |                            ^~~~
c:\Users\Bill\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)
      |                      ^~~~
c:\Users\Bill\Documents\Arduino\libraries\TFT_eSPI\Processors/TFT_eSPI_ESP32_S3.c:808:9: note: in expansion of macro 'DC_C'
  808 |   else {DC_C;}
      |         ^~~~
c:\Users\Bill\Documents\Arduino\libraries\TFT_eSPI\TFT_eSPI.cpp: In member function 'void TFT_eSPI::begin_tft_write()':
c:\Users\Bill\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)
      |                      ^~~~
c:\Users\Bill\Documents\Arduino\libraries\TFT_eSPI\TFT_eSPI.cpp:80:5: note: in expansion of macro 'CS_L'
   80 |     CS_L;
      |     ^~~~
c:\Users\Bill\Documents\Arduino\libraries\TFT_eSPI\TFT_eSPI.cpp: In member function 'virtual void TFT_eSPI::begin_nin_write()':
c:\Users\Bill\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)
      |                      ^~~~
c:\Users\Bill\Documents\Arduino\libraries\TFT_eSPI\TFT_eSPI.cpp:92:5: note: in expansion of macro 'CS_L'
   92 |     CS_L;
      |     ^~~~
c:\Users\Bill\Documents\Arduino\libraries\TFT_eSPI\TFT_eSPI.cpp: In member function 'void TFT_eSPI::end_tft_write()':
c:\Users\Bill\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)
      |                      ^~~~
c:\Users\Bill\Documents\Arduino\libraries\TFT_eSPI\TFT_eSPI.cpp:106:7: note: in expansion of macro 'CS_H'
  106 |       CS_H;
      |       ^~~~
c:\Users\Bill\Documents\Arduino\libraries\TFT_eSPI\TFT_eSPI.cpp: In member function 'virtual void TFT_eSPI::end_nin_write()':
c:\Users\Bill\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)
      |                      ^~~~
c:\Users\Bill\Documents\Arduino\libraries\TFT_eSPI\TFT_eSPI.cpp:121:7: note: in expansion of macro 'CS_H'
  121 |       CS_H;
      |       ^~~~
c:\Users\Bill\Documents\Arduino\libraries\TFT_eSPI\TFT_eSPI.cpp: In member function 'void TFT_eSPI::begin_tft_read()':
c:\Users\Bill\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)
      |                      ^~~~
c:\Users\Bill\Documents\Arduino\libraries\TFT_eSPI\TFT_eSPI.cpp:141:5: note: in expansion of macro 'CS_L'
  141 |     CS_L;
      |     ^~~~
c:\Users\Bill\Documents\Arduino\libraries\TFT_eSPI\TFT_eSPI.cpp: In member function 'void TFT_eSPI::end_tft_read()':
c:\Users\Bill\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)
      |                      ^~~~
c:\Users\Bill\Documents\Arduino\libraries\TFT_eSPI\TFT_eSPI.cpp:161:7: note: in expansion of macro 'CS_H'
  161 |       CS_H;
      |       ^~~~
c:\Users\Bill\Documents\Arduino\libraries\TFT_eSPI\TFT_eSPI.cpp: In member function 'void TFT_eSPI::writecommand(uint8_t)':
c:\Users\Bill\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)
      |                      ^~~~
c:\Users\Bill\Documents\Arduino\libraries\TFT_eSPI\TFT_eSPI.cpp:984:3: note: in expansion of macro 'DC_C'
  984 |   DC_C;
      |   ^~~~
c:\Users\Bill\Documents\Arduino\libraries\TFT_eSPI\TFT_eSPI.cpp: In member function 'void TFT_eSPI::writedata(uint8_t)':
c:\Users\Bill\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)
      |                      ^~~~
c:\Users\Bill\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
      |   ^~~~
c:\Users\Bill\Documents\Arduino\libraries\TFT_eSPI\TFT_eSPI.cpp: In member function 'uint8_t TFT_eSPI::readcommand8(uint8_t, uint8_t)':
c:\Users\Bill\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)
      |                      ^~~~
c:\Users\Bill\Documents\Arduino\libraries\TFT_eSPI\TFT_eSPI.cpp:1084:3: note: in expansion of macro 'DC_C'
 1084 |   DC_C; tft_Write_8(0xD9);
      |   ^~~~
c:\Users\Bill\Documents\Arduino\libraries\TFT_eSPI\TFT_eSPI.cpp: In member function 'virtual uint16_t TFT_eSPI::readPixel(int32_t, int32_t)':
c:\Users\Bill\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)
      |                      ^~~~
c:\Users\Bill\Documents\Arduino\libraries\TFT_eSPI\TFT_eSPI.cpp:1247:3: note: in expansion of macro 'CS_H'
 1247 |   CS_H;
      |   ^~~~
c:\Users\Bill\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*)':
c:\Users\Bill\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)
      |                      ^~~~
c:\Users\Bill\Documents\Arduino\libraries\TFT_eSPI\TFT_eSPI.cpp:2257:3: note: in expansion of macro 'CS_H'
 2257 |   CS_H;
      |   ^~~~
c:\Users\Bill\Documents\Arduino\libraries\TFT_eSPI\TFT_eSPI.cpp: In member function 'virtual void TFT_eSPI::setWindow(int32_t, int32_t, int32_t, int32_t)':
c:\Users\Bill\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)
      |                      ^~~~
c:\Users\Bill\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);
      |     ^~~~
c:\Users\Bill\Documents\Arduino\libraries\TFT_eSPI\TFT_eSPI.cpp: In member function 'void TFT_eSPI::readAddrWindow(int32_t, int32_t, int32_t, int32_t)':
c:\Users\Bill\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)
      |                      ^~~~
c:\Users\Bill\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);
      |   ^~~~
c:\Users\Bill\Documents\Arduino\libraries\TFT_eSPI\TFT_eSPI.cpp: In member function 'virtual void TFT_eSPI::drawPixel(int32_t, int32_t, uint32_t)':
c:\Users\Bill\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)
      |                      ^~~~
c:\Users\Bill\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);
      |       ^~~~
c:\Users\Bill\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)
      |                      ^~~~
c:\Users\Bill\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);
      |       ^~~~
c:\Users\Bill\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)
      |                      ^~~~
c:\Users\Bill\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: C:\Users\Bill\AppData\Local\Arduino15\packages\esp32\hardware\esp32\3.0.2\libraries\SD
  Not used: C:\Users\Bill\AppData\Local\Arduino15\libraries\SD
exit status 1

Compilation error: exit status 1In file included from c:\Users\Bill\Documents\Arduino\libraries\TFT_eSPI\TFT_eSPI.h:96,
                 from c:\Users\Bill\Documents\Arduino\libraries\TFT_eSPI\TFT_eSPI.cpp:16:
c:\Users\Bill\Documents\Arduino\libraries\TFT_eSPI\Processors/TFT_eSPI_ESP32_S3.c: In function 'void dc_callback(spi_transaction_t*)':
c:\Users\Bill\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)
      |                      ^~~~
c:\Users\Bill\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;}
      |                            ^~~~
c:\Users\Bill\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)
      |                      ^~~~
c:\Users\Bill\Documents\Arduino\libraries\TFT_eSPI\Processors/TFT_eSPI_ESP32_S3.c:808:9: note: in expansion of macro 'DC_C'
  808 |   else {DC_C;}
      |         ^~~~
c:\Users\Bill\Documents\Arduino\libraries\TFT_eSPI\TFT_eSPI.cpp: In member function 'void TFT_eSPI::begin_tft_write()':
c:\Users\Bill\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)
      |                      ^~~~
c:\Users\Bill\Documents\Arduino\libraries\TFT_eSPI\TFT_eSPI.cpp:80:5: note: in expansion of macro 'CS_L'
   80 |     CS_L;
      |     ^~~~
c:\Users\Bill\Documents\Arduino\libraries\TFT_eSPI\TFT_eSPI.cpp: In member function 'virtual void TFT_eSPI::begin_nin_write()':
c:\Users\Bill\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)
      |                      ^~~~
c:\Users\Bill\Documents\Arduino\libraries\TFT_eSPI\TFT_eSPI.cpp:92:5: note: in expansion of macro 'CS_L'
   92 |     CS_L;
      |     ^~~~
c:\Users\Bill\Documents\Arduino\libraries\TFT_eSPI\TFT_eSPI.cpp: In member function 'void TFT_eSPI::end_tft_write()':
c:\Users\Bill\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)
      |                      ^~~~
c:\Users\Bill\Documents\Arduino\libraries\TFT_eSPI\TFT_eSPI.cpp:106:7: note: in expansion of macro 'CS_H'
  106 |       CS_H;
      |       ^~~~
c:\Users\Bill\Documents\Arduino\libraries\TFT_eSPI\TFT_eSPI.cpp: In member function 'virtual void TFT_eSPI::end_nin_write()':
c:\Users\Bill\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)
      |                      ^~~~
c:\Users\Bill\Documents\Arduino\libraries\TFT_eSPI\TFT_eSPI.cpp:121:7: note: in expansion of macro 'CS_H'
  121 |       CS_H;
      |       ^~~~
c:\Users\Bill\Documents\Arduino\libraries\TFT_eSPI\TFT_eSPI.cpp: In member function 'void TFT_eSPI::begin_tft_read()':
c:\Users\Bill\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)
      |                      ^~~~
c:\Users\Bill\Documents\Arduino\libraries\TFT_eSPI\TFT_eSPI.cpp:141:5: note: in expansion of macro 'CS_L'
  141 |     CS_L;
      |     ^~~~
c:\Users\Bill\Documents\Arduino\libraries\TFT_eSPI\TFT_eSPI.cpp: In member function 'void TFT_eSPI::end_tft_read()':
c:\Users\Bill\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)
      |                      ^~~~
c:\Users\Bill\Documents\Arduino\libraries\TFT_eSPI\TFT_eSPI.cpp:161:7: note: in expansion of macro 'CS_H'
  161 |       CS_H;
      |       ^~~~
c:\Users\Bill\Documents\Arduino\libraries\TFT_eSPI\TFT_eSPI.cpp: In member function 'void TFT_eSPI::writecommand(uint8_t)':
c:\Users\Bill\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)
      |                      ^~~~
c:\Users\Bill\Documents\Arduino\libraries\TFT_eSPI\TFT_eSPI.cpp:984:3: note: in expansion of macro 'DC_C'
  984 |   DC_C;
      |   ^~~~
c:\Users\Bill\Documents\Arduino\libraries\TFT_eSPI\TFT_eSPI.cpp: In member function 'void TFT_eSPI::writedata(uint8_t)':
c:\Users\Bill\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)
      |                      ^~~~
c:\Users\Bill\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
      |   ^~~~
c:\Users\Bill\Documents\Arduino\libraries\TFT_eSPI\TFT_eSPI.cpp: In member function 'uint8_t TFT_eSPI::readcommand8(uint8_t, uint8_t)':
c:\Users\Bill\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)
      |                      ^~~~
c:\Users\Bill\Documents\Arduino\libraries\TFT_eSPI\TFT_eSPI.cpp:1084:3: note: in expansion of macro 'DC_C'
 1084 |   DC_C; tft_Write_8(0xD9);
      |   ^~~~
c:\Users\Bill\Documents\Arduino\libraries\TFT_eSPI\TFT_eSPI.cpp: In member function 'virtual uint16_t TFT_eSPI::readPixel(int32_t, int32_t)':
c:\Users\Bill\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)
      |                      ^~~~
c:\Users\Bill\Documents\Arduino\libraries\TFT_eSPI\TFT_eSPI.cpp:1247:3: note: in expansion of macro 'CS_H'
 1247 |   CS_H;
      |   ^~~~
c:\Users\Bill\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*)':
c:\Users\Bill\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)
      |                      ^~~~
c:\Users\Bill\Documents\Arduino\libraries\TFT_eSPI\TFT_eSPI.cpp:2257:3: note: in expansion of macro 'CS_H'
 2257 |   CS_H;
      |   ^~~~
c:\Users\Bill\Documents\Arduino\libraries\TFT_eSPI\TFT_eSPI.cpp: In member function 'virtual void TFT_eSPI::setWindow(int32_t, int32_t, int32_t, int32_t)':
c:\Users\Bill\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)
      |                      ^~~~
c:\Users\Bill\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);
      |     ^~~~
c:\Users\Bill\Documents\Arduino\libraries\TFT_eSPI\TFT_eSPI.cpp: In member function 'void TFT_eSPI::readAddrWindow(int32_t, int32_t, int32_t, int32_t)':
c:\Users\Bill\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)
      |                      ^~~~
c:\Users\Bill\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);
      |   ^~~~
c:\Users\Bill\Documents\Arduino\libraries\TFT_eSPI\TFT_eSPI.cpp: In member function 'virtual void TFT_eSPI::drawPixel(int32_t, int32_t, uint32_t)':
c:\Users\Bill\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)
      |                      ^~~~
c:\Users\Bill\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);
      |       ^~~~
c:\Users\Bill\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)
      |                      ^~~~
c:\Users\Bill\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);
      |       ^~~~
c:\Users\Bill\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)
      |                      ^~~~
c:\Users\Bill\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: C:\Users\Bill\AppData\Local\Arduino15\packages\esp32\hardware\esp32\3.0.2\libraries\SD
  Not used: C:\Users\Bill\AppData\Local\Arduino15\libraries\SD
exit status 1

Compilation error: exit status 1

For information the following are thee steps I have followed.

I reached a totally confused state so I decided to start from scratch to see what happens.
1.	I found an uncluttered computer and deleted all traces of Arduino and reloaded the latest version 2.3.2 on Windows 10.
2.	From Seed tutorial “Getting Started with Seeed Studio Rounds Display for XIAO”, I downloaded “Seeed_Arduino_RoundDisplay”.
3.	From Seed tutorial “Getting Started with Seeed Studio Rounds Display for XIAO”, I downloaded “Seeed-Studio_XIAO-Round_Display-lvgl8.3.5”.
4.	I copied the libraries in “Seeed-Studio_XIAO-Round_Display-lvgl8.3.5” to Documents/Arduino/libraries
5.	I copied lvgl.h in “Seeed-Studio_XIAO-Round_Display-lvgl8.3.5” to Documents/Arduino/libraries
6.	I changed the file defines in User_Setup_Select.h to the ones shown in the tutorial.
7.	I loaded Hardware Test.ino and the compiler returned a page full of errors.
8.	I updated the TFT_eSPI library from 2.5.22 to 2.5.43 and the sketch compiled without errors.
9.	I connected a XIAO ESP32S3 and downloaded the Hardware Test example. 
10.	The sketch down loaded OK but the display was blank.
Attached is screenshot of the Arduino directory. One of the replies to this string suggested that the driver was bad; where is the driver in the file structure shown in the attached picture.
There seems to be something wrong with the file down load from Seed or the tutorial needs updating
Help appreciated.
Received PJ_Grassso response(6/28/2024/
1.Deleted TFT_eSPI 2.5.43 and installed the file downloaded from WIKI; the downloaded  file is 2.5.23

Grandaddy always said…

“Go Want in one hand, and Crap in the other…
and come back tell me which one fills up first…”

My Middle school teacher, back when teachers were Real Men used to tell us…
" You can like it… or Lump it… either way… an’t nothing gonna change about it…" McClenny Saunders…