Перейти к основному содержанию

Ошибки конфигурации

На этой странице собраны проблемы, связанные с конфликтами разделов конфигурации, опечатками в параметрах, файлами include и SAVE_CONFIG. После изменения конфигурации сначала посмотрите первую ошибку конфигурации в klippy.log, а затем обрабатывайте каждую по порядку.

homing override method always homes X and Y before homing Z

Сообщение об ошибке: Конфликт между безопасным позиционированием по Z и переопределением позиционирования.

Loading...

Причина ошибки: Одновременно настроены [safe_z_home] и [homing_override], что не позволяет Klipper определить, какую логику позиционирования использовать.

Способы решения:

  1. Найдите в файле конфигурации [safe_z_home] и [homing_override].
  2. Оставьте только один из них в соответствии с фактической логикой позиционирования станка.
  3. Сохраните и перезапустите Klipper.

Соответствующая конфигурация: Руководство по позиционированию и калибровке направления, Эталонная конфигурация переопределения позиционирования.

Option 'xxx' is not valid in section 'yyy'

Сообщение об ошибке: Option 'xxx' is not valid in section 'yyy', в указанном разделе конфигурации обнаружено нераспознанное имя параметра.

Распространенные причины:

  • Опечатка в имени параметра, например, sensor_pin написано как sensor_ping.
  • Параметр из другого раздела конфигурации по ошибке вставлен в текущий раздел, например, параметр [probe] записан в [stepper_z].
  • После обновления версии Klipper параметр, поддерживавшийся в старой версии, был удален или переименован.
  • Использован комментарий, не являющийся фактическим параметром, например, default_parameter_z.

Способы решения:

  1. Внимательно проверьте раздел конфигурации и имя параметра, указанные в ошибке, убедитесь в правильности написания.
  2. Обратитесь к документации по эталонной конфигурации Klipper, чтобы определить, к какому разделу конфигурации должен относиться этот параметр.
  3. Если вы недавно обновляли Klipper, просмотрите журнал изменений конфигурации, чтобы проверить, не изменился ли параметр.
  4. Удалите или переместите недопустимый параметр в правильный раздел конфигурации.

Соответствующая конфигурация: Инструкции по изменению конфигурации.

Section 'xxx' is not a valid config section

Сообщение об ошибке: Section 'xxx' is not a valid config section, Unknown config object или какой-либо раздел конфигурации не может быть распознан Klipper.

Распространенные причины:

  • Опечатка в имени раздела конфигурации, например, [bed_mesh] написано как [bedmesh].
  • Текущая версия Klipper не поддерживает этот раздел конфигурации, или формат конфигурации несовместим после обновления/понижения версии.
  • Скопирована конфигурация стороннего плагина, но соответствующий плагин, модуль расширения или ветка Klipper не установлены.
  • В include-файлах сохранены разделы конфигурации, предназначенные для других станков или других плат.

Способы решения:

  1. Найдите соответствующий раздел в printer.cfg и всех include-файлах в соответствии с именем раздела из сообщения об ошибке.
  2. Убедитесь, что написание соответствует эталону конфигурации Klipper, не используйте китайские скобки или полноширинные символы для имен разделов конфигурации.
  3. Если эта конфигурация взята из стороннего плагина или пользовательского набора макросов, убедитесь, что соответствующий плагин установлен и совместим с текущей версией Klipper.
  4. Если вы не уверены в назначении этого раздела, сначала закомментируйте его и перезапустите для тестирования, затем восстанавливайте по одному.

Соответствующая конфигурация: Инструкции по изменению конфигурации.

Unable to open config file / Include file does not exist

Сообщение об ошибке: Unable to open config file /home/xxx/printer_data/config/printer.cfg или Include file 'xxx.cfg' does not exist.

Распространенные причины:

  • Неверный путь к файлу printer.cfg или файл был случайно удален.
  • Подчиненный файл конфигурации, на который ссылается [include], не существует или имя файла не совпадает.
  • Инструменты установки, такие как KIAUH, автоматически генерируют ссылку [include], но соответствующий cfg-файл не установлен.
  • Проблемы с правами доступа, из-за которых Klipper не может прочитать файл конфигурации.

Способы решения:

  1. Убедитесь, что printer.cfg существует в каталоге конфигурации Klipper, обычно это ~/printer_data/config/printer.cfg.
  2. Проверьте все строки [include xxx.cfg], убедитесь, что указанные файлы действительно существуют.
  3. Если отсутствуют fluidd.cfg или mainsail.cfg, обратитесь к документации по установке соответствующего веб-интерфейса для добавления конфигурации.
  4. Убедитесь, что права доступа к файлам конфигурации правильные: ls -la ~/printer_data/config/.

Отсутствует базовая конфигурация Fluidd / Mainsail

Сообщение об ошибке: Fluidd или Mainsail сообщает об отсутствии базовой конфигурации. Распространенные ключевые слова включают:

[virtual_sdcard] not found in printer configuration.
[pause_resume] not found in printer configuration.
[display_status] is required if you do not have a [display] defined.
CANCEL_PRINT macro not found in configuration.

Пример сообщения Fluidd:

Loading...

Пример сообщения Mainsail:

Loading...

Распространенные причины:

  • В printer.cfg не включен [include fluidd.cfg] или [include mainsail.cfg].
  • В каталоге конфигурации отсутствует fluidd.cfg / mainsail.cfg, или имя файла include написано с ошибкой.
  • При ручной настройке пропущены [virtual_sdcard], [pause_resume], [display_status].
  • Не определен макрос CANCEL_PRINT, или файл с макросом не подключен через include.

Способы решения:

  1. В первую очередь необходимо использовать файлы конфигурации интерфейса по умолчанию. Обычным пользователям не рекомендуется вручную добавлять лишь несколько разделов, чтобы обойти предупреждение. Файлы по умолчанию fluidd.cfg / mainsail.cfg предоставляют все необходимые базовые конфигурации для интерфейса, такие как виртуальная SD-карта, пауза/возобновление, статус дисплея и макрос отмены печати.
  2. Убедитесь, что в начале printer.cfg присутствует include, соответствующий используемому интерфейсу:
[include fluidd.cfg]

или:

[include mainsail.cfg]
  1. Если вы используете предустановленную систему FLY или официальную эталонную конфигурацию, убедитесь, что файлы fluidd.cfg / mainsail.cfg существуют в каталоге ~/printer_data/config/.
  2. Если соответствующие файлы отсутствуют, заново добавьте файлы конфигурации интерфейса по умолчанию или обратитесь к Инструкции по начальной настройке Fluidd.
  3. После подключения файла конфигурации интерфейса по умолчанию, если необходимо изменить положение и параметры ретракта при паузе, возобновлении и отмене печати, следуйте инструкции Пользовательское положение для паузы и отмены печати, добавляя _CLIENT_VARIABLE. Не копируйте и не изменяйте макросы CANCEL_PRINT / PAUSE / RESUME по умолчанию напрямую.
  4. Только в случае сопровождения пользовательской системы и четкого понимания зависимостей макросов интерфейса можно рассмотреть возможность ручного добавления базовых разделов. Этот способ не рекомендуется для обычных пользователей. Как минимум необходимо включить:
[virtual_sdcard]
path: ~/printer_data/gcodes
on_error_gcode: CANCEL_PRINT

[pause_resume]

[display_status]

Также необходимо предоставить работающий [gcode_macro CANCEL_PRINT], иначе интерфейс все равно будет сообщать CANCEL_PRINT macro not found in configuration.

  1. Сохраните конфигурацию и выполните RESTART. Если предупреждение все еще появляется, продолжайте проверять, все ли include-файлы действительно читаются Klipper.

Метод использования макросов интерфейса: Пользовательское положение для паузы и отмены печати Справочная конфигурация макросов: Введение в макросы

Unable to parse option / option must be specified

Сообщение об ошибке: Unable to parse option 'xxx' in section 'yyy', Option 'xxx' in section 'yyy' must be specified, или must have minimum/maximum, must be above/below.

Распространенные причины:

  • Отсутствует обязательный параметр, например, в [extruder] нет step_pin, dir_pin, heater_pin или sensor_type.
  • Неверный формат параметра, например, требуется число, а указан текст; требуется список координат, но пропущена запятая.
  • Значение параметра выходит за допустимый для Klipper диапазон, например, run_current, max_temp, position_max заданы неразумно.
  • При копировании конфигурации сохранены знаки китайской пунктуации, полноширинные символы или невидимые символы.

Способы решения:

  1. В соответствии с разделом конфигурации и именем параметра из ошибки вернитесь к соответствующему .cfg файлу и проверьте каждый пункт.
  2. Для чисел, координат и списков убедитесь, что формат соответствует примеру, например, mesh_min: 20, 20.
  3. Для must be above/below или minimum/maximum сначала восстановите значения из официального примера или рекомендаций по плате управления.
  4. Сохраните и выполните RESTART. Если ошибка не исчезла, снова посмотрите первую ошибку конфигурации в klippy.log.

Соответствующая конфигурация: Инструкции по изменению конфигурации.

Unknown pin chip name / Pin is not a valid pin name / pin used multiple times

Сообщение об ошибке: Unknown pin chip name 'xxx', Pin 'PB12' is not a valid pin name on mcu 'mcu', Invalid pin description 'xxx', pin xxx used multiple times in config.

Распространенные причины:

  • В конфигурации с несколькими MCU указан неверный префикс пина, например, нужно было написать toolboard:PB0, а написано имя несуществующего MCU.
  • Неверно настроен ID MCU (canbus_uuid или serial), что приводит к сопоставлению пина с неверным устройством, на котором нет соответствующего пина.
  • Опечатка в имени пина или копирование пина из руководства по одной плате в конфигурацию для другой платы.
  • Один и тот же физический пин многократно используется разными функциями, например, вентилятор, нагреватель и концевик используют один и тот же пин.
  • Модификаторы пина ! (инверсия), ^ (подтяжка вверх), ~ (подтяжка вниз) указаны в неверном месте.

Способы решения:

  1. Проверьте, совпадает ли имя в [mcu xxx] с префиксом пина, включая регистр символов.
  2. Сверьте canbus_uuid или serial в разделе [mcu xxx] с фактическим устройством (можно проверить с помощью ls /dev/serial/by-id/ или python3 -c "import can; ...").
  3. Сверяясь с распиновкой платы, убедитесь, что каждый pin:, step_pin:, dir_pin:, heater_pin: принадлежит данной плате.
  4. Найдите во всех include-файлах пин, на который указывает ошибка, удалите или измените дублирующую настройку.
  5. Модификаторы пина должны быть записаны перед именем пина, например, ^PB7, !PC13, mcu2:^PB7.

Соответствующая конфигурация: Инструкции по изменению конфигурации, Справочная конфигурация вентиляторов.

gcode command XXX already registered

Сообщение об ошибке: Error: gcode command XXX already registered.

Причина ошибки: Два разных макроса или системных модуля регистрируют одно и то же имя G-кода, например, оба макроса определяют [gcode_macro NEXT].

Типичные сценарии:

  • Конфликт пользовательского макроса с системным модулем Klipper или конфигурацией стороннего разработчика.
  • Несколько определений [gcode_macro M600].

Способы решения:

  1. Найдите повторяющиеся определения в printer.cfg и всех [include] файлах.
  2. Удалите или переименуйте конфликтующий [gcode_macro].
  3. Проверьте часто используемые макросы, такие как [homing_override], [gcode_macro PAUSE], [gcode_macro RESUME], [gcode_macro CANCEL_PRINT].

Соответствующая конфигурация: Введение в макросы.

Unknown command:"XXX"

Сообщение об ошибке: В консоли или klippy.log появляется Unknown command:"PRINT_START", Unknown command:"START_PRINT", Unknown command:"M600", Unknown command:"EXCLUDE_OBJECT_DEFINE", Unknown command:"EXCLUDE_OBJECT_START", Unknown command:"EXCLUDE_OBJECT_END", Unknown command:"M106", Unknown command:"M201", Unknown command:"M203", Unknown command:"M205" и т.д.

Распространенные причины:

  • В начальном или завершающем G-коде слайсера вызывается макрос, не существующий в Klipper. Например, слайсер отправляет PRINT_START, а в конфигурации определен только [gcode_macro START_PRINT].
  • Использованы команды, перенесенные из Marlin, которые Klipper по умолчанию не поддерживает или требует для совместимости макрос.
  • Включена функция исключения объекта, но конфигурация слайсера, Moonraker или Klipper неполная, из-за чего команды EXCLUDE_OBJECT_DEFINE, EXCLUDE_OBJECT_START, EXCLUDE_OBJECT_END не распознаются.
  • Вентилятор использует [fan_generic] или [output_pin], но слайсер все еще отправляет стандартные M106 / M107.
  • При использовании пакета сторонних макросов отсутствует include-файл, или имя макроса не соответствует имени, указанному в слайсере.

Способы решения:

  1. Найдите в printer.cfg и всех include-файлах имя команды из сообщения об ошибке, убедитесь, что существует соответствующий [gcode_macro XXX].
  2. Приведите имена команд в слайсере для начала, окончания, смены филамента, вентилятора и исключения объектов в соответствие с макросами Klipper.
  3. Если это команды Marlin, в первую очередь удалите ненужные команды; если совместимость действительно необходима, добавьте явный макрос Klipper.
  4. При ошибках, связанных с исключением объектов, следует одновременно проверить, выводит ли слайсер метки объектов, включена ли обработка объектов в Moonraker и присутствует ли [exclude_object] в Klipper.
  5. При ошибке команды вентилятора убедитесь, следует ли использовать [fan], или добавить соответствующий управляющий макрос для [fan_generic] / [output_pin].

EXCLUDE_OBJECT_DEFINE / START / END

Значение ошибки: EXCLUDE_OBJECT_DEFINE используется для определения объекта печати, EXCLUDE_OBJECT_START / EXCLUDE_OBJECT_END — для маркировки того, к какому объекту относится текущий G-код. Это необходимо, чтобы интерфейс мог отображать и исключать объекты при многодетальной печати. Если в klippy.log постоянно появляется Unknown command:"EXCLUDE_OBJECT_DEFINE", Unknown command:"EXCLUDE_OBJECT_START" или Unknown command:"EXCLUDE_OBJECT_END", значит, G-код уже содержит команды исключения объектов, но текущая конфигурация Klipper не настроена на их правильный прием.

Первоочередные проверки:

  1. Убедитесь, что в printer.cfg или в include-файле присутствует:
[exclude_object]
  1. После изменения выполните RESTART, затем повторно загрузите G-код для тестирования. Старые файлы, загруженные ранее, могли не пройти обработку новой конфигурацией. Рекомендуется переслайсить или перезагрузить файл.
  2. Проверьте, включена ли обработка объектов в конфигурации Moonraker. Обычная настройка находится в moonraker.conf:
[file_manager]
enable_object_processing: True
  1. Проверьте, включена ли в слайсере маркировка объектов / вывод, связанный с исключением. Названия в разных слайсерах отличаются. Признаком является наличие в G-коде EXCLUDE_OBJECT_DEFINE, EXCLUDE_OBJECT_START, EXCLUDE_OBJECT_END или имен объектов.
  2. Если нужно просто временно завершить печать без возможности исключения объектов, можно отключить соответствующий вывод в слайсере и переслайсить. Не удаляйте только некоторые команды из файла, иначе список объектов в интерфейсе может работать некорректно.

Направление для диагностики:

  • Ошибка только на EXCLUDE_OBJECT_START / EXCLUDE_OBJECT_END: в первую очередь добавьте [exclude_object], затем перезапустите Klipper.
  • В интерфейсе нет списка объектов, но Klipper больше не сообщает Unknown command: в первую очередь проверьте обработку объектов в Moonraker и перезагрузите G-код.
  • В файле полностью отсутствуют команды, связанные с объектами: значит, слайсер не выводит метки объектов. Необходимо включить эту функцию в слайсере.

Соответствующая конфигурация: Введение в макросы, Инструкции по изменению конфигурации.

Error evaluating 'gcode_macro XXX:gcode'

Сообщение об ошибке: Error evaluating 'gcode_macro PRINT_START:gcode', jinja2.exceptions.UndefinedError, 'dict object' has no attribute 'BED', 'dict object' has no attribute 'HOTEND', 'dict object' has no attribute 'extrude', 'dict object' has no attribute 'heater_bed', gcode.CommandError.

Распространенные причины:

  • Слайсер не передал параметр, требуемый макросом. Например, макрос читает params.HOTEND, а слайсер не передает HOTEND=.
  • Несоответствие имени параметра. Например, макрос требует BED / HOTEND, а слайсер фактически передает BED_TEMP / EXTRUDER_TEMP.
  • Макрос ссылается на несуществующий объект. Например, в конфигурации нет [heater_bed], а макрос читает printer.heater_bed.
  • В макросе используется синтаксис Jinja2, но допущена ошибка в скобках, кавычках, фильтрах или значениях по умолчанию.
  • Команда, выполняемая внутри макроса, сначала вызывает ошибку, а внешний слой отображает это просто как Error evaluating.

Способы решения:

  1. Просмотрите полную трассировку (Traceback) под Error evaluating в klippy.log, чтобы определить, какая переменная или команда вызвала ошибку.
  2. Сверьте начальный G-код слайсера и убедитесь, что имена передаваемых параметров полностью совпадают с params.xxx в макросе, включая регистр.
  3. Установите значения по умолчанию для необязательных параметров, например, params.BED|default(60)|float, чтобы избежать ошибки при пустом параметре.
  4. Найдите все объекты printer.xxx, используемые в макросе, и убедитесь, что в конфигурации присутствуют соответствующие модули.
  5. Если макрос взят из стороннего пакета конфигураций, убедитесь, что все зависимые include-файлы и базовые макросы загружены.

Соответствующая конфигурация: Введение в макросы.

Ошибка SAVE_CONFIG или конфликт конфигурации

Сообщение об ошибке: После выполнения SAVE_CONFIG появляется Unable to write config, Option conflict, Cannot save config, или принтер не запускается после сохранения.

Распространенные причины:

  • Недостаточно прав для записи в файл printer.cfg, процесс Klipper не может в него писать. Часто возникает после редактирования файла конфигурации с помощью sudo.
  • Конфликт параметра в автоматически сохраненной области (блок #*#) с тем же параметром вручную подключенном [include] файле.
  • MCU находится в состоянии shutdown, и SAVE_CONFIG не может нормально отправить новую конфигурацию.
  • В конце файла printer.cfg есть синтаксическая ошибка или он обрезан, из-за чего запись в автоматически сохраненную область не удается.
  • В нескольких include-файлах повторно определены параметры, которые не должны автоматически сохраняться SAVE_CONFIG, такие как PID, Z offset.

Способы решения:

  1. Проверьте права доступа к файлу конфигурации:
ls -la ~/printer_data/config/printer.cfg

Если владелец не текущий пользователь, выполните: sudo chown $USER:$USER ~/printer_data/config/printer.cfg

  1. Если принтер не запускается после SAVE_CONFIG, откройте printer.cfg и посмотрите автоматически сохраненную область внизу.
  2. Если тот же параметр существует в include-файле, удалите дублирующуюся запись из автоматически сохраненной области, или измените управление на include-файл.
  3. Если MCU находится в состоянии shutdown, сначала выполните FIRMWARE_RESTART, затем снова выполните SAVE_CONFIG.
  4. Если права доступа в порядке, но запись по-прежнему невозможна, проверьте дисковое пространство: df -h ~/printer_data/.

Соответствующая конфигурация: Инструкции по изменению конфигурации.

SDCARD_RESET_FILE cannot be run from the sdcard

Сообщение об ошибке: SDCARD_RESET_FILE cannot be run from the sdcard.

Распространенные причины:

  • Команда SDCARD_RESET_FILE была выполнена во время печати с SD-карты. Эта команда не разрешена к вызову во время печати с SD-карты.
  • В начальный G-код слайсера или макрос по ошибке включен SDCARD_RESET_FILE.

Способы решения:

  1. Проверьте начальный G-код слайсера и пользовательские макросы, удалите или закомментируйте вызов SDCARD_RESET_FILE.
  2. Если действительно необходимо сбросить состояние файла SD-карты, сделайте это вручную после завершения печати, не помещайте в процесс печати.
  3. Если вы используете макрос PRINT_START, убедитесь, что в нем нет этой команды.
Loading...