From 2b31e56e4c874eb5569c06d02f2bc2786e21db78 Mon Sep 17 00:00:00 2001 From: pelgraine <140762863+pelgraine@users.noreply.github.com> Date: Sun, 12 Jul 2026 20:07:18 +1000 Subject: [PATCH] T-Watch changes: MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit CPUPowerManager.h — S3 variant, CPU_FREQ_BOOST capped to 80 MHz. main.cpp — locked-loop throttle extended to the watches via the two MECK_TWATCH guard additions. --- examples/companion_radio/main.cpp | 4 ++-- variants/lilygo_twatch_s3/CPUPowerManager.h | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/examples/companion_radio/main.cpp b/examples/companion_radio/main.cpp index b17e1ed7..115f3104 100644 --- a/examples/companion_radio/main.cpp +++ b/examples/companion_radio/main.cpp @@ -3083,7 +3083,7 @@ void loop() { // is active. The mesh radio has its own FIFO so packets are buffered; // 50 ms yield means the loop still runs 20×/sec which is more than enough // to drain the radio FIFO before overflow. -#if defined(LilyGo_T5S3_EPaper_Pro) || defined(LilyGo_TDeck_Pro) +#if defined(LilyGo_T5S3_EPaper_Pro) || defined(LilyGo_TDeck_Pro) || defined(MECK_TWATCH) { static bool wasLocked = false; bool nowLocked = ui_task.isLocked(); @@ -4516,7 +4516,7 @@ void loop() { // The RTOS idle task executes WFI (wait-for-interrupt) during delay(), // dramatically reducing CPU power draw. 50 ms gives 20 loop cycles/sec // which is ample for LoRa packet reception (radio has hardware FIFO). -#if defined(LilyGo_T5S3_EPaper_Pro) || defined(LilyGo_TDeck_Pro) +#if defined(LilyGo_T5S3_EPaper_Pro) || defined(LilyGo_TDeck_Pro) || defined(MECK_TWATCH) if (ui_task.isLocked()) { delay(50); } diff --git a/variants/lilygo_twatch_s3/CPUPowerManager.h b/variants/lilygo_twatch_s3/CPUPowerManager.h index 444a90bd..4a24b715 100644 --- a/variants/lilygo_twatch_s3/CPUPowerManager.h +++ b/variants/lilygo_twatch_s3/CPUPowerManager.h @@ -20,7 +20,7 @@ #endif #ifndef CPU_FREQ_BOOST -#define CPU_FREQ_BOOST 240 // MHz — heavy processing +#define CPU_FREQ_BOOST 80 // MHz -- S3: no map screen, so cap boost to idle to save power #endif #ifndef CPU_FREQ_LOW_POWER