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

Global param

Макрос - это небольшая программа на языке Klipper/Gcode.

Он может вызываться:

  • Из файла GCODE
  • Из консоли Fluidd/Mainsail (нажать английскую букву C в fluidd)

Note

Значение указанное в скобках - это значение по умолчанию


LANG

Задать язык для работы zMod.

  • LANG - язык, en - Английский, ru - Русский, de - Немецкий, fr - Французский, it - Итальянский, es - Испанский, zh - Китайский, ja - Японский, ko - Корейский, pt - Португальский, cs - Чешский, tr - Турецкий

Пример:

LANG LANG=en


SET_TIMEZONE

Смена часового пояса

  • ZONE - часовая зона (Asia/Yekaterinburg)

NOZZLE_CONTROL

Контроль отрыва детали или удара сопла о стол.

Аварийное отключение принтера если зафиксировано превышение веса.

WEIGHT - вес в граммах (1500)

Настройка сохраняется и после перезагрузки.

Установите NOZZLE_CONTROL WEIGHT=0 чтобы отключить эту функцию.

До первого вызова макроса контроль отключен.

При работе с родным экраном вызов макроса перезагружает принтер.

При работе в режиме без родного экрана перезапускает Klipper, т.к. вносятся изменения в файлы конфигурации.

Все работает в автоматическом режиме, но также доступны следующие макросы, которые можно использовать в Gcode:

  • ZCONTROL_ON - активировать контроль
  • ZCONTROL_OFF - деактивировать контроль
  • ZCONTROL_STATUS - узнать статус функции
  • ZCONTROL_PAUSE - при сработке вызывать паузу (пауза выполнится, только после освобождения очереди команд, включать не на первых слоях)
  • ZCONTROL_ABORT - при сработке останавливать Klipper
  • ZCONTROL_AUTO - при сработке останавливать Klipper(если высота z < ZCONTROL_Z), или вызывать PAUSE при z >= ZCONTROL_Z
  • ZCONTROL_Z Z=10 - установить высоту по Z.
  • SAVE_ZMOD_DATA ZCONTROL_Z=10 - сохранить высоту по Z. Если не хотите включать паузу, то установите SAVE_ZMOD_DATA ZCONTROL_Z=230

Если вы хотите включить контроль сопла на первых слоях, то добавьте через слайсер ZCONTROL_PAUSE на том слое, где нужно использовать паузу вместо прерывания работы


GET_ZMOD_DATA

Получить значения глобальных параметров/флагов ZMOD. После выполнения макроса в консоли будут выведены данные, которые были сохранены ранее и применены в текущий момент

Fluidd -> Макросы -> Основное -> ПАРАМЕТРЫ ZMOD


GLOBAL

Упрощенное управление глобальными параметрами. Доступны только параметры, которые можно изменить нажатием кнопки. Параметры требующие ввода числа, задания имени файла и т.д. не управляются через это макрос.

После изменения параметров рекомендуется перезагрузить принтер


SAVE_ZMOD_DATA

Сохранить глобальные параметры/флаги ZMOD, применяются при каждой печати.

Этот макрос не надо добавлять в стартовый, конечный код или в файл с gcode. Макрос вызывается из консоли fluidd/mainsail. После выключения принтера параметры сохраняются в памяти принтера в файл mod_data/variables.cfg (редактировать файл руками нельзя - запорите работу клиппера или мода) и каждый раз их вводить не надо.

Чтобы отредактировать нужный параметр прейдите Fluidd -> Макросы -> Система -> СОХРАНИТЬ ПАРАМЕТРЫ ZMOD, выбирайте параметр который хотите поменять, заполняйте его и нажмите ОТПРАВИТЬ. Смотрите что выведет в консоли fluidd.

Второй вариант. Написать в консоли Fluidd нужную команду например: SAVE_ZMOD_DATA CLOSE_DIALOGS=2

Просмотр сохраненных параметров


Параметры начала печати, построения карты стола [START_PRINT]:

MIDI_START

Играть MIDI при запуске печати (""), 0 - для отключения

Пример: SAVE_ZMOD_DATA MIDI_START=Pain-Shut-your-mouth.mid


PRECLEAR

Использовать пред очистку сопла в CLEAR_NOZZLE 0-нет, 1-да (0)

Пример: SAVE_ZMOD_DATA PRECLEAR=0


При каждой печати строить карту стола (средствами родного экрана, если включен экран) 0-нет, 1-да (0). Для работы снятия карты стола с родного экрана необходимо, через меню экрана принтера перейти на вкладку "Настройки" -> "Иконка WiFi" -> "Сетевой режим" -> включить ползунок "Только локальные сети"

Пример: SAVE_ZMOD_DATA PRINT_LEVELING=1


USE_KAMP

Где возможно использовать адаптивную карту стола(KAMP), вместо полной карты стола 0-нет, 1-да (0).

Рекомендуется также поставить SAVE_ZMOD_DATA CLEAR=LINE_PURGE, что позволит использовать место для очистки, там где снята карта стола.

Позволяет использовать KAMP при leveling с родного экрана по сети

Пример: SAVE_ZMOD_DATA USE_KAMP=1


MESH_TEST

Тестировать карту стола перед печатью:

  • 0 - нет
  • 1 - тестировать БЕЗ автоподбора Z-Offset (по умолчанию)
  • 2 - тестировать БЕЗ автоподбора Z-Offset, в случае несовпадения карты, запускать KAMP
  • 3 - тестировать с АВТОПОДБОРОМ Z-Offset, с очисткой сопла
  • 4 - тестировать с АВТОПОДБОРОМ Z-Offset, с очисткой сопла, в случае несовпадения карты, запускать KAMP

Автоподбор Z-Offset

Алгоритм автоматической калибровки смещения по оси Z (Z-Offset):

  1. Исходные данные: В памяти принтера хранится карта стола (обычно 25 точек), полученная при последней процедуре выравнивания.
  2. Подготовка:

    • Cопло, прогревается до рабочей температуры, очищается о стол и остывает до 151°C.
  3. Выбор точки измерения:

    • Используется центральная точка карты.
  4. Измерение и сравнение:

    • В выбранной точке выполняется новое измерение датчиком (PROBE).
      • Полученное значение сравнивается со значением, сохраненным в карте стола.
  5. Корректировка смещения:

    • Если расхождение меньше 0.3 мм, разница добавляется к текущему значению Z-Offset.
      • Если расхождение больше или равно 0.3 мм, система считает сохраненную карту неактуальной и, при разрешенных настройках, автоматически запускает процедуру повторного выравнивания стола (KAMP).

Без автоподбора Z-Offset

Алгоритм проверки карты стола:

  1. Замер: В текущей точке выполняется стандартное измерение датчиком (PROBE).
  2. Валидация: Полученное значение Z проверяется на соответствие загруженной карте.
  3. Критерий: Значение должно находиться в диапазоне от (минимум карты - 0.21 мм) до (максимум карты + 0.21 мм).
  4. Результат:

    • Успех: Карта считается корректной, печать продолжается.
      • Неудача: Выводится предупреждение и печать останавливается или при разрешенных настройках, автоматически запускает процедуру повторного выравнивания стола (KAMP)

Примечания:

  • Проверка является грубой оценкой. Она предназначена для выявления критических ошибок, например, когда для толстого стекла загружена карта, снятая для PEI-листа, и наоборот.
  • Не следует полагаться на эту проверку как на абсолютную защиту.
  • При использовании умной очистки (KAMP) ожидание нагрева происходит рядом с местом очистки, а не в углу стола.

Пример: SAVE_ZMOD_DATA MESH_TEST=0


FORCE_MD5

Igor Polunovskiy

Проверять MD5 сумму файла, при ошибке - удалять файл. 0-не проверять, 1 - проверять (1)

Пропишите в скрипты постобработки вызов addMD5.bat или addMD5.sh для Mac/Linux(не забудьте добавить право исполнения на файл chmod +x addMD5.sh) или addMD5.py он лежит в mod. Подробнее

Также можно использовать бинарные файлы на Go собранные под основные архитектуры от @asd2003ru:

  • addmd5-darwin-amd64 (MacOS Intel). Не забудьте выполнить chmod +x addmd5-darwin-amd64
  • addmd5-darwin-arm64 (MacOS Silicon). Не забудьте выполнить chmod +x addmd5-darwin-arm64
  • addmd5-linux-amd64 (Linux). Не забудьте выполнить chmod +x addmd5-linux-amd64
  • addmd5-windows-amd64.exe (Windows)

Его надо скачать к себе на компьютер, а потом в Orca прописать. Профиль процесса -> Прочее -> Скрипты пост обработки.

Вот варианты добавления:

  • "С:\путь_до_файла\addMD5.bat";
  • "C:\python_folder\python.exe" "C:\Scripts\add_md5.py";
  • "/home/user/addmd5-linux-amd64";

Пример: SAVE_ZMOD_DATA FORCE_MD5=1


DISABLE_SKEW

1 - запретить SKEW коррекцию, 0 - загрузить профиль skew_profile(будет вызван макрос SKEW_PROFILE LOAD=skew_profile) (1)

Подробнее

Пример: SAVE_ZMOD_DATA DISABLE_SKEW=1


LOAD_ZOFFSET

Загружать Z-offset из глобальных параметров, сохраненных ранее через SET_GCODE_OFFSET. 1 - да, 0 -нет (1)

Как работает Z-Offset

Пример: SAVE_ZMOD_DATA LOAD_ZOFFSET=0


DISABLE_PRIMING

Запретить очистку сопла выдавливанием 0-нет, 1-да (0)

Пример: SAVE_ZMOD_DATA DISABLE_PRIMING=0


CLEAR

Выбрать алгоритм очистки сопла выдавливанием (LINE_PURGE)

  • _CLEAR1 - как в Orca
  • _CLEAR2 - c группы FF
  • _CLEAR3 - c группы FF вариант 2
  • _CLEAR4 - Код очистки от Шрейдера справа сверху-вниз
  • _CLEAR_TRAP - если есть щетка справа сверху-вниз
  • LINE_PURGE - очистка KAMP

Если вы используете KAMP, очистка принудительно ставится LINE_PURGE (вместо _CLEAR1, _CLEAR2, _CLEAR3, _CLEAR4).

Если вы используете LINE_PURGE, но не включили разметку объектов в Orca, то принудительно используется _CLEAR2

Можно добавить свой макрос очистки в 'mod_data/user.cfg' и прописать его имя в этом параметре бегемот

Пример: SAVE_ZMOD_DATA CLEAR=LINE_PURGE

5M/5MPro: Это не замена родной очистки(CLEAR_NOZZLE), когда сопло тыкается в стол по середине сверху, а потом счищает пластик о стол. Эта очистка сопла непосредственно перед печатью.


Параметры окончания и отмены печати [END_PRINT]:

MIDI_END

Играть MIDI в конце печати (""), 0 - для отключения

Пример: SAVE_ZMOD_DATA MIDI_END=Pain-Shut-your-mouth.mid


CLOSE_DIALOGS

Автоматически закрывать диалоги по окончанию и отмене печати 0-нет, 1-да медленно, 2-да быстро

Для работы быстрого закрытия диалогов необходимо через меню экрана принтера перейти на вкладку "Настройки" -> "Иконка WiFi" -> "Сетевой режим" -> включить ползунок "Только локальные сети" (0).

Пример: SAVE_ZMOD_DATA CLOSE_DIALOGS=2


STOP_MOTOR

Автоматически выключать моторы после печати/отмены печати через 25 секунд 0-нет, 1-да (1)

Пример: SAVE_ZMOD_DATA STOP_MOTOR=1


AUTO_REBOOT

Автоматическая перезагрузка принтера после окончания печати (0):

  • 0 - нет перезагрузки
  • 1 - перезагрузка принтера через команду REBOOT
  • 2 - в режиме без родного экрана - перезагрузка прошивки через FIRMWARE_RESTART, с экраном перезагрузка принтера через команду REBOOT

Пример: SAVE_ZMOD_DATA AUTO_REBOOT=0


Системные параметры:

MOTION_SENSOR

Использовать вместо датчика наличия филамента, датчик движения филамента (0)

  • 0 - нет
  • 1 - да

При использовании датчика движения филамента, отключите его на родном экране, иначе печать будет останавливаться.

Если используется датчик наличия филамента в режиме без родного экрана, то при сработке Выводится фраза: "Кончился филамент. Через 30 секунд будет пауза"

Пример: SAVE_ZMOD_DATA MOTION_SENSOR=1


SILENT

Только AD5X

Не показывать окно выбора цвета при старте печати

  • 0 - показывать окно (по умолчанию)
  • 1 - не показывать окно, использовать ранее заданные цвета
  • 2 - не показывать окно, не использовать IFS

Пример: SAVE_ZMOD_DATA SILENT=0


AUTOINSERT

Только AD5X

Загружать автоматически пруток

  • 0 - не загружать пруток автоматически
  • 1 - автоматически загружать пруток (по умолчанию)

Пример: SAVE_ZMOD_DATA AUTOINSERT=0


USE_TRASH_ON_PRINT

Только AD5X

Только при работе в режиме без родного экрана

Использовать сброс в корзину при смене цвета во время печати

  • 0 - не использовать
  • 1 - использовать (по умолчанию)

Пример: SAVE_ZMOD_DATA USE_TRASH_ON_PRINT=0


REMOVE_FILAMENT

Только AD5X

Только при работе в режиме без родного экрана

Извлечь пруток после окончания печати

  • 0 - не извлекать (по умолчанию)
  • 1 - извлечь

Пример: SAVE_ZMOD_DATA REMOVE_FILAMENT=1


FIX_SCV

Исправить некорректный SCV (square_corner_velocity) при отрисовке графиков ускорений и расчете шейперов.

  • 0 оставляет параметр как в стоке 5
  • 1 использовать square_corner_velocity из mod_data/user.cfg или printer.base.cfg

Пример: SAVE_ZMOD_DATA FIX_SCV=1

В нашем принтере square_corner_velocity: 25, а расчеты графика шейперов и ускорений ведутся для SCV = 5.

По большому счету это влияет только на выводимые ускорения и расчетные уровни сглаживания. shaper_type_x, shaper_freq_x, shaper_type_y, shaper_freq_y не меняются.

С другой стороны, если считать корректно - то расчетные ускорения падают примерно в 2 раза.

Поэтому рекомендация, прописать в mod_data/user.cfg:

[printer]
square_corner_velocity: 9

Это уменьшит скорости в поворотах, и в общем улучшит качество печати, за счет небольшого снижения скорости


WIFI

На некоторых прошивках периодически не запускется Wi-Fi.

Чтобы это исправить. Нужно подключиться к сети wifi через родной экран.

Вызывать SAVE_ZMOD_DATA WIFI=1

Отключить WiFi на родном экране

  • 0 использовать WiFi с родного экрана
  • 1 использовать WiFi через zMod

FIX_E0011

Причины ошибки E0011 глобальные (Timer too close):

  • Хост не ответил за отведенное время (0.025 сек)
  • MCU не ответил за определенное время (0.025 сек)

Причины частные:

  • Завис Nations MCU mainboard или eboard. Lost communication with MCU 'mcu'. Решение: Перезагрузка. Замена мат платы(mcu) или платы экструдера('eboard').
  • Процессор хоста перегружен (расчет шейперов/ построение графиков)
  • EMMC перегружена (работа с git, резервное копирование, загрузка большого файла во время печати и т.д.)
  • Нехватка оперативной памяти. Решение: перепайка процессора и увеличения размера памяти до 256 мегабайт
  • Битый кабель к экструдеру. Решение: замена/поправка кабеля
  • Неконтакт разъема кабеля с платой в голове экструдера. Решение: Замена платы экструдера
  • Загрузка данных из SWAP (SWAP находится на EMMC, которая работает со скорость 10 МБ/с, объем данных в SWAP при построении шейперов доходит до 25 мегабайт). Решение: отключение SWAP если у вас 256 мегабайт оперативной памяти SAVE_ZMOD_DATA USE_SWAP=0
  • Сбой прошивки MCU. Решение: перешивка MCU через сброс настроек. Перешивка MCU из мода UPDATE_MCU

Исправить ошибку E0011, а также Communication timeout during homing, при изменении параметра принтер перезагрузится. 0-нет, 1-да (0)

  • 0 оставляет параметр как в стоке 0.025
  • 1 ставит параметр в 0.1

Пример: SAVE_ZMOD_DATA FIX_E0011=1

Ошибка также может возникать:

  • Большой объем исключений моделей: Решение Профиль процесса -> Прочее -> Выходной G-cod -> Исключение моделей выключить галочку.
  • Если вы отключили swap на FF5M/FF5MPro.

Запустите макрос MEM и посмотрите есть ли swap и какого он размера.

Включите SWAP, если он выключен SAVE_ZMOD_DATA USE_SWAP=1

  • Если на FF5M/FF5MPro проводите полный тест. А именно, калибровку PID, снятие карты стола и снятие шейперов одновременно.

Все калибровки лучше проводить вот по этой инструкции

Ошибка «Communication timeout during homing» в может возникать из-за высокой задержки связи между хост-компьютером и микроконтроллерами. Обычно время в пути должно быть постоянно меньше 10 мс. Высокая задержка даже на короткие периоды может привести к сбоям при настройке.

TRSYNC_TIMEOUT — это параметр в Klipper, который по умолчанию имеет значение 0.025 секунды. Он позволяет компенсировать задержки в работе системы.

В файле /opt/klipper/klippy/mcu.py в стоке параметр TRSYNC_TIMEOUT = 0.025, патч меняет значение TRSYNC_TIMEOUT = 0.1

Как исправить на стоке:

Как исправить на стоке руками:

  • Поставить root
  • Зайти через winscp по ssh и отредактировать файл /opt/klipper/klippy/mcu.py
  • Найти в файле строчку TRSYNC_TIMEOUT = 0.025
  • Заменить ее на TRSYNC_TIMEOUT = 0.1
  • Сохранить файл на принтере
  • Перезагрузить принтер

FIX_E0017

Исправить ошибку E0017, при изменении параметра принтер перезагрузится. 0-нет, 1-да (1)

В файле /opt/klipper/klippy/toolhead.py в стоке параметр LOOKAHEAD_FLUSH_TIME = 0.5, в оригинальном клиппере LOOKAHEAD_FLUSH_TIME = 0.250, наше чудо хорошо работает с LOOKAHEAD_FLUSH_TIME = 0.150

  • 0 ставит параметр как в стоке
  • 1 ставит параметр 0.150

Пример: SAVE_ZMOD_DATA FIX_E0017=1

Как исправить на стоке:

  • Отформатируйте USB в FAT32
  • Сохраните на usb flash файл:

  • Выключите принтер

  • Вставьте usb flash в принтер
  • Включите принтер
  • Принтер будет громко пищать
  • Дождитесь когда он перезагрузится
  • Вытащите usb flash
  • Напечатайте проблемный файл еще раз, ошибка E0017 больше не должна вас беспокоить.

Как исправить на стоке в ручную:

  • Поставить root
  • Зайти через winscp по ssh и отредактировать файл /opt/klipper/klippy/toolhead.py
  • Найти в файле строчку LOOKAHEAD_FLUSH_TIME = 0.5
  • Заменить ее на LOOKAHEAD_FLUSH_TIME = 0.150
  • Сохранить файл на принтере
  • Перезагрузить принтер

LED

Яркость LED при включении (50)

Пример: SAVE_ZMOD_DATA LED=50


MIDI_ON

Играть MIDI при включении (""), 0 - для отключения

Пример: SAVE_ZMOD_DATA MIDI_ON=Pain-Shut-your-mouth.mid


NEW_SAVE_CONFIG

Использовать альтернативный SAVE_CONFIG(вызывает SAVE_CONFIG без зависания родного экрана) NEW_SAVE_CONFIG при калибровке PID 0-нет, 1-да (0)

Пример: SAVE_ZMOD_DATA NEW_SAVE_CONFIG=0


USE_SWAP

Использовать SWAP (1)

  • 0 - нет Только для перепаянного процессора на 256 мб памяти
  • 1 - да, на EMMC
  • 2 - да, по возможности на USB FLASH

Пример: SAVE_ZMOD_DATA USE_SWAP=1


CHINA_CLOUD

Включить китайские облака 0 - нет, 1 - да (1)

Пример: SAVE_ZMOD_DATA CHINA_CLOUD=0

Отключите китайские облака

Даже, если у вас все выключено с экрана. Принтер все равно пытается отправлять фото, видео телеметрию на китайские сервера.

Установка этого параметра в 0 частично отключает такие полезные для производителя функции.

Если китайские облака отключены, то принтер не ищет обновления родной прошивки.

Вместо этого можно использовать:

Если вы хотите обновить родную прошивку, то нужно разрешить использование китайских облаков, SAVE_ZMOD_DATA CHINA_CLOUD=1, перезагрузиться и обновить родную прошивку.

Для отключения китайских облаков на родной прошивке:

  • Отформатируйте флешку в FAT32
  • Поместите файл flashforge_init.sh на эту флешку
  • Выключите принтер
  • Вставьте флешку в принтер
  • Включите принтер
  • Принтер 1 раз перезагрузится
  • Извлеките флешку и пользуйтесь стоковой прошивкой

Для включения китайских облаков на родной прошивке:

  • Отформатируйте флешку в FAT32
  • Поместите файл flashforge_init.sh на эту флешку
  • Выключите принтер
  • Вставьте флешку в принтер
  • Включите принтер
  • Принтер 1 раз перезагрузится
  • Извлеките флешку и пользуйтесь стоковой прошивкой

NICE

Установить приоритет процесса Klipper, 1 - минимальный приоритет, 40 - максимальный (20).

Пример: SAVE_ZMOD_DATA NICE=20

Чем выше приоритет у Klipper, тем больше у него ресурсов, но тем чаще отваливается Moonraker и камера.

Для тех кто знает linux:

NICE=20
grep -q "^nice = " /opt/config/mod_data/variables.cfg && NICE=$(grep "^nice = " /opt/config/mod_data/variables.cfg | cut -d "=" -f2| awk '{print $1}')
NICE=$((20-$NICE))
[ $NICE -ge 20 ]  && NICE=19
[ $NICE -lt -20 ] && NICE=-20
renice $NICE $(ps |grep klippy.py| grep -v grep| awk '{print $1}')


DISPLAY_OFF_TIMEOUT

Устанавливает время в секундах, когда отключается родной экран при работе в режиме без родного экрана. (180)

Учтите, что родной экран должен успеть настроить WiFi, минимальное время 5 секунд.

Пример: SAVE_ZMOD_DATA DISPLAY_OFF_TIMEOUT=120


PRO_POWEROFF_TIMEOUT

Устанавливает время в минутах, через которое FF5m Pro отключит питание. (0)

Пример: SAVE_ZMOD_DATA PRO_POWEROFF_TIMEOUT=10


SAVE_MOONRAKER
  • 0 - Загружает расположение кнопок макросов из ZMOD (по умолчанию)
  • 1 - Разрешает локально сохранять изменения кнопок макросов в Fluidd/Moonraker.

При локальном сохранении макросов, новые макросы попадают в отдельный раздел.

Пример: SAVE_ZMOD_DATA SAVE_MOONRAKER=1


SAVE_FILAMENT_SENSORS
  • 0 - Не сохранаять состояние датчиков филамента после перезагрузки, они всегда будут включены (по умолчанию)
  • 1 - Созраняться состояние датчиков после перезагрузки. Если отключить датчик, то после перезагрузки он также будет отключен.

Пример: SAVE_ZMOD_DATA SAVE_FILAMENT_SENSORS=1