Если вы использовали режим глубокого сна на ESP8266/ESP32 всех мастей, то не могли не заметить дрифт реальной длительности сна. Дело в том, что внутренний источник тактирования является весьма неточным, за несколько часов разбег может составить от десятков секунд до нескольких минут! Что же делать? Использовать внешние часы реального времени? Хороший вариант, но добавит собственное потребление к потреблению МК во сне. Благо ESP32 имеют возможность использовать для внутренних RTC внешний кварц на 32КГц. Сейчас идет эксперимент по проверке точности длительности глубокого сна на ESP32-C3 с внешним кварцем на 32768 Гц. Пока результаты обнадеживающие, хотя точность все-таки +- одна-две секунды. Проблема этого решения состоит в том, что чтобы использовать иной источник тактирования RTC, необходимо перекомпилировать поддержку Arduino с измененными параметрами, сменить источник "на ходу" не получается. Этой проблемы нет при непосредственном использовании ESP-IDF. Результаты эксперимента будут обнародованы через пару дней...