Ошибки системы, производительности и обслуживания
На этой странице собраны вопросы, связанные с тайм-аутом связи, ошибками таймера MCU, производительностью управляющего компьютера, прошивкой и запуском службы Klipper.
Проблема тайм-аута при возврате в исходное положение
Сообщение об ошибке: Во время возврата в исходное положение появляется Communication timeout during homing, Error during homing xxx. Часто встречается в сценариях возврата по оси Z с несколькими MCU.
Распространенные причины:
- Высокая нагрузка на управляющий компьютер, одновременная работа KlipperScreen, видеопотока с камеры и т. д.
- Одновременное движение нескольких осей во время возврата, сильные токи драйверов наводятся на линии связи CAN/USB, вызывая прерывание связи.
- Нестабильный ответ от нескольких MCU.
- Некачественные линии связи CAN/USB или неправильная прокладка.
Методы решения:
Перед перекладкой линий CAN/USB, проверкой экранирования или заземления полностью выключите принтер и отключите источник питания. Не изменяйте самостоятельно заземляющие провода питания, сетевые соединения или внутреннюю структуру блока питания.
- Сначала исключите электромагнитные помехи: проверьте, проложены ли линии CAN/USB отдельно от моторных и нагревательных проводов, обратитесь к шагам по устранению помех в Настройка сети CAN и поиск ID.
- Попробуйте отрегулировать параметр тайм-аута
TRSYNC_TIMEOUTили временно отключите KlipperScreen, подробнее см. в Проблема тайм-аута при возврате. - Проверьте исправность заземления машины и заземления экрана.
MCU 'mcu' shutdown: Stepper too far in past
Сообщение об ошибке: Событие шагового двигателя, которое Klipper планировал отправить на MCU, уже отстало от текущего времени, MCU не может выполнить эти команды движения в запланированное время, принтер переходит в состояние shutdown.
Причина ошибки: Обычно это не связано с какой-то одной фиксированной настройкой, а является результатом того, что планирование движения на стороне хоста, вывод шагов на MCU или планирование связи не успевают обработать. Высокая нагрузка на управляющий компьютер, слишком высокая скорость/ускорение печати, слишком высокое микрошаговое разрешение, задержка связи с несколькими MCU, плохое качество связи USB/CAN, макросы или G-код, генерирующие большое количество команд движения за короткое время — все это может вызвать проблему.
Типичный сценарий: При выполнении многоточечного измерения сетки, если в [bed_mesh] установлено слишком большое probe_count и одновременно настроено высокое mesh_pps, может генерироваться слишком плотная сетка данных, что увеличивает нагрузку на вычисления и планирование движения на управляющем компьютере. Это лишь один из распространенных сценариев; даже без измерения сетки другие ситуации, приводящие к повышению нагрузки на систему или задержке связи, могут вызвать Stepper too far in past.
Сценарий зависания после возобновления печати: Ошибка также может возникнуть после PAUSE / RESUME, восстановления после обрыва нити или после паузы с возобновлением. Типичное логовое поведение: после возобновления buffer_time в строке Stats падает примерно с 1s до 0.2s, sd_pos почти не растет (прогресс печати застопорился), но sysload не высокий и нет отключения MCU. Это указывает на то, что после возобновления команды движения не смогли непрерывно заполнять буфер шагов, принтер "запустился, но почти не двигался" и перешел в shutdown. При диагностике сосредоточьтесь на проверке того, не отправляет ли макрос возобновления/восстановления (resume_gcode, start_gcode) аномально большие сегменты перемещения или ретракта в момент возобновления, и не было ли уже до возобновления ретрансляций связи (bytes_retransmit растет).
Методы решения:
- Сначала просмотрите строки
Statsперед ошибкой вklippy.log, чтобы проверить, есть ли одновременно высокая загрузка ЦП,bytes_retransmit,bytes_invalid,Timer too close, отключение MCU или аномалии очереди. - Временно отключите видеопоток с камеры, KlipperScreen, плагины удаленного управления и другие службы с высоким потреблением ресурсов, чтобы снизить нагрузку на управляющий компьютер, и повторите тест.
- Снизьте скорость печати, ускорение и микрошаговое разрешение, наблюдайте, исчезла ли ошибка.
- Если ошибка возникает в процессе многоточечного измерения сетки, уменьшите
probe_countв[bed_mesh], например, до7,7или9,9. - Если настроено высокое
mesh_pps, уменьшите или удалите эту настройку, например, установитеmesh_pps: 2,2. - Проверьте качество связи USB/CAN; при использовании CAN убедитесь в длине очереди, наличии оконечных резисторов, правильности распиновки, питании и скорости CAN в прошивке.
- Проверьте макросы или G-код, выполнявшиеся перед возникновением ошибки, избегайте циклов макросов, слишком плотных коротких сегментов или аномальных скриптов, отправляющих большое количество команд движения за короткое время.
Соответствующие справочные материалы по конфигурации: Введение в макросы, Часто используемые отладочные директивы.
MCU 'mcu' shutdown: Timer too close
Сообщение об ошибке: Таймер MCU слишком близок, что приводит к тайм-ауту системы.
Причина ошибки: Слишком высокая нагрузка на обработку на стороне нижнего контроллера, тайм-аут ответа от управляющего компьютера, слишком высокая скорость печати, слишком высокое микрошаговое разрешение, помехи синхронизации системного времени или помехи на линии связи MCU — все это может вызвать проблему.
Недавние распространенные сценарии:
- Возобновление печати после ожидания в макросах
M600,PAUSE,RESUME, обнаружения обрыва нити или смены нити, после чего следуетTimer too close. - Участие платы инструмента EDDY / TAP / CAN в возврате Z,
Z_TILT_ADJUST,QUAD_GANTRY_LEVELили измерении сетки, при этом в логе одновременно появляются ретрансляция CAN, аномальные показания I2C или пик нагрузки на управляющем компьютере. - Одновременная работа нескольких головок, нескольких узлов CAN или низкопроизводительного управляющего компьютера с камерой, KlipperScreen, плагинами удаленного управления, что приводит к недостаточному запасу по планированию.
Методы решения:
- Уменьшите микрошаговое разрешение шаговых двигателей, чтобы снизить нагрузку на обработку импульсов MCU.
- Уменьшите скорость и ускорение печати, наблюдайте, исчезла ли проблема.
- Проверьте нагрузку на управляющий компьютер, питание и качество связи USB/CAN.
- При отключенном питании проверьте, не проложена ли линия связи между MCU и управляющим компьютером рядом с моторными, нагревательными проводами, проводами стола или силовыми кабелями. При необходимости переложите линию или замените ее на экранированную.
- При проверке заземления машины проверяйте только заводские точки заземления и состояние розетки, не разбирайте блок питания и не изменяйте сетевую землю самостоятельно.
- Если проблема возникает на этапе возврата, обратитесь к Проблема тайм-аута при возврате.
- Если возникает после
M600или восстановления после обрыва нити, проверьте, не повторяется лиPAUSEв макросе, не срабатывает ли датчик обрыва нити ложно во время смены, совпадают ли именаSAVE_GCODE_STATE/RESTORE_GCODE_STATE. - Если возникает при EDDY TAP, наклоне Z или выравнивании портала, сначала обратитесь к Методы отладки режима EDDY TAP.
- Если проблема сохраняется, рассмотрите перепрошивку системы управляющего компьютера или прошивки.
Соответствующие справочные материалы по конфигурации: Часто используемые отладочные директивы, Руководство по возврату и калибровке направления.
MCU shutdown: Missed scheduling of next digital out event
Сообщение об ошибке: MCU 'xxx' shutdown: Missed scheduling of next digital out event.
Причина ошибки: После того как управляющий компьютер Klipper включает цифровые выходы, такие как нагреватели, вентиляторы, MCU должен своевременно получать последующие команды планирования и подтверждения. Если нагрузка на управляющий компьютер слишком высока, есть задержки планирования системы, нестабильна связь USB/CAN или аномальна очередь шины CAN, MCU не получает вовремя следующее событие цифрового выхода и переходит в состояние shutdown.
Эта ошибка связана с планированием выходов нагревателей. Не пытайтесь обойти ошибку, отключая защиту по температуре, verify_heater или удаляя конфигурации безопасности. Сначала проверьте нагрузку на управляющий компьютер и качество связи.
Методы решения:
- Сначала просмотрите строки
Statsперед этой ошибкой вklippy.log, чтобы проверить, есть ли одновременноbytes_retransmit,bytes_invalid,Timer too closeили записи об отключении MCU. - Снизьте нагрузку на управляющий компьютер, временно отключив видеопоток с камеры, KlipperScreen, плагины удаленного управления или другие службы с высоким потреблением ресурсов.
- Проверьте качество связи USB/CAN; при использовании CAN убедитесь в длине очереди CAN0, наличии оконечных резисторов, правильности распиновки, питании и скорости CAN в прошивке.
- Снизьте скорость печати, ускорение и микрошаговое разрешение, наблюдайте, исчезла ли проблема.
- Если ошибка возникает только во время нагрева, одновременно проверьте нагрузку на стол, хотэнд, вентиляторы и источник питания; не разбирайте блок питания и не проверяйте высоковольтные соединения стола самостоятельно.
- Если проблема возникает на плате инструмента CAN, продолжите обработку согласно Устранение ошибок CAN.
Соответствующие справочные материалы по конфигурации: Часто используемые отладочные директивы, Сеть CAN и поиск ID.
Rescheduled timer in the past
Сообщение об ошибке: В логе появляется Rescheduled timer in the past или аналогичное предупреждение.
Причина ошибки: Проблемы с системными часами управляющего компьютера или слишком высокая загрузка ЦП, из-за чего фактическое время выполнения задачи по таймеру отстает от запланированного.
Методы решения:
- Если включена синхронизация NTP, временно отключите ее для теста.
- Снизьте нагрузку от других служб на управляющем компьютере, например, закройте ненужные веб-интерфейсы, видеопотоки с камер и т. д.
- При работе на виртуальной машине рассмотрите переход на физическую машину или использование более стабильного источника тактов.
- Проверьте загрузку ЦП управляющего компьютера: используйте
htop, чтобы проверить, нет ли аномального потребления ЦП процессомklippy. Соответствующая конфигурация: Общие команды отладки.
Завершение работы MCU 'mcu': Переполнение очереди перемещений
Сообщение об ошибке: MCU 'mcu' shutdown: Move queue overflow.
Причина ошибки: Очередь перемещений MCU переполнена, хост не успевает синхронизировать планирование движения и состояние с MCU. Обычно возникает при недостаточной производительности хоста, большом количестве мелких перемещений за короткое время, несоответствии версий Klipper на хосте и прошивки MCU, или при использовании кастомного Klipper от производителя, который добавляет в каждую команду перемещения блокирующую логику, такую как синхронная запись на диск или восстановление после сбоя питания.
Типичные признаки для диагностики:
- В файле
klippy.logбольшая разница в базовой версии междуGit versionиLoaded MCU 'xxx' ... version. - В логах присутствуют
dirty, сторонние файлыklippy/extras, кастомное восстановление после сбоя питания от производителя или неофициальный Klipper. - Один и тот же G-code файл вылетает в похожем месте, а модель содержит множество коротких сегментов, плотные поддерживающие структуры, спиральный Z-hop или сложные траектории.
- Низкопроизводительный хост одновременно запускает камеру, экран, удаленное управление или другие ресурсоемкие сервисы.
Методы решения:
- Просмотрите полный лог
klippy.log, чтобы сначала проверить, нет ли более ранних ошибокTimer too close, потери связи по CAN,bytes_invalidили ошибок температуры/TMC. - После обновления Klipper перекомпилируйте и перепрошейте прошивку всех MCU, убедившись, что версии прошивки хоста, основной платы и плат инструментов совпадают.
- Временно отключите поток с камеры, KlipperScreen, плагины удаленного управления и другие ресурсоемкие сервисы, затем проведите повторное тестирование.
- Уменьшите скорость печати, ускорение, микрошаг драйвера или в слайсере снизьте точность кривых, сложность поддержек и плотность коротких сегментов.
- Если используется кастомное восстановление после сбоя питания от производителя, автоматическая запись высоты или сторонние плагины, сначала протестируйте с оригинальным Klipper или отключив соответствующие функции; не рекомендуется изменять исходный код Klipper для обычных пользователей как стандартную процедуру.
- Если проблема возникает только с определенным G-code файлом, переслайсите его и проверьте, не генерирует ли слайсер аномально плотные траектории.
Соответствующая конфигурация: Общие команды отладки, Рекомендации по аппроксимации дуг.
Внутренняя ошибка stepcompress / syncemitter / flush_handler
Сообщение об ошибке: stepper.error: Internal error in stepcompress, stepcompress ... Invalid sequence, Error in syncemitter 'extruder' step generation, Exception in flush_handler, Flush Handler error.
Причина ошибки: Внутреннее исключение в Klipper при генерации или сжатии шаговых импульсов. В недавних случаях из сообщества эта проблема часто проявляется совместно с высокоскоростным сканированием стола, плагинами зондов scanner / EDDY / Cartographer, input_shaper, сложными траекториями движения или сторонними модификациями Klipper. Она не обязательно вызвана только слайсером, и не следует основывать диагностику только на переслайсировании.
Методы решения:
- Сохраните полный
klippy.log, обращая особое внимание на Python Traceback, выполняемые команды и строкиStatsдо и после ошибки. - Если ошибка возникает при
BED_MESH_CALIBRATE,QUAD_GANTRY_LEVELили сканировании стола, сначала уменьшите скорость сканирования, количество точек, плотность интерполяции и параметры сканирования плагина. - Временно отключите сторонние scanner, автоматическую регулировку скорости, расширенное выравнивание, макропакеты или модификации производителя, протестируйте с оригинальным Klipper.
- После обновления Klipper перепрошейте прошивку всех MCU и убедитесь, что версии прошивки периферийных устройств соответствуют версии Klipper на хосте.
- Если одна и та же модель вызывает ошибку повторно, переслайсите и уменьшите плотность коротких сегментов; если после переслайсирования ошибка возникает случайным образом, продолжайте диагностику, проверяя нагрузку на хост, параметры движения и совместимость плагинов.
- Если принтер совершает аномальные движения, теряет шаги или есть риск столкновения, немедленно выполните экстренную остановку и верните оси в исходное положение, не пытайтесь продолжить задачу.
Соответствующая конфигурация: Ошибки движения, ограничителей и выравнивания, Сборник проблем EDDY.
Internal error on command
Сообщение об ошибке: Internal error on command:"XXX", Klipper переходит в состояние shutdown.
Распространенные причины:
- Макрос или G-code команда вызывают внутреннее исключение Python в Klipper.
- В конфигурационном файле есть ошибочные ссылки на макросы или синтаксические ошибки шаблона Jinja2.
- Несовместимость версии Klipper и формата конфигурационных файлов.
- Имя G-code файла содержит специальные символы, вызывающие ошибку кодировки.
- Ошибки
stepcompress,syncemitterилиflush_handlerпрерывают выполнение команды.
Методы решения:
- Просмотрите в
klippy.logполный Python Traceback, расположенный ниже сообщения Internal error. - Определите по Traceback, какой конфигурационный файл или макрос вызывает проблему.
- Распространенные причины включают синтаксические ошибки шаблона Jinja2 в
[gcode_macro], отсутствие конфигурации[respond], неверный путь[virtual_sdcard]. - Если ошибка связана с
SDCARD_PRINT_FILEи содержитascii codec can't decode, переименуйте G-code файл, используя только латинские буквы, цифры, символы подчеркивания или дефис. - Если в Traceback присутствуют
stepcompress,syncemitterилиflush_handler, продолжите диагностику согласно разделу Внутренняя ошибка stepcompress / syncemitter / flush_handler.
Соответствующая конфигурация: Введение в макросы, Инструкция по изменению конфигурации.
Unable to open file / SD busy
Сообщение об ошибке: При попытке печати файла появляется Unable to open file, Unable to get file list, SD busy, SD write not supported, SDCARD_RESET_FILE cannot be run from the sdcard.
Распространенные причины:
- G-code файл не существует, его имя было изменено или загрузка не завершена.
- Путь
[virtual_sdcard] pathуказывает на неверный каталог. - Аномальные права доступа к файлу, пользователь Klipper не может его прочитать.
- Имя файла содержит специальные символы, вызывающие проблемы с обработкой пути в некоторых веб-интерфейсах или системе.
- Во время печати или чтения файла была выполнена команда открытия, выбора, сброса или записи виртуальной SD-карты.
- В качестве
[virtual_sdcard] pathошибочно указан каталог исходного кода Klipper, конфигурационный каталог или другой не-G-code каталог.
Методы решения:
- Повторно загрузите G-code файл через веб-интерфейс и убедитесь, что имя файла совпадает с именем в команде печати.
- Проверьте, указывает ли
[virtual_sdcard] pathна фактический каталог хранения G-code. - Проверьте права доступа к каталогу:
ls -la ~/printer_data/gcodes/. - Переименуйте файл, используя только латинские буквы, цифры, символы подчеркивания или дефис, затем протестируйте снова.
- Если появляется
SD busy, сначала приостановите или отмените текущую печать, убедитесь, что никакой другой макрос не работает с файлом виртуальной SD-карты. - Не устанавливайте
~/klipper,~/printer_data/configили системные каталоги в качестве каталога хранения G-code.
Соответствующая конфигурация: Инструкция по изменению конфигурации.
Контрольная сумма MCU не совпадает с конфигурацией / Невозможно обновить конфигурацию MCU
Сообщение об ошибке: MCU 'xxx' CRC does not match config, Can not update MCU 'xxx' config as it is shutdown, Unable to configure MCU 'xxx'.
Ключевой момент диагностики: Can not update MCU 'xxx' config as it is shutdown обычно не является первопричиной, а является последующей ошибкой, которая появляется, когда Klipper пытается повторно подключиться или перенастроить MCU, который уже находится в состоянии shutdown/error. При диагностике не смотрите только на последнюю строку лога, прокрутите вверх, чтобы найти первую реальную ошибку.
Методы решения:
- Выполните
FIRMWARE_RESTART, при необходимости полностью обесточьте принтер на 10 секунд, затем снова включите питание. - Просмотрите в
klippy.logпервую появившуюся ошибкуshutdown,Timer too close,Lost communication,Verify heater, TMC или температуры, и сначала устраните первопричину shutdown. - Для машин с несколькими MCU проверьте USB ID или CAN UUID для каждого
[mcu],[mcu xxx]. - Если вы недавно обновили Klipper, перекомпилируйте и перепрошейте прошивку всех MCU.
- Если используется
[mcu host], проверьте,正常运行 ли службаklipper-mcu, затем перезапустите Klipper. - Если используется предустановленная или кастомная система Klipper, убедитесь, что логи полные, а версии Klipper и прошивки MCU совпадают по источнику.
Завершение работы MCU 'xxx': Command request
Сообщение об ошибке: MCU 'xxx' shutdown: Command request.
Распространенные причины:
- Версия прошивки CAN-инструментальной платы не соответствует версии Klipper на хост-компьютере; хост отправляет команды, не поддерживаемые этой прошивкой.
- После обновления Klipper или системы не была перекомпилирована и перепрошита прошивка инструментальной платы.
- Настроены функции, не поддерживаемые компиляцией прошивки данного MCU (например, настроен EDDY/ADXL без включения I2C).
Методы решения:
- Проверьте в
klippy.logзначенияLoaded MCU 'xxx' ... versionиGit version, чтобы убедиться в соответствии версий. - Перекомпилируйте и перепрошейте прошивку MCU, на который указывает ошибка; способ перепрошивки смотрите в документации соответствующей инструментальной платы.
- Для машин с несколькими MCU убедитесь, что все прошивки MCU скомпилированы за один раз.
- После перепрошивки выполните
FIRMWARE_RESTARTи убедитесь, что ошибка больше не появляется.
Общая проверка версий: MCU Protocol error
Shutdown due to M112 command / webhooks request
Сообщение об ошибке: Shutdown due to M112 command или Shutdown due to webhooks request.
Методы решения:
- Проверьте, не была ли нажата аварийная остановка человеком; если да, после устранения рисков выполните
FIRMWARE_RESTART. - Найдите в пользовательских макросах
M112,action_emergency_stop,emergency_stop. - Проверьте, не вызвал ли случайно аварийную остановку фронтенд, плагин удаленного управления или скрипт автоматизации.
Недостаточная производительность хост-компьютера, приводящая к заиканиям при печати
Сообщение об ошибке: Явных ошибок нет, но в процессе печати возникают прерывистые паузы, прерывистая экструзия.
Методы решения:
- Уменьшите скорость и ускорение печати.
- Отключите ненужные веб-сервисы, потоки камер и т.д. на хост-компьютере.
- Уменьшите
probe_countиmesh_ppsв[bed_mesh]. - Если слайсер выводит дуги
G2/G3, обратитесь к Рекомендации по аппроксимации дуг для настройки или отключения. - Если производительности хост-компьютера действительно недостаточно, рассмотрите замену на более производительный.
Аварийный перезапуск хост-компьютера / сбой системы
Сообщение об ошибке: Во время печати Klipper/Moonraker внезапно отключается, klippy.log внезапно прерывается без явной причины shutdown; после переподключения Mainsail/Fluidd обнаруживается, что хост-компьютер или Klipper был перезапущен.
Распространенные причины:
- Недостаточное питание хост-компьютера; во время печати изменение нагрузки USB, камеры, экрана или вентилятора приводит к отключению питания.
- Аномалии чтения/записи системного диска, SD-карты или eMMC; внезапное прерывание логов или повреждение файлов.
- Перегрев CPU хост-компьютера, приводящий к защитному снижению частоты, зависанию или перезагрузке.
- Обратное питание по USB или аномалии в цепи питания периферии, приводящие к взаимному влиянию материнской платы, экрана или хост-компьютера.
- Сторонние сервисы, потоки камер, AI-плагины или слишком много веб-соединений потребляют ресурсы.
Методы диагностики:
Перед проверкой проводов питания хост-компьютера, USB, экрана, вентилятора или укладкой кабелей полностью выключите принтер и отсоедините его от источника питания. Не разбирайте блок питания и не изменяйте проводку сети переменного тока.
- Сначала проверьте
klippy.log,moonraker.logи системные логи, чтобы определить, произошла ли ошибка в Klipper или перезагрузка всего хост-компьютера. - Проверьте спецификацию блока питания хост-компьютера; избегайте использования проводов с недостаточным током или заметным падением напряжения.
- Проверьте состояние здоровья системного диска; при необходимости замените на надежную SD-карту, eMMC или перепрошейте систему.
- Проверьте охлаждение хост-компьютера; убедитесь, что вентилятор работает, радиатор прилегает, корпус вентилируется.
- Временно отключите поток камеры, KlipperScreen, плагины удаленного управления и другие высоконагруженные сервисы, затем выполните тестовую печать.
- Если подозревается обратное питание по USB, сначала замените на качественный готовый USB-кабель или используйте схему подключения с гальванической развязкой; обычным пользователям не следует самостоятельно переделывать проводку.
Подсказки по паузе, возобновлению и сохранению состояния
Сообщение об ошибке: Print already paused, Print is not paused, resume aborted, Unknown g-code state: PAUSE_STATE.
Распространенные причины:
- Повторное выполнение
PAUSEили выполнениеRESUMEпосле того, как печать уже была отменена. - Несовпадение имен в
SAVE_GCODE_STATE NAME=иRESTORE_GCODE_STATE NAME=в пользовательских макросах паузы/возобновления. - Дублирование или логический конфликт между сторонними пакетами макросов и макросами паузы/возобновления по умолчанию в Mainsail/Fluidd.
- После аварийной остановки,
FIRMWARE_RESTARTили ошибки Klipper исходное состояние паузы было потеряно.
Методы решения:
- Проверьте текущее состояние печати; не выполняйте
RESUME, если печать не была поставлена на паузу. - Проверьте, включен ли
[pause_resume], и не дублируются ли макросыPAUSE/RESUME/CANCEL_PRINT. - Проверьте, полностью ли совпадают имена в
SAVE_GCODE_STATEиRESTORE_GCODE_STATEв макросах. - После возникновения ошибки Klipper или аварийной остановки не рекомендуется продолжать печать; сначала устраните риски, затем начните заново.
Klipper перезапускается циклически (Klippy not connected мигает)
Сообщение об ошибке: В Mainsail/Fluidd периодически отображается Klippy not connected, Klipper постоянно автоматически перезапускается и каждый раз завершается в течение нескольких секунд. В логах может быть Klipper restarting too fast или каждый klippy.log очень короткий.
Методы диагностики:
- Сначала проверьте конец файла лога, чтобы определить причину последнего завершения:
tail -100 ~/printer_data/logs/klippy.log
- Если в конце лога Python Traceback, это указывает на сбой из-за ошибки разбора конфигурации или внутреннего исключения.
- Не делайте вывод о первопричине только на основе
Klipper restarting too fast; обычно это просто результат многократных неудачных попыток systemd перезапустить службу. Сначала обработайте первую реальную ошибку вklippy.log. - Если в конце лога отображается
MCU Protocol error,Unknown commandи т.д., это означает несоответствие версий прошивки; требуется перекомпилировать и перепрошить прошивку MCU. - Если лог очень короткий и не содержит явных ошибок, попробуйте использовать метод бинарного поиска с минимальной конфигурацией.
- Проверьте наличие циклических ссылок в include-файлах.
Unhandled exception during run
Сообщение об ошибке: Unhandled exception during run, фронтенд показывает Printer is shutdown, в логе присутствует Python Traceback.
Распространенные причины:
- Это не отдельная аппаратная неисправность, а общая ошибка после перехвата необработанного исключения в главном цикле Klipper. Истинную причину нужно искать в конкретной ошибке выше Traceback.
- Типичные источники: сбой чтения TMC UART (
Unable to read tmc uart 'stepper_x' register DRV_STATUS), прерывание связи CAN, ошибка времени выполнения макроса-шаблона, исключение стороннего модуля расширения. - После обновления Klipper старая конфигурация или старые макросы несовместимы с новым API версии.
- Поврежденная среда Python на хост-компьютере или отсутствие зависимостей.
Методы решения:
- Откройте полный
klippy.log, найдите Traceback вышеUnhandled exception during runи найдите первую реальную ошибку (например,Unable to read tmc uart,CanError,TypeErrorи т.д.). - Если реальная ошибка — сбой связи TMC UART, проверьте соединения и конфигурацию согласно Диагностика ошибок TMC.
- Если это аномалия связи CAN, проверьте состояние шины согласно Диагностика ошибок CAN.
- Если Traceback указывает на конкретный макрос или модуль расширения, проверьте его совместимость с текущей версией Klipper; при необходимости обновите или временно отключите.
- Если эта ошибка появилась после обновления Klipper, проверьте в
Config_Changes.mdтребования к миграции конфигурации. - Не делайте вывод о проблеме только на основе строки
Unhandled exception during run; это лишь обертка, истинная причина всегда в Traceback.
Missed scheduling of next hard pwm event
Сообщение об ошибке: MCU 'mcu' shutdown: Missed scheduling of next hard pwm event.
Распространенные причины:
- Аналогично
Missed scheduling of next digital out event— хост-компьютер не успел отправить PWM-событие на MCU в установленный срок. - Высокая нагрузка на CPU хост-компьютера (поток камеры, KlipperScreen, одновременная работа множества плагинов).
- При использовании лазерного модуля или высокочастотного PWM-инструмента слишком малый
cycle_timeприводит к чрезвычайно коротким интервалам планирования. - Высокая задержка шины CAN, приводящая к тайм-ауту передачи события.
Методы решения:
- Проверьте загрузку CPU хост-компьютера; временно отключите камеру, KlipperScreen и другие необязательные сервисы, затем повторите тест.
- При использовании лазера или PWM-инструмента увеличьте
cycle_time(например, с0.00002до0.0001). - Проверьте состояние шины CAN; убедитесь, что
tx_errorиbytes_retransmitне растут непрерывно. - Замените USB-кабель на качественный или уменьшите скорость передачи данных по CAN (с 1M до 500K) для тестирования.
- Для хост-компьютеров с низкой производительностью (старые телефоны, маломощные платы) рекомендуется сократить количество одновременно работающих сервисов.
Связанные ошибки: Missed scheduling of next digital out event
Нельзя сбросить время, когда шаговый двигатель активен
Сообщение об ошибке: MCU 'mcu' shutdown: Can't reset time when stepper active, часто сопровождается автоматическим перезапуском Klipper в середине печати; после перезапуска может появиться TMC stepper_x failed to init: Timeout on wait for 'tmcuart_response' response.
Распространённые причины:
- Это не независимый аппаратный сбой, а попытка хост-компьютера сбросить тактовую базу шагового двигателя, когда он всё ещё движется. MCU отказывается и переходит в защитное отключение.
- Самый частый триггер — самопроизвольный перезапуск сервиса Klipper во время печати (на стороне хоста). В логах будет видно
Starting Klippy...сразу после строки статистикиStats, которая была выведена за секунду до этого. - Какой-либо клиент или плагин, подключённый через Moonraker, многократно запрашивает перезапуск сервиса.
- Недостаточное питание хост-компьютера, перегрев, нехватка памяти и т. д., что приводит к завершению процесса klipper системой и его повторному запуску.
Методы решения:
- Откройте полный лог
klippy.log, найдитеStarting Klippy..., чтобы подтвердить, был ли Klipper перезапущен во время печати, и проверьте интервал времени до последней строки статистики печати. - Выполните
systemctl status klipper.serviceиjournalctl -efu klipper, чтобы просмотреть записи и причины перезапуска сервиса. - Проверьте клиенты и плагины, подключённые к Moonraker (потоки камер, сторонние плагины, пользовательские скрипты), и убедитесь, что ни одно устройство не запрашивает перезапуск сервиса или перезагрузку машины.
- Проверьте питание хост-компьютера, охлаждение и использование памяти. Старые Raspberry Pi или маломощные платы при одновременной работе с камерой и KlipperScreen могут быть завершены системой из-за нехватки памяти.
Timeout on wait for 'tmcuart_response', появляющееся после перезапуска, является следствием, а не причиной, поэтому не начинайте поиск проблемы с проверки подключения TMC.
Связанные ошибки: Klipper постоянно перезапускается, Необработанное исключение во время выполнения