Problem importing SLS UI into Lilygo T-Watch 2021

What do you want to achieve?

Import my SLS UI into the LilygoT-Watch 2021

What have you tried so far?

I exported my SLS UI in the folder structure provided in this post (Compile errors undefined reference to `ui_Screen1_screen_init - #9 by kisvegabor), opened a working LVGL examples from the Lilygo Twatch 2021 library, commented out all the LVGL objects, added #include “ui.h” and ui_init();
This is my code:

#include <Arduino.h>
#include <TWatch_hal.h>
#include “ui.h”

//“TWatch_config.h” needs to be configured in the library for the first time
// This project requires LVGL, please uncomment it

// lv_obj_t *count_label;
// uint32_t count = 0;
TWatchClass *twatch = nullptr;

/* static void event_handler(lv_event_t *e) {
lv_event_code_t code = lv_event_get_code(e);

if (code == LV_EVENT_CLICKED) {
lv_label_set_text_fmt(count_label, “Count:%d”, count++);
} else if (code == LV_EVENT_VALUE_CHANGED) {
} */

void setup() {
twatch = TWatchClass::getWatch();

Serial.println(“lvgl btn Demo (LVGL)”);

twatch->hal_auto_update(true, 0);

/* lv_obj_t *label;
lv_obj_t *btn1 = lv_btn_create(lv_scr_act());
lv_obj_add_event_cb(btn1, event_handler, LV_EVENT_ALL, NULL);
lv_obj_align(btn1, LV_ALIGN_CENTER, 0, -40);

label = lv_label_create(btn1);
lv_label_set_text(label, “Button”);

count_label = lv_label_create(lv_scr_act());
lv_label_set_text(count_label, “Count:0”);

lv_obj_t *btn2 = lv_btn_create(lv_scr_act());
lv_obj_add_event_cb(btn2, event_handler, LV_EVENT_ALL, NULL);
lv_obj_align(btn2, LV_ALIGN_CENTER, 0, 40);
lv_obj_add_flag(btn2, LV_OBJ_FLAG_CHECKABLE);
lv_obj_set_height(btn2, LV_SIZE_CONTENT);

label = lv_label_create(btn2);
lv_label_set_text(label, “Toggle”);
lv_obj_center(label); */



void loop() {}

When compiling I get a lot of error messages referring to all occurrencies of ‘lv_obj_t’ in the ui_helpers.h, ui.h, and ui_helpers.c files. Here I paste just a few of them but they are all similar.

c:\users\angel\documents\arduino\libraries\ui\src\ui_helpers.h:33:29: error: unknown type name ‘lv_obj_t’
void _ui_label_set_property(lv_obj_t * target, int id, const char * val);
c:\users\angel\documents\arduino\libraries\ui\src\ui_helpers.h:37:30: error: unknown type name ‘lv_obj_t’
void _ui_roller_set_property(lv_obj_t * target, int id, int val);
c:\users\angel\documents\arduino\libraries\ui\src\ui_helpers.h:41:30: error: unknown type name ‘lv_obj_t’
void _ui_slider_set_property(lv_obj_t * target, int id, int val);

I noticed that my ui.h file has the following code:

#if defined __has_include
#if __has_include(“lvgl.h”)
#include “lvgl.h”
#elif __has_include(“lvgl/lvgl.h”)
#include “lvgl/lvgl.h”
#include “lvgl.h”
#include “lvgl.h”

But if I use the “go to definition” function on the lvgl.h text I get “no definition available”, as if the Arduino wasn’t able to find the file, which I verified is present in my TWatch library.

Could this be the source of the problem?

the orange folder is where my sketch is
the green folder is where the ui folder is


  • SquareLine Studio version: latest
  • Operating system: win 11
  • Target hardware:

What name did you give your project? I had similar issues when I first named my project with a space between words. Remove all spaces. For example:
“My Project” needs to be “My_Project” for compiling without error.


@bcuervo, thanks for your answer! Yes I learned that very tricky piece about a week ago :slight_smile: I made sure there are no spaces!

so i have had this problem since i bought the watch its easier to use the twatch lvgl port it uses 7.1.1. version of LVGL use those syntax and everything will play nice

1 Like

@do_not_sleep thanks for your answer! Forgive my lack of experience: could I ask you to explain what you mean with “twatch lvgl port”?

And also with what you mean with using LVGL 7.1.1 version? Are you suggesting that I should NOT use the LVGL library that is part of the wider “T-watch 2021 library” on the Lilygo GitHub page?

Thanks a lot in advance!

@do_not_sleep, could you be so kind to provide the clarification I asked a while ago? If anybody else has a tip on the subject that would be greatly appreciate, as I am at a standstill… Angelo