Meter widget problem over 213px

Description

Problem with meter widget when dimension is bigger than 213 px. I’m preparing a car RPM meter. If I set the width and height to a value bigger than 213px the initial rendering of the meter stop, the interface freeze while the main program continue running. The meter is displayed correctly up to 213px. Same problem with a meter displaying an analog watch. Both meters are centered in the screen.

What MCU/Processor/Board and compiler are you using?

ESP32 on WT32-SC01 v3.2, 480x320px ST7796S display

What LVGL version are you using?

V8.3.1

What do you want to achieve?

Obtain a full height meter

What have you tried so far?

Code to reproduce

Add a code snippet which can run in the simulator. It should contain only the relevant code that compiles without errors when separated from your main code base.

The code block(s) should be formatted like:

  metercar = lv_meter_create(wp);
  lv_obj_center(metercar);
  lv_obj_set_size(metercar, 215, 215);

  /*Remove the circle from the middle*/
  lv_obj_remove_style(metercar, NULL, LV_PART_INDICATOR);

  /*Add a scale first*/
  lv_meter_scale_t *scale = lv_meter_add_scale(metercar);
  lv_meter_set_scale_ticks(metercar, scale, 41, 2, 10, lv_palette_main(LV_PALETTE_GREY));
  lv_meter_set_scale_major_ticks(metercar, scale, 10, 4, 15, lv_color_black(), 10);
  lv_meter_set_scale_range(metercar, scale, 0, 80, 270, 90);

  /*Add a three arc indicator*/
  indic1 = lv_meter_add_arc(metercar, scale, 3, lv_palette_main(LV_PALETTE_BLUE), 0);
  lv_meter_set_indicator_start_value(metercar, indic1, 0);
  lv_meter_set_indicator_end_value(metercar, indic1, 10);

  /*Make the tick lines blue at the start of the scale*/
  indic1 = lv_meter_add_scale_lines(metercar, scale, lv_palette_main(LV_PALETTE_BLUE), lv_palette_main(LV_PALETTE_BLUE), false, 0);
  lv_meter_set_indicator_start_value(metercar, indic1, 0);
  lv_meter_set_indicator_end_value(metercar, indic1, 10);

  /*Add a red arc to the end*/
  indic1 = lv_meter_add_arc(metercar, scale, 10, lv_palette_main(LV_PALETTE_RED), 0);
  lv_meter_set_indicator_start_value(metercar, indic1, 60);
  lv_meter_set_indicator_end_value(metercar, indic1, 80);

  /*Make the tick lines red at the end of the scale*/
  indic1 = lv_meter_add_scale_lines(metercar, scale, lv_palette_main(LV_PALETTE_RED), lv_palette_main(LV_PALETTE_RED), false, 0);
  lv_meter_set_indicator_start_value(metercar, indic1, 60);
  lv_meter_set_indicator_end_value(metercar, indic1, 80);

  indic2 = lv_meter_add_arc(metercar, scale, 10, lv_palette_main(LV_PALETTE_YELLOW), 0);
  lv_meter_set_indicator_start_value(metercar, indic2, 0);

Screenshot and/or video

Meter at 200px w/h - working


meter at 215px w/h - only start of render menu icon and stop

SOLVED!!
I increased the alloc memory

#  define LV_MEM_SIZE (64U * 1024U)          /*[bytes]*/

now it works