Global_ru - ghzserg/zmod GitHub Wiki

Global

Read in English

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

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

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

Note

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


🔷 Глобальные параметры 🔷

LANG GET_ZMOD_DATA SAVE_ZMOD_DATA
NOZZLE_CONTROL SET_TIMEZONE

🔷 Параметры начала печати [START_PRINT] 🔷

PRINT_LEVELING FORCE_MD5 CLEAR USE_KAMP
MIDI_START LOAD_ZOFFSET MESH_TEST PRECLEAR
DISABLE_SKEW_CORRECT DISABLE_PRIMING

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

MIDI_END CLOSE_DIALOGS STOP_MOTOR AUTO_REBOOT

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

MOTION_SENSOR CHINA_CLOUD SAVE_MOONRAKER LED
FIX_SCV FIX_E0011 FIX_E0017 MIDI_ON
USE_SWAP DISPLAY_OFF_TIMEOUT NEW_SAVE_CONFIG NICE
PRO_POWEROFF_TIMEOUT

Top


LANG

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

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

Пример:

LANG LANG=en

Top


SET_TIMEZONE

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

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

Top


NOZZLE_CONTROL

Не работает на AD5X

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

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

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

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

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

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

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

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

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

  • ZCONTROL_ON - активировать контроль
  • ZCONTROL_OFF - деактивировать контроль
  • ZCONTROL_STATUS - узнать статус функции
  • ZCONTROL_PAUSE - при сработке вызывать паузу (пауза выполнится, только после освобождения очереди команд, включать не на первых слоях)
  • ZCONTROL_ABORT - при сработке останавливать Klipper

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

Top


GET_ZMOD_DATA

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

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

Top


SAVE_ZMOD_DATA

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

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

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

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

Прочитать сохраненные параметры

START_PRINT

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

MIDI_START

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

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

Top


PRECLEAR

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

Пример: SAVE_ZMOD_DATA PRECLEAR=0

Top


PRINT_LEVELING

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

Пример: SAVE_ZMOD_DATA PRINT_LEVELING=1

Top


USE_KAMP

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

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

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

Пример: SAVE_ZMOD_DATA USE_KAMP=1

Top


MESH_TEST

Тестировать карту стола перед печатью 0-нет, 1-да (1).

Если используется умная очистка из КАМП, то ожидание нагрева не в углу, а рядом с местом очистки

Проба стола берется так:

  • Подъем на 5 мм
  • Сдвиг по X на 3 мм
  • Ретракт
  • Проба
  • Подъем на 5 мм
  • Обратный ретракт

Сама проба делает следующее, вызывает стандартный макрос PROBE, смотрит получившееся значение Z, если это значение попадает в диапазон от минимум карты стола - 0.21мм, до максимум карты стола + 0.21мм, то считается, что загружена корректная карта, иначе выводится предупреждение и печать прекращается.

Стоит понимать, что это очень грубая оценка соответствия реальной карты фактически загруженной. И спасать будет от случаев, когда для толстого стекла загрузили карту PEI и наоборот.

Не стоит считать, что эта защита вас всегда спасет.

Пример: SAVE_ZMOD_DATA MESH_TEST=0

Top


FORCE_MD5

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

Пропишите в скрипты постобработки вызов addMD5.bat или addMD5.sh для Mac/Linux(не забудьте добавить право исполнения на файл chmod +x addMD5.sh) он лежит в mod. Подробнее Его надо скачать к себе на компьютер, а потом в Orca прописать. Профиль процесса -> Прочее -> Скрипты пост обработки. С:\путь_до_файла\addMD5.bat;

Пример: SAVE_ZMOD_DATA FORCE_MD5=1

Top


DISABLE_SKEW_CORRECT

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

Подробнее

Пример: SAVE_ZMOD_DATA DISABLE_SKEW_CORRECT=1

Top


LOAD_ZOFFSET

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

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

Пример: SAVE_ZMOD_DATA LOAD_ZOFFSET=0

Top


DISABLE_PRIMING

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

Пример: SAVE_ZMOD_DATA DISABLE_PRIMING=0

Top


CLEAR

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

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

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

Пример: SAVE_ZMOD_DATA CLEAR=LINE_PURGE

Параметры используемые при окончании и отмене печати [END_PRINT]:

MIDI_END

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

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

Top


CLOSE_DIALOGS

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

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

Пример: SAVE_ZMOD_DATA CLOSE_DIALOGS=2

Top


STOP_MOTOR

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

Пример: SAVE_ZMOD_DATA STOP_MOTOR=1

Top


AUTO_REBOOT

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

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

Пример: SAVE_ZMOD_DATA AUTO_REBOOT=0

Top


Общесистемные параметры:

MOTION_SENSOR

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

  • 0 - нет
  • 1 - да

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

Пример: SAVE_ZMOD_DATA MOTION_SENSOR=1

Top


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

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

Top


FIX_E0011

Это экспериментальный параметр

Причины ошибки E0011 глобальные:

  • Хост не ответил за отведенное время (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.05

Пример: SAVE_ZMOD_DATA FIX_E0011=1

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

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

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

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

  • Отформатируйте 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.05
  • Сохранить файл на принтере
  • Перезагрузить принтер

Top


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
  • Сохранить файл на принтере
  • Перезагрузить принтер

Top


LED

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

Пример: SAVE_ZMOD_DATA LED=50

Top


MIDI_ON

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

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

Top


NEW_SAVE_CONFIG

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

Пример: SAVE_ZMOD_DATA NEW_SAVE_CONFIG=0

Top


USE_SWAP

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

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

Пример: SAVE_ZMOD_DATA USE_SWAP=1

Top


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 раз перезагрузится
  • Извлеките флешку и пользуйтесь стоковой прошивкой

Top


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}')

Top


DISPLAY_OFF_TIMEOUT

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

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

Пример: SAVE_ZMOD_DATA DISPLAY_OFF_TIMEOUT=120

Top


PRO_POWEROFF_TIMEOUT

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

Пример: SAVE_ZMOD_DATA PRO_POWEROFF_TIMEOUT=10

Top


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

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

Пример: SAVE_ZMOD_DATA SAVE_MOONRAKER=1


Back Top Forward

⚠️ **GitHub.com Fallback** ⚠️