mirror of
https://github.com/MarekZegare4/MeshCore-Solo.git
synced 2026-08-04 03:06:12 +00:00
Reduced time drift from 60s/day to 7s/day for ESP32-based repeaters with power saving.
This commit is contained in:
@@ -154,10 +154,10 @@ void loop() {
|
|||||||
|
|
||||||
if (the_mesh.getNodePrefs()->powersaving_enabled && !the_mesh.hasPendingWork()) {
|
if (the_mesh.getNodePrefs()->powersaving_enabled && !the_mesh.hasPendingWork()) {
|
||||||
#if defined(NRF52_PLATFORM)
|
#if defined(NRF52_PLATFORM)
|
||||||
board.sleep(1800); // nrf ignores seconds param, sleeps whenever possible
|
board.sleep(0); // nrf ignores seconds param, sleeps whenever possible
|
||||||
#else
|
#else
|
||||||
if (the_mesh.millisHasNowPassed(POWERSAVING_FIRSTSLEEP_SECS * 1000)) { // To check if it is time to sleep
|
if (the_mesh.millisHasNowPassed(POWERSAVING_FIRSTSLEEP_SECS * 1000)) { // To check if it is time to sleep
|
||||||
board.sleep(1800); // Sleep. Wake up after 30 minutes or when receiving a LoRa packet
|
board.sleep(30); // Sleep. Wake up after a while or when receiving a LoRa packet
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -73,18 +73,6 @@ public:
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Use more accurate clock in sleep
|
|
||||||
#if SOC_RTC_SLOW_CLK_SUPPORT_RC_FAST_D256
|
|
||||||
if (rtc_clk_slow_src_get() != SOC_RTC_SLOW_CLK_SRC_RC_FAST) {
|
|
||||||
|
|
||||||
// Switch slow clock source to RC_FAST / 256 (~31.25 kHz)
|
|
||||||
rtc_clk_slow_src_set(SOC_RTC_SLOW_CLK_SRC_RC_FAST);
|
|
||||||
|
|
||||||
// Calibrate slow clock
|
|
||||||
esp_clk_slow_boot_cal(1024);
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
// Set GPIO wakeup
|
// Set GPIO wakeup
|
||||||
gpio_num_t wakeupPin = (gpio_num_t)getIRQGpio();
|
gpio_num_t wakeupPin = (gpio_num_t)getIRQGpio();
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user