Global_ru - ghzserg/zmod GitHub Wiki
Макрос - это небольшая программа на языке 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 |
Задать язык для работы zmod.
- LANG - язык, en - Английский, ru - Русский, de - Немецкий, fr - Французский, it - Итальянский, es - Испанский, zh - Китайский, ja - Японский, ko - Корейский (en)
Пример:
LANG LANG=en
Смена часового пояса
- ZONE - часовая зона (Asia/Yekaterinburg)
Не работает на AD5X
Контроль отрыва детали или удара сопла о стол.
Аварийное отключение принтера если зафиксировано превышение веса.
WEIGHT - вес в граммах (1500)
Настройка сохраняется и после перезагрузки.
Установите NOZZLE_CONTROL WEIGHT=0
чтобы отключить эту функцию.
До первого вызова макроса контроль отключен.
При работе с родным экраном вызов макроса перезагружает принтер.
При работе без родного экрана перезапускает Klipper, т.к. вносятся изменения в файлы конфигурации.
Все работает в автоматическом режиме, но также доступны следующие макросы, которые можно использовать в Gcode:
-
ZCONTROL_ON
- активировать контроль -
ZCONTROL_OFF
- деактивировать контроль -
ZCONTROL_STATUS
- узнать статус функции -
ZCONTROL_PAUSE
- при сработке вызывать паузу (пауза выполнится, только после освобождения очереди команд, включать не на первых слоях) -
ZCONTROL_ABORT
- при сработке останавливать Klipper
Если вы хотите включить контроль сопла на первых слоях, то добавьте через слайсер ZCONTROL_PAUSE
на том слое, где нужно использовать паузу вместо прерывания работы
Получить значения глобальных параметров/флагов ZMOD. После выполнения макроса в консоли будут выведены данные, которые были сохранены ранее и применены в текущий момент
Fluidd
-> Макросы
-> Основное
-> ПАРАМЕТРЫ ZMOD
Сохранить глобальные параметры/флаги ZMOD, применяются при каждой печати.
Этот макрос не надо добавлять в стартовый, конечный код или в файл с gcode. Макрос вызывается из консоли fluidd/mainsail. После выключения принтера параметры сохраняются в памяти принтера в файл mod_data/variables.cfg
(редактировать файл руками нельзя - запорите работу клиппера или мода) и каждый раз их вводить не надо.
Чтобы отредактировать нужный параметр прейдите Fluidd
-> Макросы
-> Система
-> СОХРАНИТЬ ПАРАМЕТРЫ ZMOD
, выбирайте параметр который хотите поменять, заполняйте его и нажмите ОТПРАВИТЬ
. Смотрите что выведет в консоли fluidd.
Второй вариант. Написать в консоли Fluidd нужную команду например: SAVE_ZMOD_DATA CLOSE_DIALOGS=2
Прочитать сохраненные параметры
Играть MIDI при запуске печати (""), 0 - для отключения
Пример: SAVE_ZMOD_DATA MIDI_START=Pain-Shut-your-mouth.mid
Использовать пред очистку сопла в CLEAR_NOZZLE 0-нет, 1-да (0)
Пример: SAVE_ZMOD_DATA PRECLEAR=0
При каждой печати строить карту стола (средствами родного экрана, если включен экран) 0-нет, 1-да (0). Для работы снятия карты стола с родного экрана необходимо, через меню экрана принтера перейти на вкладку "Настройки" -> "Иконка WiFi" -> "Сетевой режим" -> включить ползунок "Только локальные сети"
Пример: SAVE_ZMOD_DATA PRINT_LEVELING=1
Где возможно использовать адаптивную карту стола(KAMP), вместо полной карты стола 0-нет, 1-да (0).
Рекомендуется также поставить SAVE_ZMOD_DATA CLEAR=LINE_PURGE
, что позволит использовать место для очистки, там где снята карта стола.
Позволяет использовать KAMP при leveling с родного экрана по сети
Пример: SAVE_ZMOD_DATA USE_KAMP=1
Тестировать карту стола перед печатью 0-нет, 1-да (1).
Если используется умная очистка из КАМП, то ожидание нагрева не в углу, а рядом с местом очистки
Проба стола берется так:
- Подъем на 5 мм
- Сдвиг по X на 3 мм
- Ретракт
- Проба
- Подъем на 5 мм
- Обратный ретракт
Сама проба делает следующее, вызывает стандартный макрос PROBE, смотрит получившееся значение Z, если это значение попадает в диапазон от минимум карты стола - 0.21мм, до максимум карты стола + 0.21мм, то считается, что загружена корректная карта, иначе выводится предупреждение и печать прекращается.
Стоит понимать, что это очень грубая оценка соответствия реальной карты фактически загруженной. И спасать будет от случаев, когда для толстого стекла загрузили карту PEI и наоборот.
Не стоит считать, что эта защита вас всегда спасет.
Пример: SAVE_ZMOD_DATA MESH_TEST=0
Проверять MD5 сумму файла, при ошибке - удалять файл. 0-не проверять, 1 - проверять (1)
Пропишите в скрипты постобработки вызов addMD5.bat или addMD5.sh для Mac/Linux(не забудьте добавить право исполнения на файл chmod +x addMD5.sh
) он лежит в mod. Подробнее
Его надо скачать к себе на компьютер, а потом в Orca прописать. Профиль процесса -> Прочее -> Скрипты пост обработки. С:\путь_до_файла\addMD5.bat;
Пример: SAVE_ZMOD_DATA FORCE_MD5=1
1 - запретить SKEW коррекцию, 0 - загрузить профиль skew_profile
(будет вызван макрос SKEW_PROFILE LOAD=skew_profile
) (1)
Пример: SAVE_ZMOD_DATA DISABLE_SKEW_CORRECT=1
Загружать Z-offset из глобальных параметров, сохраненных ранее через SET_GCODE_OFFSET. 1 - да, 0 -нет (1)
Пример: SAVE_ZMOD_DATA LOAD_ZOFFSET=0
Запретить очистку сопла выдавливанием 0-нет, 1-да (0)
Пример: SAVE_ZMOD_DATA DISABLE_PRIMING=0
Выбрать алгоритм очистки сопла выдавливанием (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
Играть MIDI в конце печати (""), 0 - для отключения
Пример: SAVE_ZMOD_DATA MIDI_END=Pain-Shut-your-mouth.mid
Автоматически закрывать диалоги по окончанию и отмене печати 0-нет, 1-да медленно, 2-да быстро
Для работы быстрого закрытия диалогов необходимо через меню экрана принтера перейти на вкладку "Настройки" -> "Иконка WiFi" -> "Сетевой режим" -> включить ползунок "Только локальные сети" (0).
Пример: SAVE_ZMOD_DATA CLOSE_DIALOGS=2
Автоматически выключать моторы после печати/отмены печати через 25 секунд 0-нет, 1-да (1)
Пример: SAVE_ZMOD_DATA STOP_MOTOR=1
Автоматическая перезагрузка принтера после окончания печати (0):
- 0 - нет перезагрузки
- 1 - перезагрузка принтера через команду
REBOOT
- 2 - без родного экрана - перезагрузка прошивки через
FIRMWARE_RESTART
, с экраном перезагрузка принтера через командуREBOOT
Пример: SAVE_ZMOD_DATA AUTO_REBOOT=0
Использовать вместо датчика наличия филамента, датчик движения филамента (0)
- 0 - нет
- 1 - да
При использовании датчика движения филамента, отключите его на родном экране, иначе печать будет останавливаться.
Пример: SAVE_ZMOD_DATA MOTION_SENSOR=1
Исправить некорректный 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
Это уменьшит скорости в поворотах, и в общем улучшит качество печати, за счет небольшого снижения скорости
Это экспериментальный параметр
Причины ошибки 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
- Сохранить файл на принтере
- Перезагрузить принтер
Исправить ошибку 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 при включении (50)
Пример: SAVE_ZMOD_DATA LED=50
Играть MIDI при включении (""), 0 - для отключения
Пример: SAVE_ZMOD_DATA MIDI_ON=Pain-Shut-your-mouth.mid
Использовать альтернативный SAVE_CONFIG(вызывает SAVE_CONFIG
без зависания родного экрана) NEW_SAVE_CONFIG при калибровке PID 0-нет, 1-да (0)
Пример: SAVE_ZMOD_DATA NEW_SAVE_CONFIG=0
Использовать SWAP (1)
- 0 - нет Только для перепаянного процессора на 256 мб памяти
- 1 - да, на EMMC
- 2 - да, по возможности на USB FLASH
Пример: SAVE_ZMOD_DATA USE_SWAP=1
Включить китайские облака 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 раз перезагрузится
- Извлеките флешку и пользуйтесь стоковой прошивкой
Установить приоритет процесса 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}')
Устанавливает время в секундах, когда отключается родной экран при работе без родного экрана. (180)
Учтите, что родной экран должен успеть настроить WiFi, минимальное время 5 секунд.
Пример: SAVE_ZMOD_DATA DISPLAY_OFF_TIMEOUT=120
Устанавливает время в минутах, через которое FF5m Pro отключит питание. (0)
Пример: SAVE_ZMOD_DATA PRO_POWEROFF_TIMEOUT=10
- 0 - Загружает расположение кнопок макросов из ZMOD (по умолчанию)
- 1 - Разрешает локально сохранять изменения кнопок макросов в Fluidd/Moonraker.
При локальном сохранении макросов, новые макросы попадают в отдельный раздел.
Пример: SAVE_ZMOD_DATA SAVE_MOONRAKER=1