diff --git a/gauge.py b/gauge.py index f382b78..254a958 100644 --- a/gauge.py +++ b/gauge.py @@ -1128,6 +1128,7 @@ def main(): ota.mark_ok() except: pass + gc.collect() last_heartbeat = utime.ticks_ms() @@ -1136,6 +1137,7 @@ def main(): now = utime.ticks_ms() check_wifi() + gc.collect() if not check_mqtt(): utime.sleep_ms(1000) @@ -1145,6 +1147,7 @@ def main(): service_discovery() arduino_recv() _flush_backlight_state() + gc.collect() # Periodic re-home for i in range(num_gauges): @@ -1157,6 +1160,8 @@ def main(): info(f"Heartbeat: {gauge_targets}") publish_state(client_ref) last_heartbeat = now + gc.collect() + info(f"Heap free: {gc.mem_free()} bytes") utime.sleep_ms(10) @@ -1164,6 +1169,7 @@ def main(): import sys sys.print_exception(e) log_err(f"Main loop error: {e} — continuing") + gc.collect() utime.sleep_ms(100)