Ошибки конфигурации
На этой странице собраны проблемы, связанные с конфликтами разделов конфигурации, опечатками в параметрах, файлами include и SAVE_CONFIG. После изменения конфигурации сначала посмотрите первую ошибку конфигурации в klippy.log, а затем обрабатывайте каждую по порядку.
homing override method always homes X and Y before homing Z
Сообщение об ошибке: Конфликт между безопасным позиционированием по Z и переопределением позиционирования.
Причина ошибки: Одновременно настроены [safe_z_home] и [homing_override], что не позволяет Klipper определить, какую логику позиционирования использовать.
Способы решения:
- Найдите в файле конфигурации
[safe_z_home]и[homing_override]. - Оставьте только один из них в соответствии с фактической логикой позиционирования станка.
- Сохраните и перезапустите 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.
Способы решения:
- Внимательно проверьте раздел конфигурации и имя параметра, указанные в ошибке, убедитесь в правильности написания.
- Обратитесь к документации по эталонной конфигурации Klipper, чтобы определить, к какому разделу конфигурации должен относиться этот параметр.
- Если вы недавно обновляли Klipper, просмотрите журнал изменений конфигурации, чтобы проверить, не изменился ли параметр.
- Удалите или переместите недопустимый параметр в правильный раздел конфигурации.
Соответствующая конфигурация: Инструкции по изменению конфигурации.
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-файлах сохранены разделы конфигурации, предназначенные для других станков или других плат.
Способы решения:
- Найдите соответствующий раздел в
printer.cfgи всех include-файлах в соответствии с именем раздела из сообщения об ошибке. - Убедитесь, что написание соответствует эталону конфигурации Klipper, не используйте китайские скобки или полноширинные символы для имен разделов конфигурации.
- Если эта конфигурация взята из стороннего плагина или пользовательского набора макросов, убедитесь, что соответствующий плагин установлен и совместим с текущей версией Klipper.
- Если вы не уверены в назначении этого раздела, сначала закомментируйте его и перезапустите для тестирования, затем восстанавливайте по одному.
Соответствующая конфигурация: Инструкции по изменению конфигурации.
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 не может прочитать файл конфигурации.
Способы решения:
- Убедитесь, что
printer.cfgсуществует в каталоге конфигурации Klipper, обычно это~/printer_data/config/printer.cfg. - Проверьте все строки
[include xxx.cfg], убедитесь, что указанные файлы действительно существуют. - Если отсутствуют
fluidd.cfgилиmainsail.cfg, обратитесь к документации по установке соответствующего веб-интерфейса для добавления конфигурации. - Убедитесь, что права доступа к файлам конфигурации правильные:
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:
Пример сообщения Mainsail:
Распространенные причины:
- В
printer.cfgне включен[include fluidd.cfg]или[include mainsail.cfg]. - В каталоге конфигурации отсутствует
fluidd.cfg/mainsail.cfg, или имя файла include написано с ошибкой. - При ручной настройке пропущены
[virtual_sdcard],[pause_resume],[display_status]. - Не определен макрос
CANCEL_PRINT, или файл с макросом не подключен через include.
Способы решения:
- В первую очередь необходимо использовать файлы конфигурации интерфейса по умолчанию. Обычным пользователям не рекомендуется вручную добавлять лишь несколько разделов, чтобы обойти предупреждение. Файлы по умолчанию
fluidd.cfg/mainsail.cfgпредоставляют все необходимые базовые конфигурации для интерфейса, такие как виртуальная SD-карта, пауза/возобновление, статус дисплея и макрос отмены печати. - Убедитесь, что в начале
printer.cfgприсутствует include, соответствующий используемому интерфейсу:
[include fluidd.cfg]
или:
[include mainsail.cfg]
- Если вы используете предустановленную систему FLY или официальную эталонную конфигурацию, убедитесь, что файлы
fluidd.cfg/mainsail.cfgсуществуют в каталоге~/printer_data/config/. - Если соответствующие файлы отсутствуют, заново добавьте файлы конфигурации интерфейса по умолчанию или обратитесь к Инструкции по начальной настройке Fluidd.
- После подключения файла конфигурации интерфейса по умолчанию, если необходимо изменить положение и параметры ретракта при паузе, возобновлении и отмене печати, следуйте инструкции Пользовательское положение для паузы и отмены печати, добавляя
_CLIENT_VARIABLE. Не копируйте и не изменяйте макросыCANCEL_PRINT/PAUSE/RESUMEпо умолчанию напрямую. - Только в случае сопровождения пользовательской системы и четкого понимания зависимостей макросов интерфейса можно рассмотреть возможность ручного добавления базовых разделов. Этот способ не рекомендуется для обычных пользователей. Как минимум необходимо включить:
[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.
- Сохраните конфигурацию и выполните
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заданы неразумно. - При копировании конфигурации сохранены знаки китайской пунктуации, полноширинные символы или невидимые символы.
Способы решения:
- В соответствии с разделом конфигурации и именем параметра из ошибки вернитесь к соответствующему
.cfgфайлу и проверьте каждый пункт. - Для чисел, координат и списков убедитесь, что формат соответствует примеру, например,
mesh_min: 20, 20. - Для
must be above/belowилиminimum/maximumсначала восстановите значения из официального примера или рекомендаций по плате управления. - Сохраните и выполните
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), что приводит к сопоставлению пина с неверным устройством, на котором нет соответствующего пина. - Опечатка в имени пина или копирование пина из руководства по одной плате в конфигурацию для другой платы.
- Один и тот же физический пин многократно используется разными функциями, например, вентилятор, нагреватель и концевик используют один и тот же пин.
- Модификаторы пина
!(инверсия),^(подтяжка вверх),~(подтяжка вниз) указаны в неверном месте.
Способы решения:
- Проверьте, совпадает ли имя в
[mcu xxx]с префиксом пина, включая регистр символов. - Сверьте
canbus_uuidилиserialв разделе[mcu xxx]с фактическим устройством (можно проверить с помощьюls /dev/serial/by-id/илиpython3 -c "import can; ..."). - Сверяясь с распиновкой платы, убедитесь, что каждый
pin:,step_pin:,dir_pin:,heater_pin:принадлежит данной плате. - Найдите во всех include-файлах пин, на который указывает ошибка, удалите или измените дублирующую настройку.
- Модификаторы пина должны быть записаны перед именем пина, например,
^PB7,!PC13,mcu2:^PB7.
Соответствующая конфигурация: Инструкции по изменению конфигурации, Справочная конфигурация вентиляторов.
gcode command XXX already registered
Сообщение об ошибке: Error: gcode command XXX already registered.
Причина ошибки: Два разных макроса или системных модуля регистрируют одно и то же имя G-кода, например, оба макроса определяют [gcode_macro NEXT].
Типичные сценарии:
- Конфликт пользовательского макроса с системным модулем Klipper или конфигурацией стороннего разработчика.
- Несколько определений
[gcode_macro M600].
Способы решения:
- Найдите повторяющиеся определения в
printer.cfgи всех[include]файлах. - Удалите или переименуйте конфликтующий
[gcode_macro]. - Проверьте часто используемые макросы, такие как
[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-файл, или имя макроса не соответствует имени, указанному в слайсере.
Способы решения:
- Найдите в
printer.cfgи всех include-файлах имя команды из сообщения об ошибке, убедитесь, что существует соответствующий[gcode_macro XXX]. - Приведите имена команд в слайсере для начала, окончания, смены филамента, вентилятора и исключения объектов в соответствие с макросами Klipper.
- Если это команды Marlin, в первую очередь удалите ненужные команды; если совместимость действительно необходима, добавьте явный макрос Klipper.
- При ошибках, связанных с исключением объектов, следует одновременно проверить, выводит ли слайсер метки объектов, включена ли обработка объектов в Moonraker и присутствует ли
[exclude_object]в Klipper. - При ошибке команды вентилятора убедитесь, следует ли использовать
[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 не настроена на их правильный прием.
Первоочередные проверки:
- Убедитесь, что в
printer.cfgили в include-файле присутствует:
[exclude_object]
- После изменения выполните
RESTART, затем повторно загрузите G-код для тестирования. Старые файлы, загруженные ранее, могли не пройти обработку новой конфигурацией. Рекомендуется переслайсить или перезагрузить файл. - Проверьте, включена ли обработка объектов в конфигурации Moonraker. Обычная настройка находится в
moonraker.conf:
[file_manager]
enable_object_processing: True
- Проверьте, включена ли в слайсере маркировка объектов / вывод, связанный с исключением. Названия в разных слайсерах отличаются. Признаком является наличие в G-коде
EXCLUDE_OBJECT_DEFINE,EXCLUDE_OBJECT_START,EXCLUDE_OBJECT_ENDили имен объектов. - Если нужно просто временно завершить печать без возможности исключения объектов, можно отключить соответствующий вывод в слайсере и переслайсить. Не удаляйте только некоторые команды из файла, иначе список объектов в интерфейсе может работать некорректно.
Направление для диагностики:
- Ошибка только на
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.
Способы решения:
- Просмотрите полную трассировку (Traceback) под
Error evaluatingвklippy.log, чтобы определить, какая переменная или команда вызвала ошибку. - Сверьте начальный G-код слайсера и убедитесь, что имена передаваемых параметров полностью совпадают с
params.xxxв макросе, включая регистр. - Установите значения по умолчанию для необязательных параметров, например,
params.BED|default(60)|float, чтобы избежать ошибки при пустом параметре. - Найдите все объекты
printer.xxx, используемые в макросе, и убедитесь, что в конфигурации присутствуют соответствующие модули. - Если макрос взят из стороннего пакета конфигураций, убедитесь, что все зависимые 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.
Способы решения:
- Проверьте права доступа к файлу конфигурации:
ls -la ~/printer_data/config/printer.cfg
Если владелец не текущий пользователь, выполните: sudo chown $USER:$USER ~/printer_data/config/printer.cfg
- Если принтер не запускается после
SAVE_CONFIG, откройтеprinter.cfgи посмотрите автоматически сохраненную область внизу. - Если тот же параметр существует в include-файле, удалите дублирующуюся запись из автоматически сохраненной области, или измените управление на include-файл.
- Если MCU находится в состоянии shutdown, сначала выполните
FIRMWARE_RESTART, затем снова выполнитеSAVE_CONFIG. - Если права доступа в порядке, но запись по-прежнему невозможна, проверьте дисковое пространство:
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.
Способы решения:
- Проверьте начальный G-код слайсера и пользовательские макросы, удалите или закомментируйте вызов
SDCARD_RESET_FILE. - Если действительно необходимо сбросить состояние файла SD-карты, сделайте это вручную после завершения печати, не помещайте в процесс печати.
- Если вы используете макрос
PRINT_START, убедитесь, что в нем нет этой команды.