Round Display with Xiao Nrf52840 Sense ,TFT_eSPI , LVL Example

It’s interesting that you’d rather blame copilot than admit there might be a problem with the seeed provided docs and code. The fact that a few people eventually got it working after making their own code changes does not suggest “it works easily”. I’m not sure what you mean by “read the fine print (wiki)”, I’ve read that “Getting Started with Seeed Studio Round Display for XIAO“ page several times, and linked the github readmes, and searched the forums, so I’m not sure what “fine print” you think I missed, but I’d love it if you could point it out to me. I turned to copilot only as a last ditch effort when all else failed, so if you have any advice I’d love any help you can provide.

I do think the hardware is cool and would love to get it working with touch, so I’m continuing to make the effort here.

Okay so new day, fresh start. Here’s what I tried.

Uninstall all libraries
Delete all the folders in libraries
Uninstall all board support packages

Reinstall all libraries and board support package per table below:

Board Support Package: 2.0.12
Seeed_Arduino_RoundDisplay: Zip linked in getting started page
Lvgl: 8.3.7
lv_examples: N/A
TFT_eSPI: N/A
SeeedStudio_TFT_eSPI: Zip linked in Seeed_Arduino_RoundDisplay github page
GFX Library for Arduino: v1.6.3
I2C BM8563 RTC: 1.0.4
SD: 1.2.4
AnimatedGIF: v2.2.0
Seeed_GFX: Zip linked in getting started page
Wire: N/A
Adafruit TinyUSB Library: N/A

Delete hardware test ino
Reload example and resave
Compile and upload
Post results to forum:
Compile got a bunch of warnings about lv_conf.h missing, even though it’s in the /libraries folder.
Compile got a bunch of warnings about touch pin not defined:
\libraries\TFT_eSPI\TFT_eSPI.cpp:
#warning >>>>------>> TOUCH_CS pin not defined, TFT_eSPI touch functions will not be available!
But it compiled.
Uploading
Code uploaded but touch screen is unresponsive

Try the code that PJ posted
Compile
Post results to forum
Compile got a bunch of warnings about lv_conf.h missing, even though it’s in the /libraries folder.
Compile got a bunch of warnings about touch pin not defined:
\libraries\TFT_eSPI\TFT_eSPI.cpp:
#warning >>>>------>> TOUCH_CS pin not defined, TFT_eSPI touch functions will not be available!
But it compiled.
Uploading
Code uploaded but touch screen is unresponsive

I am still getting the same errors I got before without using any copilot code.


Questions

BSP Version
The instructions state use the latest BSP but show 2.0.12 in the screenshot.
Your post uses 2.0.11.
But later you said it worked on 3.3.3
Which version of the BSP should I be using?
I’m using 2.0.12 to match the instructions

Seeed_Arduino_RoundDisplay

Usage > 3.Uncomment a library for display driver
What does this^ mean?
The original getting started article references the Seeed_GFX library but the Seeed_Arduino_RoundDisplay page references the SeeedStudio_TFT_eSPI project. Which is it?
\libraries\Seeed_GFX\User_Setup.h
Uncomment #define GC9A01_DRIVER"
Is that^ right?
\libraries\TFT_eSPI\User_Setup.h
Is it this^ one? Why are there so many libraries with conflicting or redundant instructions?
I guess I can do both?

Note:

If you want to use the TFT_eSPI library for display driving, you must
comment out the line #include <User_Setup.h> and
uncomment the line #include <User_Setups/Setup66_Seeed_XIAO_RoundDisplay.h>
in the “User_Setup_Select.h” file.
Again, those lines don’t exist in that file.
I do see this line:
#include <User_Setups/Dynamic_Setup.h>
Which also includes this:
#elif BOARD_SCREEN_COMBO == 66
#include <User_Setups/Setup66_Seeed_XIAO_Round.h>
But the getting started article says board screen combo should be
#define BOARD_SCREEN_COMBO 501 // Round Display for Seeed Studio XIAO (GC9A01)
Well, actually it says select “TRMNL 7.5” but the screenshot shows Round display which the tool outputs as 501.
Which board screen combo should I use? 66 or 501?

So, since #include <User_Setup.h> doesn’t exist, should I comment out dynamic setup instead? I did this:
//#include <User_Setups/Dynamic_Setup.h>
#include <User_Setups/Setup66_Seeed_XIAO_RoundDisplay.h>
Inside User_Setup_Select.h
But, again, which User_Setup_Select.h file should I be editing? There’s two now.
\libraries\Seeed_GFX\User_Setup_Select.h
\libraries\TFT_eSPI\User_Setup_Select.h
Well the seeed gfx one already has the setup66, so maybe that one is the one I should be using?

The lvgl configuration file lv_conf.h must be copied to your Arduino IDE’s libraries directory.
Copied \libraries\lvgl\lv_conf_template.h to \libraries\lv_conf.h
Still getting errors that the lv_conf.h is not being found.

Thanks in advance!

Hi there,

Yea, I know… I have to say. To start with the Round display as a first entry is a Bold Move :grin: Props to you ..
Ok, so the Hardware is Solid. EVERY demo works. So then Now why are there problems ?
The original LIB’s where only compatible with certain BSP’s the fact that there are two adds even more to that. Embedded and Non-embedded. for the NRF Xiao’s, as it plays with the ESP32’s there is another set of issues with BSP’s from espressif compatibility with Graphics LIB there’s would only work with older BSP’s the Author of the TFT_eSPI.LIB saw this and Updated the LIB to work with the Newer BSP’s recently. SO it matters ONLY which BSP and Graphics LIB chosen also because there are more than one for those as well. LVGL, GFX_LIb, TFT_eSPI.LIB…

YOU see where this is going? Seeed has only a small or no obligation to change there “lv_xiao_round_screen.h” is does what it is supposed too. It’s up to the maker to get the configuration sorted out. I have built with both the Touch screen tech LIB’s each have there advantage and purpose both work well, coordinates or Gesture.. one is better and more complex than the other. (see the demo’s I have on here with code)

I go through the process in one of them. Suffice to say it works and once you get it going no other tweaking is required.
My advice to new users is pick one MCU and get it going (displaying), then try builds with different graphics LIB’s see what fits your level. Then try some of the other Examples adding in the touch, the SD, the RTC.. You can see from the Timeline and Arduino demo’s that’s what I did all the way to NRF_SDK and BLE and DFU capabilities.

The fine print is the WiKi, pay attention to links they provide (seeed) using another LIB or updated version may not work. also Look at the dates for some of the older Examples and match the Graphics LIB versions dates… to that range and usually your good always. Because this stuff changes and some does get updated and some Does NOT! It’s up to you to look at everything and doesn’t hurt to scan the Forum for updated info.

You seem experienced enough and patient enough to wade through and come out better on the other side.
Yes, Setup66 is for Seeed Display in the user setup selects in TFT_eSPI.LIB it is very powerful and I like it the most. see the rolo Watch faces they look very, very Good.

Lot’s of smart folks on here willing to help, so post up the code your trying , use the code tags above “</>” paste it in there. makes it easier to read and you’ll get better quality help too. :crossed_fingers:

HTH
GL :slight_smile: PJ :v:

I was referring to a version that works in that post with NimBLE and TFT-eSPI.LIB only certain version work. The Latest update 3.3.3 of ESP32S3 BSP works now with TFT_eSPI.lib no longer only 2.0.11 and 2.0.14 :+1: