23 May 2023
Thank you for responding. Here are the steps I took:
https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json
Could the following json reference cause any problems?
https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_dev_index.json
Navigate to Tools > Board > Boards ManagerâŚ, type the keyword esp32 in the search box, select the latest version of esp32, and install it. (version 2.08 is installed)
GitHub - lvgl/lvgl: Embedded graphics library to create beautiful UIs for any MCU, MPU and display type. It's boosted by a professional yet affordable drag and drop UI editor, called SquareLine Studio. (installed this library)
Round-Display wiki:
Make sure the json file installed (check)
If you want to use the RTC function on the expansion board, then you also need to search and install the I2C BM8563 RTC library. (check)
If you have previously installed the TFT_eSPI library, please remove the original library and install the new one. (check)https:
Wiki LINK pointed to: //github.com/Maxwelltoo/TFT_eSPI
when installed produced this folder:
C:\Users\blablabla\Documents\Arduino\libraries\TFT_eSPI-master
Round-Display:
Wiki Link: GitHub - Seeed-Studio/Seeed_Arduino_RoundDisplay: An Arduino graphics library based on LVGL, specifically designed for Round Display for XIAO
lv_conf setup:
Then, you need to take the lv_conf.h file and cut it to the root directory of the Arduino library.
CAUTION
Note that the lv_conf.h file here is from Seeed_Arduino_RoundDisplay, not from the LVGL library.
On Windows, the root directory of the Arduino library is:
C:\Users${UserName}\Documents\Arduino\libraries (check)
User_Setup_Select.h setup:
For the content of Round Display, our tutorial will focus on the use of TFT_eSPI.
Please find the TFT_eSPI folder in the root directory of the Arduino library, and then modify the User_Setup_Select.h file in the TFT_eSPI directory.
C:\Users${UserName}\Documents\Arduino\libraries\TFT_eSPI\User_Setup_Select.h
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.
edited âC:\Users\blablabla\Documents\Arduino\libraries\TFT_eSPI-master\User_Setup_Select.hâ
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. (check)
Arduino Library Overview (LINK BROKEN)
As we can probably tell from the above tutorial, Round Display mainly uses LVGL, TFT_eSPI and Arduino GFX libraries. For the sake of space, we will introduce the use of LVGL and TFT_eSPI libraries separately with the example of drawing a dial.
You can learn about the interface and use of the TFT_eSPI library by clicking here. (This link is broken)
Hardware Test:
Light up your Round Display
Once the hardware and software are ready, we start uploading our first example program. This sample program can be used to check if the Round Displayâs RTC clock, SD card and touch functions are working properly.
You can find this sample program in the Arduino IDE under File â Examples â Seeed Arduino Round display â HardwareTest.
Problem compiling:
n file included from C:\Users\blablabla\Documents\Arduino\Seeed_Hardwar_Test\Seeed_Hardwar_Test.ino:7:
C:\Users\blablabla\Documents\Arduino\libraries\Seeed_Arduino_RoundDisplay-main\src/lv_xiao_round_screen.h:50:23: error: variable or field âxiao_disp_flushâ declared void
void xiao_disp_flush( lv_disp_drv_t *disp, const lv_area_t *area, lv_color_t *color_p )
^~~~~~~~~~~~~
C:\Users\blablabla\Documents\Arduino\libraries\Seeed_Arduino_RoundDisplay-main\src/lv_xiao_round_screen.h:50:23: error: âlv_disp_drv_tâ was not declared in this scope
C:\Users\blablabla\Documents\Arduino\libraries\Seeed_Arduino_RoundDisplay-main\src/lv_xiao_round_screen.h:50:23: note: suggested alternative: âlv_fs_drv_tâ
void xiao_disp_flush( lv_disp_drv_t *disp, const lv_area_t *area, lv_color_t *color_p )
^~~~~~~~~~~~~
lv_fs_drv_t
C:\Users\blablabla\Documents\Arduino\libraries\Seeed_Arduino_RoundDisplay-main\src/lv_xiao_round_screen.h:50:38: error: âdispâ was not declared in this scope
void xiao_disp_flush( lv_disp_drv_t *disp, const lv_area_t *area, lv_color_t *color_p )
^~~~
C:\Users\blablabla\Documents\Arduino\libraries\Seeed_Arduino_RoundDisplay-main\src/lv_xiao_round_screen.h:50:38: note: suggested alternative: âdupâ
void xiao_disp_flush( lv_disp_drv_t *disp, const lv_area_t *area, lv_color_t *color_p )
^~~~
dup
C:\Users\blablabla\Documents\Arduino\libraries\Seeed_Arduino_RoundDisplay-main\src/lv_xiao_round_screen.h:50:44: error: expected primary-expression before âconstâ
void xiao_disp_flush( lv_disp_drv_t disp, const lv_area_t area, lv_color_t color_p )
^~~~~
C:\Users\blablabla\Documents\Arduino\libraries\Seeed_Arduino_RoundDisplay-main\src/lv_xiao_round_screen.h:50:78: error: expected primary-expression before 'â token
void xiao_disp_flush( lv_disp_drv_t disp, const lv_area_t area, lv_color_t color_p )
^
C:\Users\blablabla\Documents\Arduino\libraries\Seeed_Arduino_RoundDisplay-main\src/lv_xiao_round_screen.h:50:79: error: âcolor_pâ was not declared in this scope
void xiao_disp_flush( lv_disp_drv_t disp, const lv_area_t area, lv_color_t *color_p )
^~~~~~~
C:\Users\blablabla\Documents\Arduino\libraries\Seeed_Arduino_RoundDisplay-main\src/lv_xiao_round_screen.h:50:79: note: suggested alternative: âlv_color_tâ
void xiao_disp_flush( lv_disp_drv_t disp, const lv_area_t area, lv_color_t *color_p )
^~~~~~~
lv_color_t
C:\Users\blablabla\Documents\Arduino\libraries\Seeed_Arduino_RoundDisplay-main\src/lv_xiao_round_screen.h: In function âvoid lv_xiao_disp_init()â:
C:\Users\blablabla\Documents\Arduino\libraries\Seeed_Arduino_RoundDisplay-main\src/lv_xiao_round_screen.h:87:12: error: âlv_disp_draw_buf_tâ does not name a type; did you mean âlv_draw_ctx_tâ?
static lv_disp_draw_buf_t draw_buf;
^~~~~~~~~~~~~~~~~~
lv_draw_ctx_t
C:\Users\blablabla\Documents\Arduino\libraries\Seeed_Arduino_RoundDisplay-main\src/lv_xiao_round_screen.h:89:29: error: âdraw_bufâ was not declared in this scope
lv_disp_draw_buf_init( &draw_buf, buf, NULL, SCREEN_WIDTH * LVGL_BUFF_SIZE );
^~~~~~~~
C:\Users\blablabla\Documents\Arduino\libraries\Seeed_Arduino_RoundDisplay-main\src/lv_xiao_round_screen.h:89:5: error: âlv_disp_draw_buf_initâ was not declared in this scope
lv_disp_draw_buf_init( &draw_buf, buf, NULL, SCREEN_WIDTH * LVGL_BUFF_SIZE );
^~~~~~~~~~~~~~~~~~~~~
C:\Users\blablabla\Documents\Arduino\libraries\Seeed_Arduino_RoundDisplay-main\src/lv_xiao_round_screen.h:89:5: note: suggested alternative: âlv_obj_draw_dsc_initâ
lv_disp_draw_buf_init( &draw_buf, buf, NULL, SCREEN_WIDTH * LVGL_BUFF_SIZE );
^~~~~~~~~~~~~~~~~~~~~
lv_obj_draw_dsc_init
C:\Users\blablabla\Documents\Arduino\libraries\Seeed_Arduino_RoundDisplay-main\src/lv_xiao_round_screen.h:92:12: error: âlv_disp_drv_tâ does not name a type; did you mean âlv_fs_drv_tâ?
static lv_disp_drv_t disp_drv;
^~~~~~~~~~~~~
lv_fs_drv_t
C:\Users\blablabla\Documents\Arduino\libraries\Seeed_Arduino_RoundDisplay-main\src/lv_xiao_round_screen.h:93:24: error: âdisp_drvâ was not declared in this scope
lv_disp_drv_init( &disp_drv );
^~~~~~~~
C:\Users\blablabla\Documents\Arduino\libraries\Seeed_Arduino_RoundDisplay-main\src/lv_xiao_round_screen.h:93:24: note: suggested alternative: âlv_disp_dpxâ
lv_disp_drv_init( &disp_drv );
^~~~~~~~
lv_disp_dpx
C:\Users\blablabla\Documents\Arduino\libraries\Seeed_Arduino_RoundDisplay-main\src/lv_xiao_round_screen.h:93:5: error: âlv_disp_drv_initâ was not declared in this scope
lv_disp_drv_init( &disp_drv );
^~~~~~~~~~~~~~~~
C:\Users\blablabla\Documents\Arduino\libraries\Seeed_Arduino_RoundDisplay-main\src/lv_xiao_round_screen.h:93:5: note: suggested alternative: âlv_fs_drv_initâ
lv_disp_drv_init( &disp_drv );
^~~~~~~~~~~~~~~~
lv_fs_drv_init
C:\Users\blablabla\Documents\Arduino\libraries\Seeed_Arduino_RoundDisplay-main\src/lv_xiao_round_screen.h:96:25: error: âxiao_disp_flushâ was not declared in this scope
disp_drv.flush_cb = xiao_disp_flush;
^~~~~~~~~~~~~~~
C:\Users\blablabla\Documents\Arduino\libraries\Seeed_Arduino_RoundDisplay-main\src/lv_xiao_round_screen.h:96:25: note: suggested alternative: âxiao_disp_initâ
disp_drv.flush_cb = xiao_disp_flush;
^~~~~~~~~~~~~~~
xiao_disp_init
C:\Users\blablabla\Documents\Arduino\libraries\Seeed_Arduino_RoundDisplay-main\src/lv_xiao_round_screen.h:98:5: error: âlv_disp_drv_registerâ was not declared in this scope
lv_disp_drv_register( &disp_drv );
^~~~~~~~~~~~~~~~~~~~
C:\Users\blablabla\Documents\Arduino\libraries\Seeed_Arduino_RoundDisplay-main\src/lv_xiao_round_screen.h:98:5: note: suggested alternative: âlv_fs_drv_registerâ
lv_disp_drv_register( &disp_drv );
^~~~~~~~~~~~~~~~~~~~
lv_fs_drv_register
C:\Users\blablabla\Documents\Arduino\libraries\Seeed_Arduino_RoundDisplay-main\src/lv_xiao_round_screen.h: At global scope:
C:\Users\blablabla\Documents\Arduino\libraries\Seeed_Arduino_RoundDisplay-main\src/lv_xiao_round_screen.h:141:19: error: variable or field âchsc6x_readâ declared void
void chsc6x_read( lv_indev_drv_t * indev_driver, lv_indev_data_t * data )
^~~~~~~~~~~~~~
C:\Users\blablabla\Documents\Arduino\libraries\Seeed_Arduino_RoundDisplay-main\src/lv_xiao_round_screen.h:141:19: error: âlv_indev_drv_tâ was not declared in this scope
C:\Users\blablabla\Documents\Arduino\libraries\Seeed_Arduino_RoundDisplay-main\src/lv_xiao_round_screen.h:141:19: note: suggested alternative: âlv_indev_data_tâ
void chsc6x_read( lv_indev_drv_t * indev_driver, lv_indev_data_t * data )
^~~~~~~~~~~~~~
lv_indev_data_t
C:\Users\blablabla\Documents\Arduino\libraries\Seeed_Arduino_RoundDisplay-main\src/lv_xiao_round_screen.h:141:36: error: âindev_driverâ was not declared in this scope
void chsc6x_read( lv_indev_drv_t * indev_driver, lv_indev_data_t * data )
^~~~~~~~~~~~
C:\Users\blablabla\Documents\Arduino\libraries\Seeed_Arduino_RoundDisplay-main\src/lv_xiao_round_screen.h:141:36: note: suggested alternative: âlv_indev_resetâ
void chsc6x_read( lv_indev_drv_t * indev_driver, lv_indev_data_t * data )
^~~~~~~~~~~~
lv_indev_reset
C:\Users\blablabla\Documents\Arduino\libraries\Seeed_Arduino_RoundDisplay-main\src/lv_xiao_round_screen.h:141:66: error: expected primary-expression before 'â token
void chsc6x_read( lv_indev_drv_t * indev_driver, lv_indev_data_t * data )
^
C:\Users\blablabla\Documents\Arduino\libraries\Seeed_Arduino_RoundDisplay-main\src/lv_xiao_round_screen.h:141:68: error: âdataâ was not declared in this scope
void chsc6x_read( lv_indev_drv_t * indev_driver, lv_indev_data_t * data )
^~~~
C:\Users\blablabla\Documents\Arduino\libraries\Seeed_Arduino_RoundDisplay-main\src/lv_xiao_round_screen.h:141:68: note: suggested alternative: âatanâ
void chsc6x_read( lv_indev_drv_t * indev_driver, lv_indev_data_t * data )
^~~~
atan
C:\Users\blablabla\Documents\Arduino\libraries\Seeed_Arduino_RoundDisplay-main\src/lv_xiao_round_screen.h: In function âvoid lv_xiao_touch_init()â:
C:\Users\blablabla\Documents\Arduino\libraries\Seeed_Arduino_RoundDisplay-main\src/lv_xiao_round_screen.h:161:12: error: âlv_indev_drv_tâ does not name a type; did you mean âlv_indev_data_tâ?
static lv_indev_drv_t indev_drv;
^~~~~~~~~~~~~~
lv_indev_data_t
C:\Users\blablabla\Documents\Arduino\libraries\Seeed_Arduino_RoundDisplay-main\src/lv_xiao_round_screen.h:162:24: error: âindev_drvâ was not declared in this scope
lv_indev_drv_init(&indev_drv);
^~~~~~~~~
C:\Users\blablabla\Documents\Arduino\libraries\Seeed_Arduino_RoundDisplay-main\src/lv_xiao_round_screen.h:162:5: error: âlv_indev_drv_initâ was not declared in this scope
lv_indev_drv_init(&indev_drv);
^~~~~~~~~~~~~~~~~
C:\Users\blablabla\Documents\Arduino\libraries\Seeed_Arduino_RoundDisplay-main\src/lv_xiao_round_screen.h:162:5: note: suggested alternative: âlv_fs_drv_initâ
lv_indev_drv_init(&indev_drv);
^~~~~~~~~~~~~~~~~
lv_fs_drv_init
C:\Users\blablabla\Documents\Arduino\libraries\Seeed_Arduino_RoundDisplay-main\src/lv_xiao_round_screen.h:164:25: error: âchsc6x_readâ was not declared in this scope
indev_drv.read_cb = chsc6x_read;
^~~~~~~~~~~
C:\Users\blablabla\Documents\Arduino\libraries\Seeed_Arduino_RoundDisplay-main\src/lv_xiao_round_screen.h:164:25: note: suggested alternative: âchsc6x_get_xyâ
indev_drv.read_cb = chsc6x_read;
^~~~~~~~~~~
chsc6x_get_xy
C:\Users\blablabla\Documents\Arduino\libraries\Seeed_Arduino_RoundDisplay-main\src/lv_xiao_round_screen.h:165:5: error: âlv_indev_drv_registerâ was not declared in this scope
lv_indev_drv_register(&indev_drv);
^~~~~~~~~~~~~~~~~~~~~
C:\Users\blablabla\Documents\Arduino\libraries\Seeed_Arduino_RoundDisplay-main\src/lv_xiao_round_screen.h:165:5: note: suggested alternative: âlv_fs_drv_registerâ
lv_indev_drv_register(&indev_drv);
^~~~~~~~~~~~~~~~~~~~~
lv_fs_drv_register
In file included from C:\Users\blablabla\Documents\Arduino\Seeed_Hardwar_Test\Seeed_Hardwar_Test.ino:8:
C:\Users\blablabla\AppData\Local\Temp\arduino_build_651078\sketch\lv_hardware_test.h: In function 'void event_handler(lv_event_t)â:
lv_hardware_test.h:52:41: error: invalid conversion from 'voidâ to 'lv_obj_tâ {aka '_lv_obj_tâ} [-fpermissive]
lv_obj_t * obj = lv_event_get_target(e);
~~~~~~~~~~~~~~~~~^
C:\Users\blablabla\AppData\Local\Temp\arduino_build_651078\sketch\lv_hardware_test.h: In function 'void slider_event_cb(lv_event_t)â:
lv_hardware_test.h:72:44: error: invalid conversion from 'voidâ to 'lv_obj_tâ {aka '_lv_obj_tâ} [-fpermissive]
lv_obj_t * slider = lv_event_get_target(e);
~^
C:\Users\blablabla\AppData\Local\Temp\arduino_build_651078\sketch\lv_hardware_test.h: In function âvoid lv_hardware_test()â:
lv_hardware_test.h:82:5: error: âlv_obj_add_event_cbâ was not declared in this scope
lv_obj_add_event_cb(slider, slider_event_cb, LV_EVENT_VALUE_CHANGED, NULL);
^~~
C:\Users\blablabla\AppData\Local\Temp\arduino_build_651078\sketch\lv_hardware_test.h:82:5: note: suggested alternative: âlv_obj_add_eventâ
lv_obj_add_event_cb(slider, slider_event_cb, LV_EVENT_VALUE_CHANGED, NULL);
^~~~~~~~~~~~~~~~~~~
lv_obj_add_event
Multiple libraries were found for âSD.hâ
Used: C:\Users\blablabla\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.8\libraries\SD
Not used: C:\Program Files (x86)\Arduino\libraries\SD
Bottom Line:
exit status 1
invalid conversion from âvoid*â to âlv_obj_t*â {aka â_lv_obj_t*â} [-fpermissive]