I have a custom board using a nrf5340 and a st7789 display using spi and mipi_dbi. It's I have it working on a sample project and printing "Hello World" I was using nrfConnect (Nordic’s VS Code Addin) 2.9.1 which used lvgl 8.*. When I moved the code (which is really simple) to 3.0.1 which is lvgl 9.3.0 and the screen shows “Hello World” three times starting in the center (where I expect it to be) and then twice below it.
int screen_helloworld_init()
{
LOG_DBG("Creating home screen");
scr_home = lv_obj_create(NULL);
lv_screen_load_anim(scr_home, LV_SCR_LOAD_ANIM_NONE, 0, 0, true);
lv_obj_t *hello_world_label;
lv_obj_set_style_bg_color(lv_scr_act(), lv_palette_main(LV_PALETTE_GREEN), LV_PART_MAIN);
lv_obj_set_style_text_color(lv_scr_act(), lv_color_white(), LV_PART_MAIN);
hello_world_label = lv_label_create(lv_scr_act());
lv_label_set_text(hello_world_label, "Hello World!");
lv_obj_align(hello_world_label, LV_ALIGN_CENTER, 0, 0);
lv_obj_set_style_text_font(hello_world_label, &lv_font_montserrat_16, LV_PART_MAIN);
return 0;
}
I have this running in the main while loop:
lv_timer_handler();
In my dts I have:
/ {
mipi_dbi {
compatible = "zephyr,mipi-dbi-spi";
spi-dev = <&spi4>;
dc-gpios = <&gpio0 19 GPIO_ACTIVE_HIGH>;
reset-gpios = <&gpio0 23 GPIO_ACTIVE_LOW>;
write-only;
#address-cells = <1>;
#size-cells = <0>;
st7789v_st7789v_tl019fqv01: st7789v@0 {
compatible = "sitronix,st7789v";
mipi-max-frequency = <20000000>;
reg = <0>;
width = <240>;
height = <280>;
x-offset = <0>;
y-offset = <20>;
vcom = <0x19>;
gctrl = <0x35>;
vrhs = <0x12>;
vdvs = <0x20>;
mdac = <0x00>;
gamma = <0x01>;
colmod = <0x05>;
lcm = <0x2c>;
porch-param = [0c 0c 00 33 33];
cmd2en-param = [5a 69 02 01];
pwctrl1-param = [a4 a1];
pvgam-param = [D0 04 0D 11 13 2B 3F 54 4C 18 0D 0B 1F 23];
nvgam-param = [D0 04 0C 11 13 2C 3F 44 51 2F 1F 1F 20 23];
ram-param = [00 F0];
rgb-param = [CD 08 14];
//mipi-mode = <MIPI_DBI_MODE_SPI_4WIRE>;
mipi-mode = "MIPI_DBI_MODE_SPI_4WIRE";
};
};
};
I'm curious if anybody else experienced something like this.

