From d99d1a84631fb3840132c492bc32fd9579740d1e Mon Sep 17 00:00:00 2001 From: Kevin O'Connor Date: Tue, 5 Mar 2024 21:32:36 -0500 Subject: [PATCH] mcu: Write a warning to the log if an incorrect mcu frequency is detected Signed-off-by: Kevin O'Connor --- klippy/mcu.py | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/klippy/mcu.py b/klippy/mcu.py index f9b547c94..afd0d75d8 100644 --- a/klippy/mcu.py +++ b/klippy/mcu.py @@ -588,6 +588,7 @@ class MCU: printer.register_event_handler("klippy:connect", self._connect) printer.register_event_handler("klippy:shutdown", self._shutdown) printer.register_event_handler("klippy:disconnect", self._disconnect) + printer.register_event_handler("klippy:ready", self._ready) # Serial callbacks def _handle_mcu_stats(self, params): count = params['count'] @@ -799,6 +800,19 @@ class MCU: self.register_response(self._handle_shutdown, 'shutdown') self.register_response(self._handle_shutdown, 'is_shutdown') self.register_response(self._handle_mcu_stats, 'stats') + def _ready(self): + if self.is_fileoutput(): + return + # Check that reported mcu frequency is in range + mcu_freq = self._mcu_freq + systime = self._reactor.monotonic() + get_clock = self._clocksync.get_clock + calc_freq = get_clock(systime + 1) - get_clock(systime) + mcu_freq_mhz = int(mcu_freq / 1000000. + 0.5) + calc_freq_mhz = int(calc_freq / 1000000. + 0.5) + if mcu_freq_mhz != calc_freq_mhz: + logging.warn("MCU '%s' configured for %dMhz but running at %dMhz!", + self._name, mcu_freq_mhz, calc_freq_mhz) # Config creation helpers def setup_pin(self, pin_type, pin_params): pcs = {'endstop': MCU_endstop,