Ошибки системы, производительности и служб
На этой странице собраны сведения о тайм-аутах связи, ошибках таймера 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-кодом за короткое время.
Типичный сценарий: При выполнении многоточечного выравнивания стола, если probe_count в [bed_mesh] установлено слишком большим, а также настроено высокое значение mesh_pps, может генерироваться слишком плотная сетка данных, что увеличивает нагрузку на вычисления и планирование движения хост-компьютера. Это лишь один из распространенных сценариев; даже без выравнивания стола, другие ситуации, приводящие к повышению нагрузки на систему или задержкам связи, могут вызвать Stepper too far in past.
Методы решения:
- Сначала просмотрите строки
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 могут вызвать эту проблему.
Методы решения:
- Уменьшите микрошаговое деление шаговых двигателей, чтобы снизить нагрузку обработки импульсов на MCU.
- Уменьшите скорость и ускорение печати, наблюдайте, исчезнет ли проблема.
- Проверьте нагрузку на хост-компьютере, питание и качество связи USB/CAN.
- После отключения питания проверьте, не проходят ли линии связи между MCU и хост-компьютером рядом с проводами двигателей, нагревателей, нагревательного стола или силовыми проводами. При необходимости переложите их или замените на экранированные линии связи.
- При проверке заземления машины проверяйте только точки заземления, предоставленные производителем, и состояние розетки; не разбирайте блок питания самостоятельно и не изменяйте заземление сети.
- Если проблема возникает на этапе парковки, обратитесь к Проблемы с тайм-аутом при парковке.
- Если проблема сохраняется, рассмотрите возможность перепрошивки системы хост-компьютера или прошивки.
Связанные конфигурации: Часто используемые директивы отладки, Руководство по парковке и калибровке направления.
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.
Связанные конфигурации: Часто используемые директивы отладки.
Internal error on command
Сообщение об ошибке: Internal error on command:"XXX", Klipper переходит в состояние shutdown.
Распространенные причины:
- Макрос или команда G-кода вызвали внутреннее исключение Python в Klipper.
- В конфигурационном файле есть ошибочные ссылки на макросы или синтаксические ошибки шаблонов Jinja2.
- Несовместимость версии Klipper с форматом конфигурационного файла.
- Имя файла G-кода содержит специальные символы, вызывающие ошибку кодировки.
Методы решения:
- Просмотрите полный Python Traceback под сообщением Internal error в
klippy.log. - Основываясь на Traceback, определите, какой конфигурационный файл или макрос вызвал проблему.
- Распространенные причины включают синтаксические ошибки Jinja2 в
[gcode_macro], отсутствие конфигурации[respond], неверный путь[virtual_sdcard]. - Если ошибка связана с
SDCARD_PRINT_FILEи содержит сообщениеascii codec can't decode, переименуйте файл G-кода, используя только латинские буквы, цифры, символы подчеркивания или дефисы.
Связанные конфигурации: Введение в макросы, Описание изменений конфигурации.
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-кода не существует, имя файла было изменено или загрузка не завершена.
[virtual_sdcard] pathуказывает на неверный каталог.- Аномальные права доступа к файлу, пользователь Klipper не может его прочитать.
- Имя файла содержит специальные символы, что вызывает проблемы в некоторых фронтендах или при обработке системного пути.
- Во время печати или чтения файла была выполнена команда открытия, выбора, сброса или записи на виртуальную SD-карту.
- Директория исходного кода Klipper, директория конфигурации или другая не G-кодовая директория ошибочно указана как
[virtual_sdcard] path.
Методы решения:
- Повторно загрузите файл G-кода через веб-интерфейс и убедитесь, что имя файла совпадает с командой печати.
- Проверьте, указывает ли
[virtual_sdcard] pathна фактическую директорию хранения G-кода. - Проверьте права доступа к директории:
ls -la ~/printer_data/gcodes/. - Переименуйте файл, используя только латинские буквы, цифры, символы подчеркивания или дефисы, и протестируйте снова.
- Если появляется сообщение
SD busy, сначала приостановите или отмените текущую печать, убедившись, что другие макросы в данный момент не работают с файлом виртуальной SD. - Не устанавливайте в качестве директории хранения G-кода
~/klipper,~/printer_data/configили системные директории.
Связанные конфигурации: Описание изменений конфигурации.
MCU CRC does not match config / Can not update MCU config
Сообщение об ошибке: 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 секунд, затем снова подайте питание. - Просмотрите первую ошибку
shutdown,Timer too close,Lost communication,Verify heater, TMC или ошибку температуры, появившуюся раньше вklippy.log. Сначала устраните первопричину, вызвавшую shutdown. - Для машин с несколькими MCU поочередно проверьте USB ID или CAN UUID для
[mcu],[mcu xxx]. - Если вы только что обновили Klipper, перекомпилируйте и перепрошейте прошивки всех MCU.
- Если используется
[mcu host], проверьте, нормально ли запущена службаklipper-mcu, затем перезапустите Klipper. - Если используется предустановленная или кастомная система Klipper, убедитесь, что логи полны, а версии Klipper и прошивки MCU согласованы по источнику.
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, камеры, экрана или вентилятора во время печати приводят к потере питания.
- Аномалии чтения/записи системного диска, TF-карты или eMMC, внезапное прерывание лога или повреждение файла.
- Перегрев ЦП хост-компьютера, защитное снижение частоты, зависание или перезагрузка системы.
- Обратное питание по USB или аномалии пути питания периферии, приводящие к взаимному влиянию материнской платы, экрана или хост-компьютера.
- Сторонние службы, потоки камер, AI-плагины или слишком много веб-соединений потребляют ресурсы.
Методы поиска:
Перед проверкой проводов питания хост-компьютера, USB-проводов, проводов экрана, проводов вентилятора или перекладкой проводки полностью выключите принтер и отключите его от источника питания. Не разбирайте блок питания и не изменяйте сетевые соединения.
- Сначала просмотрите
klippy.log,moonraker.logи системные логи, чтобы определить, была ли это ошибка Klipper или перезагрузка всего хост-компьютера. - Проверьте спецификацию блока питания хост-компьютера, избегайте использования кабелей питания с недостаточным током или заметным падением напряжения.
- Проверьте состояние здоровья системного диска, при необходимости замените на надежную TF-карту, 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 на наличие циклических ссылок.