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- при сработке останавливать KlipperZCONTROL_AUTO- при сработке останавливать Klipper(если высота z <ZCONTROL_Z), или вызывать PAUSE при z >=ZCONTROL_ZZCONTROL_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
PRINT_LEVELING¶
При каждой печати строить карту стола (средствами родного экрана, если включен экран) 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):
- Исходные данные: В памяти принтера хранится карта стола (обычно 25 точек), полученная при последней процедуре выравнивания.
-
Подготовка:
- Cопло, прогревается до рабочей температуры, очищается о стол и остывает до 151°C.
-
Выбор точки измерения:
- Используется центральная точка карты.
-
Измерение и сравнение:
- В выбранной точке выполняется новое измерение датчиком (PROBE).
- Полученное значение сравнивается со значением, сохраненным в карте стола.
- В выбранной точке выполняется новое измерение датчиком (PROBE).
-
Корректировка смещения:
- Если расхождение меньше 0.3 мм, разница добавляется к текущему значению Z-Offset.
- Если расхождение больше или равно 0.3 мм, система считает сохраненную карту неактуальной и, при разрешенных настройках, автоматически запускает процедуру повторного выравнивания стола (KAMP).
- Если расхождение меньше 0.3 мм, разница добавляется к текущему значению Z-Offset.
Без автоподбора Z-Offset
Алгоритм проверки карты стола:
- Замер: В текущей точке выполняется стандартное измерение датчиком (PROBE).
- Валидация: Полученное значение Z проверяется на соответствие загруженной карте.
- Критерий: Значение должно находиться в диапазоне от (минимум карты - 0.21 мм) до (максимум карты + 0.21 мм).
-
Результат:
- Успех: Карта считается корректной, печать продолжается.
- Неудача: Выводится предупреждение и печать останавливается или при разрешенных настройках, автоматически запускает процедуру повторного выравнивания стола (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-amd64addmd5-darwin-arm64(MacOS Silicon). Не забудьте выполнитьchmod +x addmd5-darwin-arm64addmd5-linux-amd64(Linux). Не забудьте выполнитьchmod +x addmd5-linux-amd64addmd5-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)
Пример: 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
Как исправить на стоке:
- Отформатируйте USB в FAT32
-
Сохраните на usb flash файл
flashforge_init.sh: -
Выключите принтер
- Вставьте usb flash в принтер
- Включите принтер
- Принтер будет громко пищать
- Дождитесь когда он перезагрузится
- Вытащите usb flash
- Напечатайте проблемный файл еще раз, ошибка E0011 больше не должна вас беспокоить.
Как исправить на стоке руками:
- Поставить 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 файл:
- Adventurer5M-e0017-4.tgz для FlashForge 5M
- Adventurer5MPro-e0017-4.tgz для FlashForge 5M Pro
-
Выключите принтер
- Вставьте 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 частично отключает такие полезные для производителя функции.
Если китайские облака отключены, то принтер не ищет обновления родной прошивки.
Вместо этого можно использовать:
- zmod.link - облако, для управления принтерами через Fluidd/Mainsail.
- Телеграм бот.
Если вы хотите обновить родную прошивку, то нужно разрешить использование китайских облаков, 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