Hi everyone!
I’m trying to get LVGL charts to work, sadly ESPHome does not have those integrated yet.
So what I’m doing is:
interval:
- interval: 30sec
then:
lambda: |-
draw_chart();
and in my test “chart.h” to draw random stuff between -2 and 6
static void draw_chart()
{
lv_obj_t * chart;
chart = lv_chart_create(lv_scr_act());
lv_obj_set_size(chart, 480, 150);
lv_obj_set_pos(chart, 0, 170);
lv_obj_set_style_bg_color(chart, lv_color_make(50, 50, 50), LV_PART_MAIN);
lv_obj_set_style_size(chart, 0, LV_PART_INDICATOR);
lv_chart_set_div_line_count(chart, 0, 0);
lv_chart_set_type(chart, LV_CHART_TYPE_LINE);
lv_chart_set_point_count(chart, 60);
lv_chart_set_update_mode(chart, LV_CHART_UPDATE_MODE_SHIFT);
lv_chart_set_range(chart, LV_CHART_AXIS_PRIMARY_X, 0, 60);
lv_chart_set_range(chart, LV_CHART_AXIS_PRIMARY_Y, -2, 6);
lv_chart_series_t * ser1;
ser1 = lv_chart_add_series(chart, lv_palette_main(LV_PALETTE_BLUE), LV_CHART_AXIS_PRIMARY_Y);
uint32_t i;
for(i = 0; i < 60; i++) {
lv_chart_set_next_value(chart, ser1, (int32_t)lv_rand(-2, 6));
}
}
and it works suprisingly well ![]()
(The button and switch is done through ESPHome’s LVGL)
The problem:
The longer I run this, the slower my ESP32 gets until it crashes and restarts.
See the loop time:
Any ideas what the problem is?

