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

Instructions are not clear.

Step 4. Add the library of Round Display to Arduino.

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

Cut from where and paste to where?

My guess is to copy lv_conf.h

  • from .../Arduino/libraries/Seeed_Arduino_RoundDisplay/
  • to .../Arduino/libraries/
  • to obtain .../Arduino/libraries/lv_conf.h

Step 5. (Optional) Configure the usage environment

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.

Line #include <User_Setups/Setup66_Seeed_XIAO_RoundDisplay.h> does not exist.

Instead, User_Setup_Select.h lists

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

and the User_Setups sub-folder does contain Setup66_Seeed_XIAO_Round.h.

Could you please confirm the answers and update the Wiki accordingly? Thank you!

Please read the Wiki description carefully. The Wiki says to move the lv _ con.h file from the Seeed_Arduino_RoundDisplay library to the root directory of the arduino libraries, with a picture of the moved file location added to avoid ambiguity.


It shows that the file that has been modified is User_Setup_Select.h.
If you don’t find it, please update the tft_eSPI library.

Thank you for your answer. I did read the instructions carefully, hence my question.

The problem is the wording: some steps are not detailed enough and require looking at the pictures, while other steps are fully explained with the text. The pictures are small and hard to read, even zoomed in to full screen.

I would recommend rephrasing the mentioned section for better clarity. Thank you!

Again, I did read the instructions carefully, hence my question. I checked all the links before asking for help on the forum.

The problem is the text mentions a library which name has changed.

It would be worth updating the procedure accordingly.

From a marketing point-of-view, the installation procedure is part of the product. Any difficulty faced by the end-user puts the out-of-the-box experience in jeopardy and compromises the perceived quality.

I am also unable to find any example that will work for the XIAO-Round-Display. I am using the XIAO-ESP32C3 device. I left two comments trying to get the Hardware Test to work. Even though the wiki implies that one uses either the LVGL OR ESP-Tft… I have found no example which works. I did get closer after add the LVGL library but still no success. I really like the product but I would really like to know what I am doing wrong when it appears others are having success and I am not. Is there some detail I am missing. Maybe if someone provided a step by step… making sure all the libraries and code are working as is. Did anyone have to modify anything to make them work??
THank you.

The Wiki has described each step in detail, and the end result is Light up your Round Display.
Which specific step did you have a problem with when you followed the steps in the Wiki?

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]

I am not sure why the editor crossed out some of the lines above. Not on my original. Maybe some escape character snuck in!

I couldn’t find the reference of the screen controller and the touch controller.

Could Seeed provide them with the corresponding data sheets?

Thank you!

Hello,
To solve this problem, you can check if the LVGL library version is between 8.3.4 and 8.3.7. I was able to compile with esp32C3 while using 8.3.7 LGVL library.
Note: LVGL library can be downloaded directly from Arudino IDE.

Thank you! The hardware test compiled! Now I am waiting for the Round Display to arrive. It should be here before week is out. It is being handed over to USPS now.

Can I ask a question regarding reTerminal E10-1 (bridge)? I finally found a M.2 SATA III (could not find any SATA II) and it works but after formatting and mounting, I have no permission to use it. I am hoping chmod will fix it. But the real question is the battery power. Installed two that match the specs (Flat tops) and charged the batteries before installing. Should I be able to power up the reTerminal via the E10-1 batteries? If so, it is not working. The 12V adapter powers both the bridge and the reTerminal but not the batteries?

Reference for the M.2 SSD: TEAMGROUP MS30 512GB with SLC Cache 3D NAND TLC M.2 2280 SATA III 6Gb/s Internal Solid State Drive SSD (Read/Write Speed up to 530/430 MB/s) Compatible with Laptop & PC Desktop TM8PS7512G0C101

I remembered also that I did have some trouble or failure with installing/preparing the E10-1.
Are you able to answer or help with this or pass it to someone else?
reTerminal E10-1 instillation failed - Products & Technology - Seeed Forum (seeedstudio.com)

I tried to install/prepare the E10-1 for Audio and it failed. Probably because of the failed overlays.
Are the overlays supposed to work with “Bullseye” AND “Buster”? The install failed on “Bullseye”
Thank you!

For those looking for the datasheets of the screen and touch controllers, see 240x240 Round IPS TFT LCD Display 1.28" Capactive Touch Circle Screen at Buy Display.

Notable differences are:

  • Screen GC9A01A SPI controller: SPI MISO is not implemented on the screen, so reading a pixel is not possible.
  • Touch CST816S I²C controller: automatic low power mode is on, direct read gives 5 bytes for number, event, x, 0, y.

Enjoy!

1 Like

I wish someone could explain exactly what is going on… it seems with all this arduino stuff
its loading up a bunch of extra libraries and changing a bunch of variables and poof its supposed to work but no one can explain what the heck is going on… it is getting worse by the day

maybe one day ChatGPT will write code for us…

LOL, It already is for Seeed Studio Xiao devices.
HTH
GL :slight_smile: PJ :wink:

That is the exact reason why I asked for the data-sheets, found them somewhere else and read them.

So I coded a compact driver I could use without loading and installing half a dozen libraries.

WoW, that is a task for sure. Care to show your code ?
Perhaps it will help answer the questions some users have and add to the community.
unless it’s proprietary :smiley:
AFAIK, You can get more verbose compiler output to Show what is getting loaded and added to the build so maybe look to turn that on?
HTH
GL :slight_smile:

I took three files from GitHub - Bodmer/TFT_eSPI: Arduino and PlatformIO IDE compatible TFT library optimised for the Raspberry Pi Pico (RP2040), STM32, ESP8266 and ESP32 that supports different driver chips and checked them against the example provided by Buy Displays:

  • GC9A01_Defines.h,
  • GC9A01_Init.h to be called first; and
  • GC9A01_Rotation.h to set the coordinates according to the orientation

To set a point at (x1, y1) with colour

x2 = x1;
y2 = y1;

_writeCommand8(TFT_CASET);
_writeData16(x1);
_writeData16(x2);

_writeCommand8(TFT_PASET);
_writeData16(y1);
_writeData16(y2);

_writeCommand8(TFT_RAMWR);
_writeData16(colour);

That’s it!

reivilo, Slick, :grinning: :+1:
TNX.
GL :wink: