Прошивка Marlin: выгрузка нити с помощью G-кода

Я модернизировал свой ER-20 с помощью двойного шестеренчатого фидера Bondtech. Загрузить/выгрузить нить вручную с помощью этого питателя невозможно или едва ли возможно, поэтому для этого требуется некоторый файл .gcode. Я хотел реализовать что-то похожее на метод атомной очистки для разгрузки: https://ultimakernasupport.zendesk.com/hc/en-us/articles/115004187066-Atomic-Cleaning-Method

Вот мой текущий .gcode:

G21 ; Метрические значения
G90 ; Абсолютное позиционирование
M82 ; Абсолютный режим экструдера
G28 ; Автоматический дом
M420 S1
G1 X100 Y100 Z100 F1000
; M92 E415 ; 415 шагов/мм
M302 S105 ; Разрешить экструзию выше 105C
M109 S218 ; Нагрев hotend до 218C
М400
G92 E0 ; Сброс положения экструдера
M104 S160 ; Начните охлаждение
M117 Выдавливание первичного сгустка
G1 E10 F100 ; Выдавливайте короткое время перед разгрузкой, чтобы избежать образования капель
M109 S160 ; Дождитесь 160C
M104 S110
G92 E0
G1 E0.2 F100 ; Надавить на хотенд
M117 Наддув hotend
M109 S110 ; Нагревайте hotend до 110C
G92 E0 ; Сброс положения экструдера
M117 медленно выдвигается
G1 E-3 F200 ; Немного отступите назад, медленно
М117 Быстро вытаскивай
G1 E-430 F2000 ; Вытяните назад 43 см с 2000 мм/мин
G92 E0 ; Сброс положения экструдера
M400 ; Дождитесь окончания команды
M117 Немедленно снимите филамент
; M400 ; Дождитесь окончания команды
M302 S170 ; Разрешить экструзию выше 170C
M104 S0

Это не работает:

  • автоматическое выравнивание стола всегда выполняется, я не знаю, как его отключить
  • когда я вижу, что происходит событие "Extrude a short before unload to avoid blob forming", я также вижу сообщение "Pull out fast" на дисплее и процесс "print" заканчивается

Кто-нибудь может взглянуть на этот код, пожалуйста? Или где-то есть валидатор .gcode для Marlin?

Что я намерен делать с этим кодом:

  • нагрейте хотенд до 218 °C
  • выдавливайте какой-то материал, пока уже началось охлаждение до 160 °C
  • когда температура достигнет 160 °C, начните процесс охлаждения до 110 °C и подтолкните немного материала к питателю (под давлением).
  • когда температура достигнет 110 °C, медленно вытащите какой-нибудь материал из хотенда (возможно, питатель не будет достаточно прочным, чтобы сделать это, но я никогда не достигал этой точки, чтобы проверить).
  • затем быстро вытащите нить из Боудена и подающего устройства

, 👍2


1 ответ


Лучший ответ:

3

Есть три вещи, которые нужно исправить, и одно предложение:

  • Измените следующие строки M109, используя параметр R вместо S, потому что последний не ждет остывания:

    M109 R160 ; Дождитесь 160С
    ...
    M109 R110 ; Нагревайте hotend до 110C
    
  • Поведение М420 будет зависеть от типа выравнивания стола, сохраненной сетки и т. Д. Это вне темы для устранения неполадок. Принтер работает на высоте 10 см над поверхностью. G28 отключает выравнивание стола. Почему вам нужно повторно включить его? Просто удалите эту строку:

    ; M420 S1 - удалить (или закомментировать)
    
  • Переопределите максимальную длину экструзии в конфигурации.h, чтобы разрешить сценарий длинного вытягивания (G1 E-430), например:

    #define EXTRUDE_MAXLENGTH 450
    
  • Предложение: Используйте относительный режим для экструзии (M83) вместо абсолютного позиционирования (M82). Это значительно упростит ваш код. Вы просто хотите выразить расстояние в параметре E. Тогда вам не придется время от времени сбрасывать позицию с G92 E0 (сделайте это только один раз на старте). (Я использую этот режим экструзии также для нарезки, потому что он облегчает повторный запуск печати в случае сбоя).


,

Примечание: 160 может быть ниже температуры, которая позволяет перемещать extruder.. К счастью, операция включила " M302 S105` перед восстановлением., @Trish

Да, сценарий выглядит довольно зрелым и последовательным. Кстати. Я добавил "#определить USER_DESC_7" Разрешить холодное выдавливание "" #определить USER_GCODE_7 "M302 P1"` в свои пользовательские команды в *Configuration_adv.h* и с тех пор использовал его довольно часто., @octopus8

Спасибо @octopus8. Я использую заводскую прошивку для своего EryOne ER-20. Как я вижу, разработка Marlin FW ориентирована на Windows. Инструмент прошивки даже не работал для меня в Linux, мне пришлось позаимствовать машину с Windows, чтобы прошить принтер с новым заводским выпуском FW., @Endre

Возможно, я попытаюсь настроить какое-то последовательное ведение журнала отладки (если это возможно), и я надеюсь, что получу некоторые значимые сообщения об ошибках (например, M302 не поддерживается этой конфигурацией)., @Endre

Но чтобы изменить строки в G-коде - как описано в ответе - и, возможно, заставить ваш сценарий работать, вам не нужно повторно прошивать Marlin. Или вы делаете это по какой-то причине, которую я не понимаю? Но для настройки пользовательского меню-да, действительно., @octopus8

Спасибо за совет "использовать параметр R вместо S". Теперь я вижу последовательность охлаждения. Но никакого выдавливания (вытягивания) не происходит. Может быть, это просто не включено в FW. Еще одна досадная вещь, что выравнивание стола всегда происходит. Есть ли какой-нибудь способ отключить это? Насколько я помню, когда я работал над запуском g-кода для слайсера Cura, мне нужно было выяснить, как перейти на уровень стола из кода. Теперь я должен выяснить, как не спать на уровне стола :), @Endre

M302 S105, за которым следует "G1 E-1", работает для меня при температуре 145 °C, я только что проверил это с помощью шпатлевки. *(Может быть, вы хотели бы попробовать выполнить свой скрипт построчно, вручную с терминала? Марлин дает ценную текстовую обратную связь, более подробную информацию об отладке с помощью "M111 S247".)* Что касается автоматического выравнивания стола, у меня нет ответа под рукой, я был слишком ленив, чтобы проверить все эти настройки на практике... но: может быть, вы никогда не сохраняли сетку в EEPROM после выполнения выравнивания, и поэтому он хочет повторить этот процесс?, @octopus8

Привет, кажется, я понял. Я проверил источник заводского FW и увидел, что максимальная длина экструзии установлена на 200. Поэтому я разделил свою длинную экструзию из одного куска на 3 меньших, и теперь откат работает., @Endre