I’ve tried, and I’ve probably mixed things up in menuconfig
I made a background and border colour to see what is inverted.
I recall I was desperate to make it work with SQ Line Studio, so I messed up the LVGL configuration in the menuconfig. I’m now completely disabling all LVGL setup themes, to be sure.
Doesn’t help. Moving forward.
Yes, I saw this func esp_lcd_panel_invert_color but I’m afraid it will invert everything, shifting even the right colors, like in the arc object.
Inverted so sure, but all of the colours =)
There is also a lower-level call panel_st7789_invert_color, which may also help.
Can’t call it directly, I’m not yet familiar with C enough
The workaround is to use WHITE for black in the background; it’s not a dealbreaker, but I can live with that. I’ll update the post as soon as I figure out the actual cause of this.
UPD2: Back to basics.
I used the example project again. It’s listed on this device’s WIKI – ESP32-C6-LCD-1.47 Demo.zip
- Set up the test project as described at the wiki.
- Set up SQ Line Studio to use LVGL version:
8.3.11 - Export UI in
main/ui - Modify
ui.hfile lvgl import#include "lvgl.h" - Modify
main.cimport adding#include "ui/ui.h"
Use this code as an example. Comment out other examples.
void app_main(void)
{
// Wireless_Init();
// Flash_Searching();
RGB_Init();
// RGB_Example();
SD_Init(); // SD must be initialized behind the LCD
LCD_Init();
BK_Light(50);
LVGL_Init(); // returns the screen object
/********************* Demo *********************/
// Lvgl_Example1();
// lv_demo_widgets();
// lv_demo_keypad_encoder();
// lv_demo_benchmark();
// lv_demo_stress();
// lv_demo_music();
int counter = 0;
ui_init();
while (1) {
// raise the task priority of LVGL and/or reduce the handler period can improve the performance
vTaskDelay(pdMS_TO_TICKS(10));
// The task running lv_timer_handler should have lower priority than that running `lv_tick_inc`
lv_timer_handler();
// Init SQ Line Studio elements
lv_arc_set_value(ui_Arc1, counter);
lv_label_set_text_fmt(ui_Label1, "%d", counter);
lv_label_set_text(ui_Label2, "CO2 ppm");
// Make up and down
if (counter == 2500) {
counter = 0;
} else {
counter++;
}
}
}
And all colours will be fine!
So there is something in my setup - that reversed the background colors.
Example repo: trianglesis/ESP32-C6-LCD-1.47-Test-LVGL · GitHub


