Round display not working with all xiao modules

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…

Hi there,
You need to post your compiler output, first 3 lines.
Did you use BSP 2.0.11?
Go
GL :slight_smile: PJ
:v:

It looks like Arduino is using BSP 3.0.2 which is the latest package.
How do I load an older version.
I have c:\users\bill\AppData\Local\Arduino\packages\esp32\hardware\esp32\3.0.2
Can clarify what you mean by"You need to post your compiler output, first 3 lines.

Hi there,
Let’s keep it on one thread … I posted the screen shot, pull the arrow down to get other choices…
PJ
:v:

Thanks for response.
I installed BSP 2.0.11, TFT_esp32 2.5.22 and lvgl 8.3.4.
All the programs compiled OK on the SEEED_esp32s3 with the round camera. I had problems downloading; at one point I downloaded a program(can,t remember which one) and I kept getting failure to download errors. I tried all the reset procedures to enter BOOT mode and I finally downloaded the BLINK program( which is step #3 in the recovery procedure); now everything works. I guess the BLINK was able to overwrite the offending program and return the esp32se to workable mode.
Thanks for your help
It seems a bad policy to have to roll back the config files to a year old point in time; is this ever going to get resolved??

Thanks again

1 Like

Hi there,
Sounds like it wrote over the bootloader area or some other boundary, the blink just straightened that out.
Actually it will work with the current ones, It’s not within Seeed’s control , all the LIbraries you are using are third party and some go there own way later in development as to what stuff they support on the ESP chips. Once you have it working , try switching to newer BSP’s and Updated TFT_eSPI lib. If you set the user configs correctly you’ll get good results.
Heck I 'm just glad it WORKS… :+1: :smile:
HTH
GL :slight_smile: PJ
:v:

ie. the Xiao Nrf52840 works with them all BTW

Hi there,
Sure, good stuff :wink::+1:
When you run a compile it outputs the Steps it’s taking, If you have the “Verbose” tick mark set in the config/preferences for the IDE. From that the first three lines of output tell you which “BSP” it used.
The last 20 or so the LIBs it found and applied to the build process , as well as the files and names it creates for them along with the flash regions they are written to. it’s a LOT of good info but you won’t know it unless you study more.
the old adage comes to mind, “Garbage IN , Garbage OUT”
Use the Board MAnager to select the right BSP and recompile , then look at the output for any errors or versions that are different from the examples, often that will give it away. the SD card stuff and the Adafruit stuff is notorious for that. COmpiler output is the key first step in troubleshooting any of this stuff. PERIOD!
HTH
GL :slight_smile: PJ

Don’t forget to mark the post that suggested the fix with the solution so others can find it.:v: